Do it yourself - printer controller for ZX Spectrum. Improvement of the PLL drive controller.

Faultless #01
YOU CAN CORRECTLY CONNECT THE PRINTER CONTROLLER TO THE speccy USING  
BY USING K589AP16, K555APb. THIS ELIMINATES THE COMPUTER 
RA WHEN TURNED ON DUE TO THE PRESENCE OF A CONTROL SIGNAL ON THE DATA BUS
RA 'PRINTER IS MISSING' OR 'PRINTER BUSY'. MUKPOC IS APPLIED 
CHEMA KPS8OVA86 (FIGURE 1). INSTEAD OF K5SSLA9 YOU CAN USE BO-
LEADER COMMON-KSS5LAZ.IN THE TEXT OF MOVEMENT OF THE DRIVER FOR  
THIS CONTROLLER HAS A SIGNIFICANT INACCURACY WHICH REVEALS -
IF THE PRINTED STRING CONTAINS MORE THAN 65 CHARACTERS (LOST)  
THERE IS 1 CHARACTER AND AN EXTRA 'BLANK LINE' IS PRINTED).FOR ITS YCTPA-
IT IS ENOUGH TO SWAP THE OPERANDS newline AND conto IN 
THE FOLLOWING FRAGMENT OF THE PROGRAM:                                  
          ld bc,conto-base                                      
          add hl,bc                                             
          ex(sp),hl                                            
          jr newline                                            
 TO USE THE DESCRIBED DRIVER WHEN OPERATING WITH tlw2, SUPPLY 
