home *** CD-ROM | disk | FTP | other *** search
- ;
- ; SYSLIB Module Name: SFILL
- ; Author: Richard Conn
- ; SYSLIB Version Number: 2.0
- ; Module Version Number: 1.0
- ; Module Entry Points:
- ; FILLB FILLBC HFILB HFILBC
- ; Module External References:
- ; None
- ;
-
- ;
- ; FILLB and FILLBC, HFILB and HFILBC --
- ; Memory fill routines; fill the memory buffer pointed to by HL
- ; with the byte in Register A; for FILLB and HFILB, B=number of bytes in
- ; buffer, and for FILLBC and HFILBC, BC=number of bytes in buffer
- ; No registers are affected for FILL and FILLBC, HL pts to byte after
- ; last byte filled for HFILB and HFILBC
- ;
-
- FILLB::
- PUSH B ; SAVE BC
- MOV C,B ; C=B
- MVI B,0 ; SET B=0
- CALL FILLBC ; USE FILLBC
- POP B ; RESTORE BC
- RET
-
- FILLBC::
- PUSH H ; SAVE REGISTERS
- PUSH PSW
- PUSH B
- PUSH D
- MOV D,A ; BYTE IN D
- CALL FILL ; DO FILL
- POP D ; RESTORE REGISTERS
- POP B
- POP PSW
- POP H
- RET
-
- HFILB::
- PUSH B ; SAVE BC
- MOV C,B ; C=B
- MVI B,0 ; SET B=0
- CALL HFILBC ; USE HFILBC
- POP B ; RESTORE BC
- RET
-
- HFILBC::
- PUSH PSW ; SAVE REGISTERS
- PUSH B
- PUSH D
- MOV D,A ; BYTE IN D
- CALL FILL ; DO FILL
- POP D ; RESTORE REGISTERS
- POP B
- POP PSW
- RET
-
- FILL:
- MOV M,D ; STORE BYTE
- INX H ; PT TO NEXT
- DCX B ; COUNT DOWN
- MOV A,B ; DONE?
- ORA C
- JNZ FILL
- RET
-
- END
-