mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Reintegrate wbw -> trunk
This commit is contained in:
@@ -459,6 +459,53 @@ MULT8_LOOP:
|
||||
MULT8_NOADD:
|
||||
DJNZ MULT8_LOOP
|
||||
RET
|
||||
|
||||
|
||||
;
|
||||
; SET A BIT IN BYTE ARRAY AT HL, INDEX IN A
|
||||
;
|
||||
BITSET:
|
||||
CALL BITLOC ; LOCATE THE BIT
|
||||
OR (HL) ; SET THE SPECIFIED BIT
|
||||
LD (HL),A ; SAVE IT
|
||||
RET ; RETURN
|
||||
;
|
||||
; CLEAR A BIT IN BYTE ARRAY AT HL, INDEX IN A
|
||||
;
|
||||
BITCLR:
|
||||
CALL BITLOC ; LOCATE THE BIT
|
||||
CPL ; INVERT ALL BITS
|
||||
AND (HL) ; CLEAR SPECIFIED BIT
|
||||
LD (HL),A ; SAVE IT
|
||||
RET ; RETURN
|
||||
;
|
||||
; GET VALUE OF A BIT IN BYTE ARRAY AT HL, INDEX IN A
|
||||
;
|
||||
BITTST:
|
||||
CALL BITLOC ; LOCATE THE BIT
|
||||
AND (HL) ; SET Z FLAG BASED ON BIT
|
||||
RET ; RETURN
|
||||
;
|
||||
; LOCATE A BIT IN BYTE ARRAY AT HL, INDEX IN A
|
||||
; RETURN WITH HL POINTING TO BYTE AND A WITH MASK FOR SPECIFIC BIT
|
||||
;
|
||||
BITLOC:
|
||||
PUSH AF ; SAVE BIT INDEX
|
||||
SRL A ; DIVIDE BY 8 TO GET BYTE INDEX
|
||||
SRL A ; "
|
||||
SRL A ; "
|
||||
LD C,A ; MOVE TO BC
|
||||
LD B,0 ; "
|
||||
ADD HL,BC ; HL NOW POINTS TO BYTE CONTAINING BIT
|
||||
POP AF ; RECOVER A (INDEX)
|
||||
AND $07 ; ISOLATE REMAINDER, Z SET IF ZERO
|
||||
LD B,A ; SETUP SHIFT COUNTER
|
||||
LD A,1 ; SETUP A WITH MASK
|
||||
RET Z ; DONE IF ZERO
|
||||
BITLOC1:
|
||||
SLA A ; SHIFT
|
||||
DJNZ BITLOC1 ; LOOP AS NEEDED
|
||||
RET ; DONE
|
||||
;
|
||||
; PRINT VALUE OF HL IN DECIMAL WITH LEADING ZERO SUPPRESSION
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user