THE PRINTER MAINTENANCE PROGRAM CAN BE SIGNIFICANTLY SIMPLIFIED:    
 prn ld hl,base                                            
          cp {7f +5B $$$$$$$$$$$$$$$$$$$$    
          jr nz,sym ddS                            
          ld a,{23 KPS8OVA86 & & & & & & r19-r14jr print         К&    &%%%%%%&   & & & & & &  (1К)   
 sym      jr c,print        &$$$1& `  & &19$$$&$&$&$&$&$$$$&К   
          sub 165          z&$$$2&%%%%%%&18$$$$$&$&$&$&$$$$&    
          jp nc,{0c10      x&$$$3& `  & &17$$$$$$$&$&$&$$$$&d   
 print    ld d,a            &$$$4& `  & &16$$$$$$$$$&$&$$$$&d   
 wait     call {1f54       d&$$$5& `ЕП& &15$$$$$$$$$$$&$$$$&1   
          jr c,cont1       a&$$$6& `  & &14$$$$$$$$$$$$$$$$&    
          rst 8            t&$$$7& `  & &13$$$$$$$$$$$$$$$$&    
          defb {14         a&$$$8& `  & &12$$$$$$$$$$$$$$$$&    
 cont1    in a,({fb)             &$`$$&$&                       
          add a,a        $$$$$$$9&-`  & &                       
          ret m          &   $$11&+`  & &     РИСУНОК 1         
          jr nc,wait     &   &   %%%%%%%%                       
          ld a,d         &   &                                  
          out ({fb),А    &   &$$$ К ВЫВОДУ 8 dd2                
          ret            &                                      
                         &$$$$$$$ К ВЫВОДЫ 3dd2                
                                                                
----------------------------------------------------------------
                                                                
 DEVELOPMENT OF CONTROLLER D-A                                      
DEVELOPMENT BY WESTERN DIGITAL - INTERFERENCE-PROOF DIGITAL CIRCUIT
PLL-BECAME WIDELY KNOWN IN KHARKOV EARLIER THAN IN OTHER CITIES
CHILDREN IN THE CIS THANKS TO THE PROMPT RESPONSE OF V.M.G. And B.A.E.   
BASED ON THE NEEDS OF THE MARKET.IN 1992, THE SCHEME TOOK FIRST PLACE IN   
SALE, IT IS INCLUDED IN ALMOST ALL NEW DEVELOPMENTS  
KHARKIV RAIO LOVERS. THE COMPANY'S ADVERTISING brochure APPROVES,  
THAT THIS SCHEME INCREASES THE RELIABILITY OF READING DISK INFORMATION 
NO LESS THAN 10 TIMES. EXPERIENCE IN USING A CIRCUIT WITH CONTROLLERS  
'ECHO', 'betadisk', 'pentagon' AND OTHERS CONFIRM THIS INFORMATION - 
TION IN 90 PERCENT OF CASES. THE DIFFERENCE IS ESPECIALLY NOTICEABLE WHEN WORKING WITH
LOW-QUALITY DISK DRIVES AND DISKETTES.                     
                                                                
 $$$$$$$$$ $$$$$$ r1 10k MIC FIRMWARE 
 &`.  &`&.   & ROSCHEMES 556 RTC
 & ` & ` & & $$$$$ $$$$$ C . +5v PUBLISHED IN 
 & ` & ` C & & &.  &&.  & & . wf/de MAGAZINE 'RADIO'
 &`556& ` O &555 & &555& &555& . rclk AMATEUR' IN BUT-
 & ` & ` P & TM9& &TM2& &LAZ& & . -rawr AT LEAST 3 FOR 1993 
 & `PTC& ` R & & & & & & r . -rdata YEAR (PAGE 6)    
 & ` & ` O & & & & & & 2 . 8 mhz                  
 & ` & ` & & & & & & & . gnd                    
 %%%%%%%%% %%%%%% %%%%% %%%%%                              
          r3...r6 1k                           
          4 x 1K!                                               
                                                                
 IF YOU NEED A DIAGRAM FOR THIS IMPROVEMENT, WRITE AND I WILL GIVE IT TO YOU   
I WILL SEND (FREE!), AND ALSO HAS A sound drive by flash!  
                                                                
----------------------------------------------------------------
                                                                
 AND NOW I WOULD LIKE TO TELL YOU ABOUT THE SHADOW ROM tr-dos!      
SHADOW ROM tr-dos CONNECTS TO THE MAIN ROM OF THE COMPUTER WHEN  
Z-80 ACCESSING CERTAIN MEMORY ADDRESSES. ONE OF SUCH ADDRESSES 
PECOB-ADDRESS {3d13.IF TR-DOS' YOU NEED TO CONTACT THE MAIN 
MU ROM, IT DOES THE FOLLOWING:                                  
-BTHE STACK IS PUT THE RETURN ADDRESS TO THOSE PARTS OR MODULES tr-dos.
-THE ADDRESS OF THE REQUIRED SUBPROGRAM FROM THE MAIN ROM IS PUT ON THE STACK  
-SHADOW ROM IS DISABLED.                                       
-GOING TO ADDRESS 23746.                           
-THE RET INSTRUCTION IS LOCATED AT THIS ADDRESS, SO FROM THE STACK    
THE ADDRESS OF THE SUBPROGRAM IN THE MAIN ROM IS TAKEN AND IT STARTS.    
-RET INSTRUCTION AT THE END OF THE PROGRAM WILL CAUSE A JUMP BACK-IN THE SHADOW- 
VOE ROM tr-dos'A.                                               
THE PROVIDED EXAMPLE SHOWS HOW YOU CAN REFER TO tr-dos  
 SO TO ALLOW HER TO CLEAR THE SCREEN AND SHOW HER MESSAGE  
AT THE BOTTOM OF THE SCREEN. INSTEAD, tr-dos DISPLAYS IN THE 'MESSAGE' WINDOW  
DEFINITION OF THE SYSTEM, APPLIED WINDOW INTERFACE. IN AN EXAMPLE       
THERE IS AN APPEAL TO AN UNDEFINED WINDOW INTERFACE HERE.     
YOU CAN JUST INSTALL YOUR PROGRAM WITH A SIMILAR VALUE   
MAKE YOUR SPECIAL CALLS TO THE SITES OF CALLING THESE PROCEDURES C   
SIMILAR FUNCTIONS. IN THIS CASE, THE CALL TO tr-dos IS SEPARATED    
IN 3 STAGES:                                                     
1. PREPARATION OF THE OPERATION: INTERCEPTOR INSTALLATION.                 
2.DIRECT CALL tr-dos BY {3D13 (WITH RETURN TRANSITION)   
3. COMPLETION OF THE OPERATION: REMOVAL OF THE INTERCEPTOR.                      
 SO, STAGE 1—INTERCEPTOR INSTALLATION:                          
  pospre  sub a                                                 
          ld (rstflg),a                                         
          ld hl,posw                                            
          ld (rstptr),hl                                        
          call im1                                              
  posswp  ld hl,dos st                                          
          ld de,23746                                           
          ld bc,3                                               
  swap2   ld a,(de)                                             
          ldi                                                   
          dec hl                                                
          ld (hl),a                                             
          inc hl                                                
          jp pe,swap2                                           
          ld hl,(23633)                                         
          ld c,(hl)                                             
          inc hl                                                
          ld b,(hl)                                             
          ld de,(dos oh)                                        
          ld (dos oh),bc                                        
          ld (hl),d                                             
        dec hl                                                
          ld (hl),e                                             
          ret                                                   
                                                                
  ВТОРОЙ ЭТАП:                                                  
                                                                
  dos     push af                                               
          ld (iy),-1                                            
          sub a                                                 
          ld (23823),a                                          
          ld (23824),a                                          
          pop af                                                
          call {3Д13                                            
          ld a,(23823)                                          
          and a                                                 
          ret z                                                 
          scf                                                   
          ret                                                   
  dos st  jp dosend                                             
  dos hl  defw 0                                                
  dos bc  defw 0                                                
  dos oh  defw dos rstdosend  ld (dos hl),hl                                        
          ld (dos bc),bc                                        
          pop bc                                                
          push af                                               
          and a                                                 
          ld hl,{Odбb                                           
          sbc hl,bc                                             
          jr z,dos cls                                          
          ld hl,{1601                                           
          sbc hl,bc                                             
          jr z,dosing                                           
          pop af                                                
          push bc                                               
          ld hl,(dos hl)                                        
          ld bc,(dos bc)                                        
          ret                                                   
  posign  pop af                                                
          ret                                                   
                                                                
  rstflg  defb 0                                                
  rstptr  defw dosw                                             
  dosclspop af                                                
          ld hl,dosw                                            
          ld de,dosw+1                                          
          ld bc,5*21-1                                          
          ld (hl),{ff                                           
          ldir                                                  
          ld hl,dosw                                            
          ld (rstptr),hl                                        
          ld a,(rstflg)                                         
          and a                                                 
          ld a,28                                               
          call z,open                                           
          ld a,-1                                               
          ld (rstflg),А                                         
          jp reddraw                                            
  dosrst  push bc                                               
          push de                                               
          push hl                                               
          ld hl,(rstptr)                                        
          ld (hl),a                                             
          inc hl                                                
          ld (rstptr),hlcall text-n ;UPDATE TEXT IN WINDOW                
          pop hl                                                
          pop de                                                
          pop bc                                                
          ret                                                   
  dosend ld (iy),-1                                            
          caLL dosswp                                           
          ld a,(rstflg)                                         
          and a ;IF THE WINDOW SAYS tr-dos OPENS  
          call nz,close ;THEN CLOSE IT                       
          ret                                                   
                                                                
 THUS, IF tr-dos WANTS TO ISSUE DURING THE WORK PROCESS     
MESSAGE disk error OR read only,PROGRAM FIRST   
IS TRYING TO CLEAR THE SCREEN. THIS ATTEMPT WILL BE DETECTED by dosend     
AND INSTEAD OF CLEARING THE SCREEN, A MESSAGE WINDOW WILL BE DISPLAYED    
tr-dos AND ITS CLEARING.THEN tr-dos WILL TRY TO OPEN THE STREAM     
'k', BUT THIS ATTEMPT WILL BE INTERCEPTED AND IGNORED. IN RE-    
AS A RESULT, THE TR-DOS MESSAGE APPEARS IN BEAUTIFUL MULTICOLOR    
THE WINDOW IS IN THE MIDDLE OF THE SCREEN, NOT AT THE BOTTOM. AFTER COMPLETING THE LAST CONCLUSIONS   
CALLS IN tr-dos THE WINDOW WILL CLOSE (DURING dosend).$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$                          
 p.p.s VOROZHKIN ALEXANDER, BAZHENOV STAS

Share your thoughts about the article