UserTales - Spectrum memory structure and Working with Magic files.

Faultless #01
THIS SECTION PROVIDES CONSISTENCY INFORMATION ABOUT YOUR COMPUTER 
WHAT IS NECESSARY FOR THIS TYPE OF WORK IS A MEMORY CARD, 
METHOD OF WRITING INDIVIDUAL LINES INTO MEMORY IN basic, SEPARATE SYSTEMS   
DARK VARIABLES ETC. WE'LL NEXT LOOK AT READING PROG   
RAMM AND DATA BLOCKS IN A 'SAFE WAY', I.E. SO THAT THEY   
DID NOT START AUTOMATICALLY AND IT WOULD BE POSSIBLE TO VIEW THEM WITH-  
HELD;WE WILL GET DOWN TO DISARMING THE FUSES IN THE END,   
WRITTEN IN THE INTERNAL LANGUAGE. WE WILL ALSO TRY TO ILLUSTRATE   
I WILL EXPLORE ALL THIS WITH SPECIFIC EXAMPLES ON KNOWN PROGRAMS.   
I HOPE YOUR EFFORT WILL NOT BE WASTE AND YOU WILL ALSO LEARN     
ACCESS ANY PROGRAM WITHOUT OBSTACLES.                   
                                                                
 THE ROAD WILL BE MADE BY THE WALKING!!!                                       
                                                                
