; ; 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