Listing of file='MOVES.MAC;01' on disk='vmedia/tiny_c_v3.0-sector.ccvf'
; MOVE/SCAN ROUTINES ; ; MOVE -(BC) BYTES FROM (HL) TO (DE) ENTRY MOVE MOVE: MOV A,M STAX D INX D INX H INR C JNZ MOVE INR B JNZ MOVE RET ; MOVE THE BLOCK (DE)...(HL) INCLUSIVE (BC) BYTES ENTRY MOVEBL MOVEBL: MOV A,B ORA A JM MOVEDN ORA C RZ MOVEUP: SHLD FROMPTR DAD B XCHG LDA FROMPTR CMA ADD L MOV C,A LDA FROMPTR+1 CMA ADC H MOV B,A LHLD FROMPTR MU2: MOV A,M STAX D DCX H DCX D INR C JNZ MU2 INR B JNZ MU2 RET MOVEDN: XCHG SHLD FROMPTR DAD B LDA FROMPTR SUB E MOV C,A LDA FROMPTR+1 SBB D MOV B,A DCX B XCHG LHLD FROMPTR JMP MOVE FROMPTR:DW 0 ; SCAN FOR THE NTH OCCURANCE OF A CHARACTER IN A BLOCK ENTRY SCANN SCANN: PUSH PSW XCHG SC2: MOV A,C ORA B JZ SC9 MOV A,E SUB L MOV A,D SBB H JC SC9 POP PSW PUSH PSW CMP M JNZ SC3 DCX B SC3: INX H JMP SC2 SC9: DCX H XCHG POP PSW RET ; COUNT THE OCCURANCES OF A CHARACTER IN A BLOCK. ENTRY CNTCH CNTCH: LXI B,0 PUSH PSW CC2: MOV A,L SUB E MOV A,H SBB D JC CC9 POP PSW PUSH PSW CMP M DCX H JNZ CC2 INX B JMP CC2 CC9: POP PSW RET END