1.MEMORY ALLOCATION:                                         
                                                                
 rom...................0                                        
 display file........16384                                    
 attr...................22528                                    
 PRINTER BUFFER......23296                                    
 SYSTEM VARIABLES..23552                                    
 MICRODRIVER CARD...23734INFORMATION ABOUT CHANNELS..chans (23631);(23734)                    
 {80...................prog (23635);(23755)                     
 AREA basic.........ramtop (23730);(65368)                   
 {3E...................udg (23675);(63368)                      
 USER DEFINED GRAPHICS..p-ramp (23732);(65535)     
                                                                
2. LOADING THE PROGRAM ON THE assembler.                            
                                                                
 THIS PROGRAM IS DESIGNED FOR THOSE WITH A speccy EXCEPT MAG- 
NITOFON, ay-3-8910(12) AND 128k NOTHING CONNECTED. WHO HAS     
THE DISK INTERFACE IS CONNECTED, THEY MAY NOT LOOK HERE. BUT   
IF YOU LOOK IN, NOTHING WORSE WILL HAPPEN EXCEPT AS YOU  
cpu z-80 WILL BURN YOU (JOKE!). ALTHOUGH IT IS ADVISABLE TO LOOK HERE    
TO EVERYONE (LEARN MORE ABOUT speccy IT'S NEVER TOO LATE - IT'S THE SAME FOR      
FOR YOUR GOOD, YOU WILL KNOW MORE). WE HAVE SOMETHING TO SPEAK, SO:  
                                                                
 load/merge                                                     
                                                                
          org 60000                                             
          ld bc,34                                              
          rst 48push de                                               
          pop ix                                                
          ld (iy+58),1                                          
          ld(ix+1),255                                         
          call 1821                                             
          ld hl,(23618)                                         
          ld (23621),hl                                         
          rst 8                                                 
          defb 255                                              
                                                                
 THIS PROCEDURE ALLOWS YOU TO READ A BASIC PROGRAM WITH
HECEHUEM OF DATA IN DE AND IX IS FASTER!     
 BUT THIS PROGRAM ALLOWS YOU TO LOAD CODE BLOCKS USING
BY INVOLVING ADDITIONAL MEMORY. WHEN PERFORMED, IT WILL TRANSFER ITSELF 
CARRIED FROM THE ADDRESS SPECIFIED IN org UNDER A SUITABLE ADDRESS; ACCESS-  
THIS EFFECT IS HARNESSED THANKS TO THE PRESENCE OF JP 4633 AND THEN SHE RECORDED  
RESETS THE BLOCK OF CODES WITHOUT LEAVING BASIC (IF basic GOT CORRUPTED DURING   
USING SYSTEM VARIABLES).                            
                                                                
          org 65400                                             
          ld ix,0                                               
          ld de,dl                        
          ld a,255                                              
          scf                                                   
          inc d                                                 
          ex af,af'                                             
          dec d                                                 
          di                                                    
          ld a,15                                               
          out ({fe),a                                           
          ld a,0                                                
          jr c,ok                                               
          ld a,7                                                
  ok      out ({fe),a                                           
  error   ld a,{bf                                              
          in a,({fe)                                            
          rra                                                   
          jr c,error                                            
          ld ix,0                                               
          ld de,dl-16384                                        
          ld a,255                                              
          call 1218                                             
          ld hl,65399                                           
          jp 4633                                               
                                                                
 THE PERFORMANCE OF THIS PROGRAM WAS TESTED BY PERSONAL EXPERIENCE.    
YOU CAN CHECK FOR YOURSELF.                                          
                                                                
----------------------------------------------------------------
                                                                
 TO UNDERSTAND THE PROCESS OF CREATING A MAGIC FILE, YOU NEED TO KNOW
ASSEMBLY AND WORKING Z-80 WITH A STACK. LET'S SEE HOW tr-dos RESPONS
ON PRESSING magic. AT THAT MOMENT WHEN THE PROCESSOR TRY TO COUNT  
THE NEXT COMMAND CODE IS FROM RAM, HARDWARE TURN ON IS HAPPENING    
Dummy ROM tr-dos AND AT THE SAME TIME A HEMACKU- REQUEST ARISES 
MANAGED INTERRUPTION nmi.WHEN SUCH A REQUEST, the z-80 WRITES FIRST
ON THE STACK THE CURRENT VALUE OF THE COMMAND COUNTER (POINTER TO COMMAND CODE)
YES, WHICH WOULD BE EXECUTED IN THE ABSENCE OF INTERRUPTIONS) AND TRANSITION-
LA TO EXECUTION OF THE NON-MASKABLE INTERRUPTION SERVICE PROCESS,
THE INITIAL PART OF WHICH HAS THE FOLLOWING VIEW:                    
                                                                
  {0066 jp {2a56                                              
  {2a56 push af                                               
          push bc                                               
          push depush ix                                               
          push iy                                               
          ex                                                   
          push bc                                               
          push them                                               
          push hl                                               
          ex of, of'                                             
          push off                                               
          ld a, i                                                
          push off                                               
          ld a,r                                                
          push off                                               
          ld hl,0                                               
          add hl, sp                                             
          push hl                                               
          ........                                              
                                                                
 К ЕТОМУ МОМЕНТУ ЗНАЧЕНИЯ ВСЕХ РЕГИСТРОВ НА МОМЕНТУ ПРЕРЙВАНИЯ   
СОХРАНЯЮТСЯ В STEKE, ЧТО ПОЗВОЛЯЕТ В ДАЛЬНЕЙШЕМ ОССТАНАВЛИВАТЬ  
ИХ ДЛЯ ВОЗОБНОВЛЕНИЯ РАБОТЫ C МЕСТА ПРЕРЫВАНИЯ.ИНТЕРЕСТНО,ЧТО   
ДАЖЕ ЗНАЧЕНИЕ УКАЗАТЕЛЯ СТЕКА ПОМЕЩАЕТСЯ В sp,НО САМОЕ ВАЖНОЕ-  
ЧТО ЕТО ЖЕTHE NUMBER WILL BE RECORDED IN THE magic HEADING (IN THE FIELD 'ON-  
INITIAL ADDRESS'). THIS INFORMATION IS SUFFICIENT TO DETERMINE THE SOC- 
THE z-80 IS STANDING AT THE MOMENT OF PRESSING magic. IN THIS CASE, IT IS IMPOSSIBLE TO NOTE
THAT THE AREA 'OVERWEARED' BY THE STACK WHEN THE SYSTEM OPERATES IS QUITE GREAT 
LIKA AND WITH A SMALL RESERVE ALLOCATED BY THE PROGRAM FOR THE STACK, THIS IS 
LEADING TO THE IMPOSSIBILITY OF COPYING IT THIS WAY. ALSO   
tr-dos WHEN CREATING magic, IT RUNS SEVERAL BYTES OF SYSTEM PE- 
BELT basic'A. FEW PEOPLE KNOW WHAT IS DESCRIBED IN THE FIRM HANDS-   
VODCTVAH METHOD OF CALLING tr-dos COMMANDS FROM THE PROGRAM IN CODES.NESS-   
DESPITE ITS LIMITATIONS, IT IS WORTH CONSIDERING IT IN MORE DETAIL.    
A TEXT STRING IS CREATED IN MEMORY, EQ. TO THE COMMAND tr-dos, FOR EXAMPLE   
THIS:                                                          
                                                                
  string defb 234 ;rem                                  
          defb ':'                                              
          defb 248 ;save                                 
          defm '...' ;FILE NAME                            
          defb 13 ;enter                                
                                                                
 TO MAKE tr-dos EXECUTE THIS COMMAND, YOU MUST    
DIFIFY SYSTEM VARIABLE ch-add (2 BYTES, LOCATED-     
AT 23645, CONTAINS ADDRESSTHE FOLLOWING INTERPRETATION      
SYMBOL) CALL THE COMMAND PROCESSING PROCEDURE AND THEN     
RESTORE ORIGINAL VALUE ch-add.ADDRESS PROCEDURE tr-dos WE
WE DEnote AS addrtrdos, SINCE ITS VALUE GIVEN IN    
DESCRIPTIONS tr-dos NEEDS A SEPARATE COMMENT.              
                                                                
          ld hl,(chadd)                                         
          ld(temp),hl                                          
          ld hl,string                                          
          ld (chadd),hl                                         
          call addtrdos                                         
          ld hl,(temp)                                          
          ld (chadd),hl                                         
          ret                                                   
 temp defw 0                                                
 chadd equ 23645                                             
 addtrdos equ 15619                                             
                                                                
 IF YOU GOT A TR-DOS BRANDED DESCRIPTION, YOU CAN FIND IT IN IT 
OTHER VALUE addtrdos-15363 ({3c03), THAT IS ADDRESS, NOT ENTERING- 
INTO THE AREA OF INCLUDING THE TR-DOS ROM !!! VISIBLY, IN FIR- 
IN THE MULTI CONTROLLER, THE RECORDING AREA STARTS AT ADDRESS {3c00.    
INALL COMMON VERSIONS of tr-dos SAME AREA
THE STOCK ROM LOOKS LIKE THE FOLLOWING:                        
                                                                
  {3c00 rst 56                                                
          jr{3c06                                              
  {3c03 rst 56                                                
          jr{3c09                                              
  {3c08 jp {3d00                                              
  {3c09 jp {3d03                                              
                                                                
 THUS THE PROCEDURE AT ADDRESS 56 IS USED FIRST      
                                                                
  {0038 ei                                                    
          ret                                                   
                                                                
 IN EVERYONE, THERE ARE STANDARD ROM FIRMWARE tr-dos POSSIBLE  
BUT FIND THE NEXT GROUP OF CODES.                                
                                                                
  {3d2e nop                                                   
  {3d2f nop                                                   
  {3d30 retIT ALLOWS YOU TO ENTER tr-dos AT ANY ADDRESS, BEFORE 
VARIOUSLY PLACED IN sp. AS SEEN, THE ADDRESS OF THIS GROUP OF CODES   
GUARANTEES THE INCLUSION OF THE DRAMA ROM. IN ADDITION, IT IS SIGNIFICANT
ONE ENTRY POINT IN tr-dos FOR CALLING A WIDE SET OF USERS  
BODILY FUNCTIONS WHICH WILL BE DISCUSSED IN THE FOLLOWING ISSUE!
             
                                                                
 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                          
 p.p.s VOROZHKIN ALEXANDER, BAZHENOV STAS

Share your thoughts about the article