home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / SYSLIB / SLIB2.LBR / SFILL.Z80 < prev    next >
Text File  |  2000-06-30  |  1KB  |  67 lines

  1. ;
  2. ; SYSLIB Module Name:  SFILL
  3. ; Author:  Richard Conn
  4. ; SYSLIB Version Number:  3.6
  5. ; Module Version Number:  1.1
  6.  
  7.     public    fillb,fillbc,hfilb,hfilbc
  8.  
  9. ;
  10. ;  FILLB and FILLBC, HFILB and HFILBC --
  11. ;    Memory fill routines; fill the memory buffer pointed to by HL
  12. ; with the byte in Register A; for FILLB and HFILB, B=number of bytes in
  13. ; buffer, and for FILLBC and HFILBC, BC=number of bytes in buffer
  14. ;    No registers are affected for FILL and FILLBC, HL pts to byte after
  15. ;        last byte filled for HFILB and HFILBC
  16. ;
  17. FILLB:
  18.     PUSH    BC    ; SAVE BC
  19.     LD    C,B    ; C=B
  20.     LD    B,0    ; SET B=0
  21.     CALL    FILLBC    ; USE FILLBC
  22.     POP    BC    ; RESTORE BC
  23.     RET
  24.  
  25. FILLBC:
  26.     PUSH    HL    ; SAVE REGISTERS
  27.     PUSH    AF
  28.     PUSH    BC
  29.     PUSH    DE
  30.     LD    D,A    ; BYTE IN D
  31.     CALL    FILL    ; DO FILL
  32.     POP    DE    ; RESTORE REGISTERS
  33.     POP    BC
  34.     POP    AF
  35.     POP    HL
  36.     RET
  37.  
  38. HFILB:
  39.     PUSH    BC    ; SAVE BC
  40.     LD    C,B    ; C=B
  41.     LD    B,0    ; SET B=0
  42.     CALL    HFILBC    ; USE HFILBC
  43.     POP    BC    ; RESTORE BC
  44.     RET
  45.  
  46. HFILBC:
  47.     PUSH    AF    ; SAVE REGISTERS
  48.     PUSH    BC
  49.     PUSH    DE
  50.     LD    D,A    ; BYTE IN D
  51.     CALL    FILL    ; DO FILL
  52.     POP    DE    ; RESTORE REGISTERS
  53.     POP    BC
  54.     POP    AF
  55.     RET
  56.  
  57. FILL:
  58.     LD    (HL),D    ; STORE BYTE
  59.     INC    HL    ; PT TO NEXT
  60.     DEC    BC    ; COUNT DOWN
  61.     LD    A,B    ; DONE?
  62.     OR    C
  63.     JP    NZ,FILL
  64.     RET
  65.  
  66.     END
  67.