home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol090 / sfill.mac < prev    next >
Encoding:
Text File  |  1984-04-29  |  1.2 KB  |  71 lines

  1. ;
  2. ; SYSLIB Module Name:  SFILL
  3. ; Author:  Richard Conn
  4. ; SYSLIB Version Number:  2.0
  5. ; Module Version Number:  1.0
  6. ; Module Entry Points:
  7. ;    FILLB        FILLBC        HFILB        HFILBC
  8. ; Module External References:
  9. ;    None
  10. ;
  11.  
  12. ;
  13. ;  FILLB and FILLBC, HFILB and HFILBC --
  14. ;    Memory fill routines; fill the memory buffer pointed to by HL
  15. ; with the byte in Register A; for FILLB and HFILB, B=number of bytes in
  16. ; buffer, and for FILLBC and HFILBC, BC=number of bytes in buffer
  17. ;    No registers are affected for FILL and FILLBC, HL pts to byte after
  18. ;        last byte filled for HFILB and HFILBC
  19. ;
  20.  
  21. FILLB::
  22.     PUSH    B    ; SAVE BC
  23.     MOV    C,B    ; C=B
  24.     MVI    B,0    ; SET B=0
  25.     CALL    FILLBC    ; USE FILLBC
  26.     POP    B    ; RESTORE BC
  27.     RET
  28.  
  29. FILLBC::
  30.     PUSH    H    ; SAVE REGISTERS
  31.     PUSH    PSW
  32.     PUSH    B
  33.     PUSH    D
  34.     MOV    D,A    ; BYTE IN D
  35.     CALL    FILL    ; DO FILL
  36.     POP    D    ; RESTORE REGISTERS
  37.     POP    B
  38.     POP    PSW
  39.     POP    H
  40.     RET
  41.  
  42. HFILB::
  43.     PUSH    B    ; SAVE BC
  44.     MOV    C,B    ; C=B
  45.     MVI    B,0    ; SET B=0
  46.     CALL    HFILBC    ; USE HFILBC
  47.     POP    B    ; RESTORE BC
  48.     RET
  49.  
  50. HFILBC::
  51.     PUSH    PSW    ; SAVE REGISTERS
  52.     PUSH    B
  53.     PUSH    D
  54.     MOV    D,A    ; BYTE IN D
  55.     CALL    FILL    ; DO FILL
  56.     POP    D    ; RESTORE REGISTERS
  57.     POP    B
  58.     POP    PSW
  59.     RET
  60.  
  61. FILL:
  62.     MOV    M,D    ; STORE BYTE
  63.     INX    H    ; PT TO NEXT
  64.     DCX    B    ; COUNT DOWN
  65.     MOV    A,B    ; DONE?
  66.     ORA    C
  67.     JNZ    FILL
  68.     RET
  69.  
  70.     END
  71.