Membership Card
0000 C0 LBR MOVE
0001 00
0002 03
MOVE:
0003 E3 SEX R3 ; index register R3 for bit pattern point to 30H
0004 90 GHI R0 ; PC high byte is 0
0005 B3 PHI R3
0006 F8 LDI 30H
0007 30
0008 A3 PLO R3
0009 F8 LDI 00000001B ; bit pattern to move in (0030H)
000A 01
000B 53 STR R3
LOOP:
000C 64 OUT4 ; Rx = 0030H, INC Rx
000D 6C INP4 ; get switches Rx =0031H
000E 23 DEC R3 ; Rx = 0030H
000F FA ANI 11111110B
0010 FE
0011 3A BNZ LEFT
0012 1A
RIGHT:
0013 F0 LDX ; get pattern
0014 F6 SHR
0015 C7 LSNF
0016 F8 LDI 10000000B
0017 80
0018 30 BR STORE
0019 1F
LEFT:
001A F0 LDX ; get pattern
001B FE SHL
001C C7 LSNF
001D F8 LDI 00000001B
001E 01
STORE:
001F 53 STR R3
0020 F8 LDI 20
0021 14
0022 B2 PHI R2 ; R2 wait counter
WAIT:
0023 22 DEC R2 ; wait loop about 0.5 s
0024 92 GHI R2
0025 3A BNZ WAIT
0026 23
0027 C5 LSNQ ; toggle Q
0028 7A REQ
0029 38 NBR
002A 7B SEQ
002B 30 BR LOOP
002C 0C
--
Peter Schmid - 2017-11-18
Comments