; ********** SUBTRACT SEED SUBROUTINE ********** ; SUBTRACTS FOUR BYTES OF SEED FROM (DE,HL). ; ENTRY: (SEED - SEED+3) = SEED #. ; (DE,HL) = FOUR-BYTE VALUE. ; EXIT: (DE,HL) = RESULT OF SUBTRACT. ; ALL REGISTERS SAVED EXCEPT DE, HL. ; ********************************************** .ORG 0000h LD SP, 0080h ; ADDED FOR TESTING PURPOSES. LD HL, (SEED2 +2) ; ADDED FOR TESTING PURPOSES. LD DE, (SEED2) ; ADDED FOR TESTING PURPOSES. CALL SUB1 ; ADDED FOR TESTING PURPOSES. HALT ; ADDED FOR TESTING PURPOSES. SUB1: PUSH BC ; SAVE REGISTERS. LD BC, (SEED1 +2) ; GET LEAST SIGNIFICANT BYTE. OR A ; RESET CARRY FLAG. SBC HL, BC ; SUBTRACT 2 LEAST SIGNIFICANT BYTES. EX DE, HL ; GET MOST SIGNIFICANT 2 BYTES. LD BC, (SEED1) ; GET MOST SIGNIFICANT 2 BYTES. SBC HL, BC ; SUBTRACT MS 2 BYTES AND CARRY. EX DE, HL ; NOW ORIGINAL - SEED. POP BC ; RESTORE REGISTERS. RET ; RETURN. .ORG 0040h SEED1: .DB 22h,33h,44h,66h .ORG 0050h SEED2: .DB 88h,0AAh,0CCh,0FFh .END