Prev: 38495 Up: Map Next: 38632
38536: Routine at 9688
Used by the routines at RedefineKey and 38495.
38536 PUSH BC Stash BC and HL on the stack.
38537 PUSH HL
38538 LD HL,63488 HL=63488.
38541 LD E,254 E=254.
38543 LD A,E A=E.
38544 IN A,(254) A=byte from port 254.
38546 OR %11100000 Set bits 5-7.
38548 CPL Invert the bits in A.
38549 LD (HL),A Write A to *HL.
38550 INC HL Increment HL by one.
38551 RLC E Rotate E left (with carry).
38553 JR C,38543 Jump to 38543 if HL is less than A.
38555 LD (IY+100),0 Write 0 to *IY+100.
38559 LD HL,63488 HL=63488.
38562 BIT 0,(HL) Test bit 0 of *HL.
38564 JR Z,38576 Jump to 38576 if HL is equal to A.
38566 SET 0,(IY+100) Set bit 0 of *IX+100.
38570 RES 0,(HL) Reset bit 0 of *HL.
38572 LD E,254 E=254.
38574 LD D,1 D=1.
38576 LD HL,63495 HL=63495.
38579 BIT 1,(HL) Test bit 1 of *HL.
38581 JR Z,38593 Jump to 38593 if HL is equal to A.
38583 SET 1,(IY+100) Set bit 1 of *IX+100.
38587 RES 1,(HL) Reset bit 1 of *HL.
38589 LD E,127 E=127.
38591 LD D,2 D=2.
38593 PUSH IX Stash IX on the stack.
38595 LD IX,63488 IX=63488.
38599 LD HL,38669 HL=38669.
38602 LD B,254 B=254.
38604 LD A,(IX+0) A=*IX+0.
38607 OR A Set the bits from A.
38608 JR NZ,38640 Jump to 38640 if HL is not equal to A.
38610 INC IX Increment IX by one.
38612 LD A,5 L+=5.
38614 ADD A,L
38615 LD L,A
38616 JR NC,38619 Jump to 38619 if HL is greater than or equal to A.
38618 INC H Increment H by one.
38619 RLC B Rotate B left (with carry).
38621 JR C,38604 Jump to 38604 if H is less than A.
38623 LD A,(63588) Compare *63588 with itself for the return.
38626 CP A
38627 POP IX Restore IX, HL and BC from the stack.
38629 POP HL
38630 POP BC
38631 RET Return.
Prev: 38495 Up: Map Next: 38632