;000a
;000c
;0012 another buffer for 1800 - what change to give?
-;0013
+;0013 location of decimal point?
;0014 buffer for 3800 register
;0015
;0016 new key state (cf 0029)
;0017 bits 5-7 used mostly
;0018
-;0019
+;0019 error statuses:
+; bit 0 - over current
+; bit 1 - home sensor failure
+; bit 2 - check prices
;001a buffer for 3000 register - initialised to 7F
;001b bit 3 - denote motor fault?
;001c used for loop variables
; bit 5 denotes machine out of order
;0023 buffer for 1800
;0026 used exclusively in SCI interrupt handler
+;0027 price of current item
;0029 previous key state (cf 0016)
+;002b machine language. 3 = english. 0,1,2 = german, spanish, french or something
;002c inhibits display writes?
;0032 to do with the beeper (see jump52)
;0033
;003f
;0040
;0042 current key press
+;0043 current byte being sent out serial port
;0048 error status
;004a
;0052 win-a-snack odds (in ram)
+;0800 - 0x0fff memory bank 2k
+;
;1800 Internal switches
; 7 changer INT'
; 6 Sold out.
8B18 20 2D - bra 2d
8B1A FC 00 27 ..' ldd 0027
8B1D 26 0D &. bne 0d
-8B1F CC 27 10 .'. ldd #2710
+8B1F CC 27 10 .'. ldd #2710 ;10000
8B22 F0 0B AA ... subb 0baa
8B25 82 00 .. sbca #00
8B27 FD 00 27 ..' std 0027
8C72 39 9 rts
jump75:
+;fetches a price & other info for the given slot?
8C73 F6 00 06 ... ldab 0006
8C76 4F O clra
8C77 05 . asld
8CA1 84 08 .. anda #08
8CA3 27 08 '. beq 08
8CA5 CE 00 19 ... ldx #0019
-8CA8 1C 00 10 ... bset 00,x, #10
+8CA8 1C 00 10 ... bset 00,x, #10 ; corresponds to whatever '*' is on price display
8CAB 20 06 . bra 06
8CAD CE 00 19 ... ldx #0019
8CB0 1D 00 10 ... bclr 00,x, #10
9126 7F 00 09 ... clr 0009
9129 7F 00 0A ... clr 000a
912C 39 9 rts
-
+;
912D F6 00 19 ... ldab 0019
9130 2C 28 ,( bge 28
9132 BD A9 CF ... jsr a9cf ;jump131
91E2 7F 00 54 ..T clr 0054
91E5 7F 00 60 ..` clr 0060
91E8 CE 00 19 ... ldx #0019
-91EB 1D 00 .. bclr add,x 00,x
-91ED 80 7F .. suba #7f
-91EF 00 . test
-91F0 36 6 psha
+91EB 1D 00 80 .. bclr 00,x, #80
+91EE 7F 00 36 .. clr 0036
91F1 20 66 f bra 66
91F3 F6 00 0A ... ldab 000a
91F6 4F O clra
9551 CC B0 B8 ... ldd #b0b8 ; "SELECTION?"
9554 BD C0 BA ... jsr c0ba ;display:
9557 CE 00 19 ... ldx #0019
-955A 1D 00 .. bclr add,x 00,x
-955C 80 CE .. suba #ce
-955E 00 . test
-955F 1D 1D 00 ... bclr 1d,x, #00
-9562 80 7F .. suba #7f
-9564 00 . test
-9565 54 T lsrb
+955A 1D 00 80 .. bclr 00,x, #80
+955D CE 00 1D .. ldx #001d
+9560 1D 00 80 ... bclr 00,x, #80
+9562 7F 00 54 .. clr 0054
9566 C6 32 .2 ldab #32
9568 F7 00 3A ..: stab 003a
956B F6 00 0A ... ldab 000a
95DF F7 00 3A ..: stab 003a
95E2 20 09 . bra 09
95E4 CE 00 19 ... ldx #0019
-95E7 1C 00 .. bset add,x 00,x
-95E9 80 7F .. suba #7f
-95EB 00 . test
-95EC 3A : abx
+95E7 1C 00 80 .. bset 00,x, #80
+95E9 7F 00 3A .. clr 003a
95ED BD BE 01 ... jsr be01 ;jump70
95F0 7C 00 54 |.T inc 0054
95F3 F6 00 54 ..T ldab 0054
9623 26 21 &! bne 21
9625 BD D3 11 ... jsr d311 ;jump30 - test position exists
9628 83 00 00 ... subd #0000
-962B 26 0B &. bne 0b
+962B 26 0B &. bne 0b ; to 9638
962D CE 00 1F ... ldx #001f
-9630 1C 00 40 ... bset 00,x, #40
-9633 BD 8C 73 ..s jsr 8c73 ;jump75
-9636 20 06 . bra 06
+9630 1C 00 40 ... bset 00,x, #40 ; denotes an invalid slot or unmarked price? (fills display with XXX.XX)
+9633 BD 8C 73 ..s jsr 8c73 ;jump75 - fetch slot info
+9636 20 06 . bra 06 ; to 963e
9638 CE 00 1F ... ldx #001f
963B 1D 00 40 ... bclr 00,x, #40
963E 7F 00 2C .., clr 002c
-9641 BD 9A 47 ..G jsr 9a47 ;jump39
+9641 BD 9A 47 ..G jsr 9a47 ;jump39 - display price on screen
9644 20 0C . bra 0c
9646 CE 00 1D ... ldx #001d
-9649 1D 00 .. bclr add,x 00,x
-964B 80 CE .. suba #ce
-964D 00 . test
-964E 19 . daa
-964F 1C 00 .. bset add,x 00,x
-9651 80 20 . suba #20
-9653 06 . tap
+9649 1D 00 80 .. bclr 00,x, #80
+964C CE 00 19 .. ldx #0019
+964F 1C 00 80 .. bset 00,x, #80
+9652 20 06 . bra 06
9654 CE 00 1D ... ldx #001d
-9657 1D 00 .. bclr add,x 00,x
-9659 80 20 . suba #20
-; 965a goto93
-965B 2B F6 +. bmi f6
-; 965C
-;goto16
-965D 00 . test
-965E 1D 2C ., bclr add,x 2c,x
-9660 26 BD &. bne bd
-9662 D2 13 83 ... sbcb 13
-9665 00 . test
-9666 00 . test
+9657 1D 00 80 .. bclr 00,x, #80
+goto93:
+965A 20 2B . bra 2b
+goto16:
+965C F6 00 1D +. ldab 001d
+965F 2C 26 ., bge 26
+9661 BD D2 13 &. jsr d213 ;jump45
+9664 83 00 00 ... subd #0000
9667 26 0F &. bne 0f
9669 CC 00 64 ..d ldd #0064
966C BD E5 71 ..q jsr e571 ;msdelay
966F BD E5 D1 ... jsr e5d1 ;jump52 - triple beep
-9672 CC 03 84 ... ldd #0384
+9672 CC 03 84 ... ldd #0384 ; 900
9675 BD E5 71 ..q jsr e571 ;msdelay
9678 7F 00 2E ... clr 002e
967B CE 00 1D ... ldx #001d
-967E 1D 00 .. bclr add,x 00,x
-9680 80 CE .. suba #ce
-9682 00 . test
-9683 1F 1C 00 02 .... brclr 1c,x 00 02
+967E 1D 00 80 .. bclr 00,x, #80
+9680 CE 00 1F .. ldx #001f
+9683 1C 00 02 ... bset 00,x #02
9687 39 9 rts
jump148:
9A46 39 9 rts
jump39:
+; write a slot, price, etc to screen.
9A47 BD BE 4B ..K jsr be4b ;displayblank
9A4A F6 00 06 ... ldab 0006
9A4D 4F O clra
9A5F F7 0B 97 ... stab 0b97
9A62 F6 00 1F ... ldab 001f
9A65 C4 40 .@ andb #40
-9A67 27 45 'E beq 45
+9A67 27 45 'E beq 45 ; to 9aae
9A69 FC 00 27 ..' ldd 0027
9A6C BD E7 45 ..E jsr e745 ;jump55 - number to string
9A6F F6 00 5A ..Z ldab 005a
9A87 F6 00 19 ... ldab 0019
9A8A C4 10 .. andb #10
9A8C 27 07 '. beq 07
-9A8E C6 2A .* ldab #2a
+9A8E C6 2A .* ldab #2a ; '*'
9A90 F7 0B 92 ... stab 0b92
9A93 20 05 . bra 05
9A95 C6 20 . ldab #20
9AA3 F7 0B 91 ... stab 0b91
9AA6 F6 00 5F .._ ldab 005f
9AA9 F7 0B 90 ... stab 0b90
-9AAC 20 1E . bra 1e
-9AAE C6 58 .X ldab #58 : "X"
+9AAC 20 1E . bra 1e ; to 9acc
+;
+9AAE C6 58 .X ldab #58 ; "X"
9AB0 F7 0B 96 ... stab 0b96
-9AB3 C6 58 .X ldab #58 : "X"
+9AB3 C6 58 .X ldab #58 ; "X"
9AB5 F7 0B 95 ... stab 0b95
-9AB8 C6 58 .X ldab #58 : "X"
+9AB8 C6 58 .X ldab #58 ; "X"
9ABA F7 0B 94 ... stab 0b94
-9ABD C6 58 .X ldab #58 : "X"
+9ABD C6 58 .X ldab #58 ; "X"
9ABF F7 0B 93 ... stab 0b93
-9AC2 C6 58 .X ldab #58 : "X"
+9AC2 C6 58 .X ldab #58 ; "X"
9AC4 F7 0B 91 ... stab 0b91
-9AC7 C6 58 .X ldab #58 : "X"
+9AC7 C6 58 .X ldab #58 ; "X"
9AC9 F7 0B 90 ... stab 0b90
+;
9ACC F6 00 13 ... ldab 0013
9ACF C1 01 .. cmpb #01
-9AD1 23 4C #L bls 4c
+9AD1 23 4C #L bls 4c ; to 9b1f
9AD3 F6 0B 91 ... ldab 0b91
9AD6 F7 0B 90 ... stab 0b90
9AD9 F6 0B 92 ... ldab 0b92
9AF0 26 07 &. bne 07
9AF2 C6 2E .. ldab #2e ; "."
9AF4 F7 0B 94 ... stab 0b94
-9AF7 20 26 & bra 26
+9AF7 20 26 & bra 26 ; to 9b1f
9AF9 C1 04 .. cmpb #04
9AFB 26 0D &. bne 0d
9AFD F6 0B 95 ... ldab 0b95
9B17 F7 0B 95 ... stab 0b95
9B1A C6 2E .. ldab #2e
9B1C F7 0B 96 ... stab 0b96
+;
9B1F F6 00 2C .., ldab 002c
9B22 26 3E &> bne 3e
9B24 BD BE 69 ..i jsr be69 ;displayreset
+95EB 00 . test
+95EC 3A : abx
9B27 F6 00 13 ... ldab 0013
9B2A C1 01 .. cmpb #01
9B2C 23 2C #, bls 2c
9B47 20 0B . bra 0b
9B49 CE 00 01 ... ldx #0001
9B4C 3C < pshx
-9B4D CC 00 58 ..X ldd #0058
+9B4D CC 00 58 ..X ldd #0058 ; 'X'
9B50 BD BD B5 ... jsr bdb5 ;jump78
9B53 38 8 pulx
9B54 CE 10 28 ..( ldx #1028
9D77 F7 0B 90 ... stab 0b90
9D7A BD BE 01 ... jsr be01 ;jump70
9D7D 39 9 rts
-
+;
9D7E BD BE 4B ..K jsr be4b ;displayblank
9D81 F6 00 60 ..` ldab 0060
9D84 4F O clra
A87C 31 1 ins
A87D 2C 0A ,. bge 0a
A87F F6 00 60 ..` ldab 0060
-A882 C1 F9 .. cmpb #f9
+A882 C1 F9 .. cmpb #f9 ; -7
A884 24 03 $. bcc 03
A886 7C 00 60 |.` inc 0060
A889 20 0A . bra 0a
A896 F6 00 36 ..6 ldab 0036
A899 26 39 &9 bne 39
A89B F6 00 54 ..T ldab 0054
-A89E C1 27 .' cmpb #27
+A89E C1 27 .' cmpb #27 ; 39
A8A0 24 20 $ bcc 20
A8A2 7C 00 54 |.T inc 0054
A8A5 F6 00 09 ... ldab 0009
A8A8 C1 01 .. cmpb #01
A8AA 26 0C &. bne 0c
A8AC F6 00 54 ..T ldab 0054
-A8AF C1 27 .' cmpb #27
+A8AF C1 27 .' cmpb #27 ; 39
A8B1 26 03 &. bne 03
A8B3 7F 00 54 ..T clr 0054
A8B6 20 0A . bra 0a
A8B8 F6 00 54 ..T ldab 0054
-A8BB C1 24 .$ cmpb #24
+A8BB C1 24 .$ cmpb #24 ; 36
A8BD 26 03 &. bne 03
A8BF 7F 00 54 ..T clr 0054
A8C2 F6 00 54 ..T ldab 0054
AA09 39 9 rts
jump130:
-AA0A C6 53 .S ldab #53
+AA0A C6 53 .S ldab #53 ; 'S'
AA0C F7 0C B9 ... stab 0cb9
-AA0F C6 29 .) ldab #29
+AA0F C6 29 .) ldab #29 ; ')'
AA11 F7 0C BA ... stab 0cba
-AA14 C6 20 . ldab #20
+AA14 C6 20 . ldab #20 ; ' '
AA16 F7 0C BB ... stab 0cbb
AA19 7F 00 54 ..T clr 0054
AA1C F6 00 54 ..T ldab 0054
jump78:
; start/finish sending a byte to the display
-; stack parameter - 0 to disable clock (finish), 1 to enable clock (start)
+; stack parameter - 0 to disable display clock (for reading keypad), 1 to enable
; lower 8-bits of D - byte to write to display.
; bytes with bit 7 unset are characters (0-127)
; bytes with bit 7 set are control commands.
displayreset:
; Reset the display
-; Clear bit 7 of PortA - display reset
+; Clear bit 7 of PortA - display reset (active low)
BE69 CE 10 00 ... ldx #1000
BE6C 1D 00 80 .. bclr x,#80
BE6F BD E5 96 ... jsr e596 ;jump115 - 100ms delay
-; Clear bit 7 of PortA - reset line back to high (not active)
+; Clear bit 7 of PortA - reset line back to high
BE72 CE 10 00 ... ldx #1000
BE75 1C 00 80 .. bset 00,x, #80
-; set clock polarity
+; set SPI enable
BE78 CE 10 28 ... ldx #1028
BE7B 1C 00 40 ... bset 00,x, #40
BE93 BD BD B5 ... jsr bdb5 ;jump78
BE96 38 8 pulx
-; revert clock polarity
+; revert SPI enable
BE97 CE 10 28 ..( ldx #1028
BE9A 1D 00 40 ... bclr 00,x, #40
BE9D 39 9 rts
C0FB 5F . clrb
C0FC 4F O clra
C0FD 39 9 rts
-
+;
C0FE CE 00 14 ... ldx #0014
C101 1C 00 01 ... bset 00,x, #01
C104 F6 00 14 ... ldab 0014
C10D C4 1F .. andb #1f
C10F 26 03 &. bne 03
C111 7E C3 1B ~.. jmp c31b ;goto34
-C114 C6 14 .. ldab #14
+C114 C6 14 .. ldab #14 ; 20
C116 F7 00 31 ..1 stab 0031
C119 F6 00 15 ... ldab 0015
C11C 2D 15 -. blt 15
C12D 5F _ clrb
C12F 4F O clra
C130 39 9 rts
-
+;
C131 20 E6 . bra e6
C133 FC 00 3E ..> ldd 003e
C136 F3 00 40 ..@ addd 0040
C1F8 38 8 pulx
C1F9 38 8 pulx
C1FA 24 11 $. bcc 11
-C1FC CE 00 C8 ... ldx #00c8
+C1FC CE 00 C8 ... ldx #00c8 ; 200
C1FF 3C < pshx
C200 CC FF 38 ..8 ldd #ff38 ; -200
C203 37 7 pshb
C28F FC 0C FF ... ldd 0cff
C292 37 7 pshb
C293 36 6 psha
-C294 CE FC 18 ... ldx #fc18
+C294 CE FC 18 ... ldx #fc18 ; -1000
C297 3C < pshx
C298 CC 03 E7 ... ldd #03e7
C29B 30 0 tsx
C2A4 38 8 pulx
C2A5 38 8 pulx
C2A6 24 11 $. bcc 11
-C2A8 CE 03 E8 ... ldx #03e8
+C2A8 CE 03 E8 ... ldx #03e8 ; 1000
C2AB 3C < pshx
-C2AC CC FC 18 ... ldd #fc18
+C2AC CC FC 18 ... ldd #fc18 ; -1000
C2AF 37 7 pshb
C2B0 36 6 psha
C2B1 CC 0C FF ... ldd #0cff
C2B8 31 1 ins
C2B9 20 53 S bra 53
C2BB FC 0C E5 ... ldd 0ce5
-C2BE 83 C3 4F ..O subd #c34f
+C2BE 83 C3 4F ..O subd #c34f ; 49999
C2C1 26 05 &. bne 05
C2C3 5F _ clrb
C2C4 4F O clra
C2C8 FE 0C E5 ... ldx 0ce5
C2CB 08 . inx
C2CC FF 0C E5 ... stx 0ce5
-C2CF CE 07 D0 ... ldx #07d0
+C2CF CE 07 D0 ... ldx #07d0 ; 2000
C2D2 3C < pshx
C2D3 CC 00 00 ... ldd #0000
C2D6 37 7 pshb
C2D7 36 6 psha
-C2D8 CC 0D 03 ... ldd #0d03
+C2D8 CC 0D 03 ... ldd #0d03 ; 3331
C2DB BD FB DF ... jsr fbdf ;jump46
C2DE 31 1 ins
C2DF 31 1 ins
C2E4 FC 0D 03 ... ldd 0d03
C2E7 37 7 pshb
C2E8 36 6 psha
-C2E9 CE D9 30 ..0 ldx #d930
+C2E9 CE D9 30 ..0 ldx #d930 ; -9936
C2EC 3C < pshx
-C2ED CC 05 F5 ... ldd #05f5
+C2ED CC 05 F5 ... ldd #05f5 ; 1525
C2F0 30 0 tsx
C2F1 A3 02 .. subd 02,x
C2F3 32 2 pula
C2F9 38 8 pulx
C2FA 38 8 pulx
C2FB 24 11 $. bcc 11
-C2FD CE 26 D0 .&. ldx #26d0
+C2FD CE 26 D0 .&. ldx #26d0 ; 9936
C300 3C < pshx
-C301 CC FA 0A ... ldd #fa0a
+C301 CC FA 0A ... ldd #fa0a ; -1526
C304 37 7 pshb
C305 36 6 psha
-C306 CC 0D 03 ... ldd #0d03
+C306 CC 0D 03 ... ldd #0d03 ; 3331
C309 BD FB DF ... jsr fbdf ;jump46
C30C 31 1 ins
C30D 31 1 ins
C311 2C 02 ,. bge 02
C313 20 F9 . bra f9
C315 CE 00 15 ... ldx #0015
-C318 1D 00 .. bclr add,x 00,x
-C31A 1F CE 00 1D .... brclr ce,x 00 1d
-;goto34
-; c31b???
-C31E 1D 00 .. bclr add,x 00,x
-C320 20 CC . bra cc
-C322 00 . test
-C323 01 . nop
+C318 1D 00 1F .. bclr 00,x, #1f
+goto34:
+C31B CE 00 1D ... ldx #001d
+C31E 1D 00 20 .. bclr 00,x, #20
+C320 CC 00 01 . ldd #0001
C324 39 9 rts
jump64:
jump124:
; chat to changer
C67D F6 00 30 ..0 ldab 0030
-C680 26 55 &U bne 55
+C680 26 55 &U bne 55 ; to c6d7
C682 F6 0B C0 ... ldab 0bc0
C685 C4 04 .. andb #04 ; have a card reader
-C687 26 4E &N bne 4e
+C687 26 4E &N bne 4e ; to c6d7
C689 C6 27 .' ldab #27
C68B F7 10 2D ..- stab 102d ; disable SCI transmission
C68E C6 07 .. ldab #07
C6D0 C6 1E .. ldab #1e
C6D2 F7 00 35 ..5 stab 0035
C6D5 20 5D ] bra 5d
+;
C6D7 F6 18 00 ... ldab 1800
C6DA 2D 2A -* blt 2a
C6DC F6 00 07 ... ldab 0007
C7BF 39 9 rts
jump49:
-; parity tester. returns 0 if good
+; parity tester. returns 1 if good
C7C0 F6 10 2F ../ ldab 102f ; sci data
C7C3 4F O clra
C7C4 8D CE .. bsr c794 ; parity test?
jump37:
C7E7 37 7 pshb
C7E8 36 6 psha
-C7E9 C6 32 .2 ldab #32 ; 50
+C7E9 C6 32 .2 ldab #32 ; 50 00110010
C7EB F7 00 31 ..1 stab 0031
C7EE 30 0 tsx
C7EF E6 01 .. ldab 01,x
;
;
goto44:
-CBFF F6 0B C0 ... ldab 0bc0 ; do we have a changer?
+CBFF F6 0B C0 ... ldab 0bc0 ; do we have our changer (link master)?
CC02 C4 02 .. andb #02
-CC04 26 03 &. bne 03 ; if so, swallow & exit
+CC04 26 03 &. bne 03 ; if not, swallow & exit
CC06 7E CE 3B ~.; jmp ce3b ; goto54 - swallow a byte & exit
;
CC09 F6 10 2F ../ ldab 102f ; read SCI data
CC10 27 03 '. beq 03
CC12 7E CE 3B ~.; jmp ce3b ;goto54 - swallow a byte & exit
;
-CC15 C6 32 .2 ldab #32 ; 50
+CC15 C6 32 .2 ldab #32 ; 50 00110010
CC17 F7 00 2F ../ stab 002f
-CC1A CE 00 1B ... ldx #001b
+CC1A CE 00 1B ... ldx #001b ; say we have a link master packet?
CC1D 1C 00 02 ... bset 00,x, #02
CC20 F6 10 2E ... ldab 102e ; SCI status
CC23 C4 02 .. andb #02 ; test for Framing Error
-CC25 26 08 &. bne 08
+CC25 26 08 &. bne 08 ; if not, perform parity test. else to cc2f
CC27 BD C7 C0 ... jsr c7c0 ;jump49 - parity test
CC2A 83 00 00 ... subd #0000
-CC2D 26 0F &. bne 0f ; if failed, to cc3e
+CC2D 26 0F &. bne 0f ; if good, to cc3e
CC2F F6 10 2F ../ ldab 102f ; read SCI data
CC32 30 0 tsx
CC33 E7 00 .. stab 00,x
CC7E CC EE .. ; if 0017 0076+=sp<<16, else 0040+=sp<16, then same as above
CC80 CD 19 .. ; 0baa = sp, then same as above
CC82 CD 21 . ; 0baa = sp<<4, then same as above
-CC83 CD 30 !. ; 0013 = sp, then same as above
+CC83 CD 30 !. ; 0013 = sp, then same as above - location of dec point?
CC85 CD 38 0 ; read byte & #01,
;
CC88 F6 00 17 ... ldab 0017
CD94 F6 10 2F ../ ldab 102f ; read SCI data
CD97 4F O clra
CD98 BD FE 32 ..2 jsr fe32 ;jump25
-CD9B CD B1 00 31 ...1 ; 49 "1"
-CD9F CD DB 00 01 .... ; 50 "2"
-CDA3 CE 20 00 01 . .. ; 51 "3"
-CDA7 CE 28 00 05 .(.. ; 56 "8"
+CD9B CD B1 00 31 ...1 ; 49 "1" 00110001
+CD9F CD DB 00 01 .... ; 50 "2" 00110010
+CDA3 CE 20 00 01 . .. ; 51 "3" 00110011
+CDA7 CE 28 00 05 .(.. ; 56 "8" 00111000
CDAB CE 34 FF C8 .4.. ; 0
CDAF 00 00 .. ; end of array data
+;
CDB1 F6 00 21 ..! ldab 0021
CDB4 2C 08 ,. bge 08
CDB6 CC 00 80 ... ldd #0080
CDB9 BD C7 E7 ... jsr c7e7 ;jump37 - send byte to coin mech
-CDBC 20 1B . bra 1b
+CDBC 20 1B . bra 1b ; to cdd9
CDBE 5F _ clrb
CDBF 4F O clra
CDC0 BD C7 E7 ... jsr c7e7 ;jump37 - send byte to coin mech
CDD4 20 03 . bra 03
CDD6 7F 00 75 ..u clr 0075
CDD9 20 5E ^ bra 5e
+;
CDDB F6 00 1D ... ldab 001d
CDDE C4 02 .. andb #02
CDE0 27 07 '. beq 07
D212 39 9 rts
jump45:
+; dispense an item from slot 0006
D213 F6 00 1F ... ldab 001f
D216 C4 04 .. andb #04
-D218 26 12 &. bne 12
+D218 26 12 &. bne 12 ; to d22c
D21A F6 0B C0 ... ldab 0bc0
D21D C4 10 .. andb #10 ; have link master price holding
-D21F 26 0B &. bne 0b
+D21F 26 0B &. bne 0b ; to d22c
D221 CE 00 00 ... ldx #0000
D224 3C < pshx
D225 FC 00 44 ..D ldd 0044
D228 BD BE 9E ... jsr be9e ;jump50 - write slot & price to screen?
D22B 38 8 pulx
+;
D22C BD D3 11 ... jsr d311 ;jump30 - test position exists
D22F 83 00 00 ... subd #0000
-D232 27 13 '. beq 13
+D232 27 13 '. beq 13 ; to d247
D234 F6 00 06 ... ldab 0006
D237 BD D4 68 ..h jsr d468 ;jump51 - lookup in 0800 table & and with 8000
D23A 83 00 00 ... subd #0000
D23D 27 05 '. beq 05
-D23F 8D BC .. bsr bc ;jump90
-D241 BD D6 3C ..< jsr d63c ;jump33
+D23F 8D BC .. bsr bc ;jump90 - or entry in 0800 table of slot with #4000
+D241 BD D6 3C ..< jsr d63c ;jump33 - as above, but with #0400
D244 5F _ clrb
D245 4F O clra
D246 39 9 rts
-
+;
D247 BD D1 3D ..= jsr d13d ;jump34 - motor on
-D24A C6 3C .< ldab #3c
+D24A C6 3C .< ldab #3c ; 60
D24C F7 00 2E ... stab 002e
-D24F C6 41 .A ldab #41
+D24F C6 41 .A ldab #41 ; 65
D251 F7 00 31 ..1 stab 0031
D254 CE 00 1B ... ldx #001b
D257 1D 00 08 ... bclr 00,x #08
goto59:
D25A F6 00 1B ... ldab 001b
D25D C4 08 .. andb #08
-D25F 26 22 &" bne 22
+D25F 26 22 &" bne 22 ; to d283
D261 F6 00 2E ... ldab 002e
-D264 C1 35 .5 cmpb #35
+D264 C1 35 .5 cmpb #35 ; 53
D266 23 10 #. bls 10
-D268 BD D5 70 ..p jsr d570 ;jump35
+D268 BD D5 70 ..p jsr d570 ;jump35 - check home sensor departed
D26B 83 00 00 ... subd #0000
-D26E 27 06 '. beq 06
+D26E 27 06 '. beq 06 ; to d276
D270 CE 00 1B ... ldx #001b
D273 1C 00 08 ... bset 00,x, #08
-D276 20 0B . bra 0b
+D276 20 0B . bra 0b ; to d283
+; something went afoul. mark the motor as bad?
D278 BD D1 05 ... jsr d105 ;motors_off
-D27B 8D 80 .. bsr 80 ;jump90
-D27D BD D6 3C ..< jsr d63c ;jump33
+D27B 8D 80 .. bsr 80 ;jump90 - mark motor as faulty?
+D27D BD D6 3C ..< jsr d63c ;jump33 - mark motor as faulty?
D280 5F _ clrb
D281 4F O clra
D282 39 9 rts
-
+;
D283 F6 00 2E ... ldab 002e
-D286 C1 36 .6 cmpb #36
+D286 C1 36 .6 cmpb #36 ; 54
D288 24 56 $V bcc 56 ; to d2e0
-D28A BD D5 F7 ... jsr d5f7 ;jump108
+D28A BD D5 F7 ... jsr d5f7 ;jump108 - check motor overcurrent
D28D 83 00 00 ... subd #0000
D290 27 4E 'N beq 4e ; to d2e0
-D292 BD D5 B0 ... jsr d5b0 ;jump31
+D292 BD D5 B0 ... jsr d5b0 ;jump31 - check home sensor returned
D295 83 00 00 ... subd #0000
D298 27 46 'F beq 46 ; to d2e0
D29A BD D1 05 ... jsr d105 ;motors_off
D29D F6 00 2E ... ldab 002e
D2A0 C1 32 .2 cmpb #32
-D2A2 22 07 ". bhi 07
-D2A4 8D 6B .k bsr dest 6b
+D2A2 22 07 ". bhi 07 ; to d2ab
+D2A4 8D 6B .k bsr 6b ;jump30 - test motor overvoltage?
D2A6 83 00 00 ... subd #0000
-D2A9 27 0C '. beq 0c
+D2A9 27 0C '. beq 0c ; to d2b7
D2AB BD D1 05 ... jsr d105 ;motors_off
-D2AE BD D1 FD ... jsr d1fd ;jump90
-D2B1 BD D6 3C ..< jsr d63c ;jump33
+D2AE BD D1 FD ... jsr d1fd ;jump90 - mark motor as faulty?
+D2B1 BD D6 3C ..< jsr d63c ;jump33 - mark motor as faulty?
D2B4 5F _ clrb
D2B5 4F O clra
D2B6 39 9 rts
-
+;
D2B7 F6 00 06 ... ldab 0006
D2BA 4F O clra
D2BB C3 0E 06 ... addd #0e06
D2DA E7 00 .. stab 00,x
D2DC CC 00 01 ... ldd #0001
D2DF 39 9 rts
-
+;
D2E0 F6 00 2E ... ldab 002e
D2E3 26 14 &. bne 14
-D2E5 BD D5 F7 ... jsr d5f7 ;jump108
+D2E5 BD D5 F7 ... jsr d5f7 ;jump108 - check motor overcurrent status
D2E8 83 00 00 ... subd #0000
D2EB 26 0C &. bne 0c
D2ED BD D1 05 ... jsr d105 ;motors_off
D2F6 5F _ clrb
D2F7 4F O clra
D2F8 39 9 rts
-
+;
D2F9 F6 00 2E ... ldab 002e
D2FC 26 0C &. bne 0c
D2FE BD D1 05 ... jsr d105 ;motors_off
D307 5F _ clrb
D308 4F O clra
D309 39 9 rts
-
-D30A 7E D2 5A ~.Z jmp d25a ;goto59
+;
+D30A 7E D2 5A ~.Z jmp d25a ;goto59 - try again?
D30D BD E6 1B ... jsr e61b ;jump4
D310 39 9 rts
D5F6 39 9 rts
jump108:
+; check motor overcurrent status
D5F7 C6 07 .. ldab #07
D5F9 F7 00 1C ... stab 001c
D5FC 7F 00 18 ... clr 0018
;
D5FF F6 00 1C ... ldab 001c
-D602 27 1E '. beq 1e ; to d620
+D602 27 1E '. beq 1e ; to d622
D604 7A 00 1C z.. dec 001c
D607 F6 10 0A ... ldab 100a
-D60A C4 01 .. andb #01
+D60A C4 01 .. andb #01 ; motor overcurrent sense!
D60C 26 12 &. bne 12 ; to d620
D60E C6 07 .. ldab #07
D610 F7 00 1C ... stab 001c
DB44 F6 00 2B ..+ ldab 002b
DB47 C1 00 .. cmpb #00
DB49 26 08 &. bne 08
-DB4B CC AC DF ... ldd #acdf
+DB4B CC AC DF ... ldd #acdf ; "CAMBIO"
DB4E BD C0 BA ... jsr c0ba ;display:
DB51 20 1E . bra 1e
DB53 C1 01 .. cmpb #01
DB5D 20 12 . bra 12
DB5F C1 02 .. cmpb #02
DB61 26 08 &. bne 08
-DB63 CC AC EA ... ldd #acea
+DB63 CC AC EA ... ldd #acea ; "MONNAIE"
DB66 BD C0 BA ... jsr c0ba ;display:
DB69 20 06 . bra 06
-DB6B CC AC D4 ... ldd #acd4
+DB6B CC AC D4 ... ldd #acd4 ; "CHANGE"
DB6E BD C0 BA ... jsr c0ba ;display:
+;
DB71 BD D8 D3 ... jsr d8d3 ;jump84 500ms delay
DB74 CE 00 01 ... ldx #0001
DB77 3C < pshx
DE11 F7 00 2C .., stab 002c
DE14 39 9 rts
-dump118:
+jump118:
DE15 F6 00 1B ... ldab 001b
DE18 C4 01 .. andb #01
DE1A 26 03 &. bne 03
-DE1C 7E DE A4 ~.. jmp dea4 ;goto70
+DE1C 7E DE A4 ~.. jmp dea4 ;goto70 - return
DE1F F6 00 06 ... ldab 0006
DE22 4F O clra
DE23 05 . asld
DE2C 27 76 'v beq 76
DE2E F6 00 11 ... ldab 0011
DE31 C4 08 .. andb #08
-DE33 26 33 &3 bne 33
+DE33 26 33 &3 bne 33 ; to de68
DE35 F6 00 06 ... ldab 0006
DE38 F1 0B AF ... cmpb 0baf
-DE3B 27 20 ' beq 20
+DE3B 27 20 ' beq 20 ; to de5d
DE3D F6 00 06 ... ldab 0006
DE40 F1 0B AE ... cmpb 0bae
-DE43 27 18 '. beq 18
+DE43 27 18 '. beq 18 ; to de5d
DE45 F6 00 06 ... ldab 0006
DE48 F1 0B AD ... cmpb 0bad
-DE4B 27 10 '. beq 10
+DE4B 27 10 '. beq 10 ; to de5d
DE4D F6 00 06 ... ldab 0006
DE50 F1 0B AC ... cmpb 0bac
-DE53 27 08 '. beq 08
+DE53 27 08 '. beq 08 ; to de5d
DE55 F6 00 06 ... ldab 0006
DE58 F1 0B AB ... cmpb 0bab
-DE5B 26 0B &. bne 0b
+DE5B 26 0B &. bne 0b ; to de68
+;
DE5D CE 00 1B ... ldx #001b
DE60 1D 00 01 ... bclr 00,x, #01
DE63 7F 00 4F ..O clr 004f
-DE66 20 3C < bra 3c
+DE66 20 3C < bra 3c ; return
+;
DE68 FC 00 44 ..D ldd 0044
DE6B B3 0B B7 ... subd 0bb7
-DE6E 23 2B #+ bls 2b
+DE6E 23 2B #+ bls 2b ; to de99 - return
DE70 FC 00 40 ..@ ldd 0040
DE73 F3 00 3E ..> addd 003e
DE76 37 7 pshb
DE82 A3 00 .. subd 00,x
DE84 31 1 ins
DE85 31 1 ins
-DE86 22 13 ". bhi 13
+DE86 22 13 ". bhi 13 ; to de9b
DE88 FC 0B B7 ... ldd 0bb7
-DE8B 27 0E '. beq 0e
+DE8B 27 0E '. beq 0e ; to de9b
DE8D FC 00 44 ..D ldd 0044
DE90 B3 0B B7 ... subd 0bb7
DE93 F3 00 44 ..D addd 0044
DE96 FD 00 44 ..D std 0044
-DE99 20 09 . bra 09
+DE99 20 09 . bra 09 ; return
+;
DE9B CE 00 1B ... ldx #001b
DE9E 1D 00 01 ... bclr 00,x, #01
DEA1 7F 00 4F ..O clr 004f
; revolves around coinage
DEE7 F6 0B C0 ... ldab 0bc0
DEEA C4 01 .. andb #01 ; have a dumb mech
-DEEC 26 07 &. bne 07
+DEEC 26 07 &. bne 07 ; to def5
DEEE F6 0B C0 ... ldab 0bc0
DEF1 C4 04 .. andb #04 ; have a card reader
-DEF3 27 15 '. beq 15
+DEF3 27 15 '. beq 15 ; if not to df0a
+; have dumb mech:
DEF5 C6 FF .. ldab #ff
DEF7 F7 0B BC ... stab 0bbc
DEFA F6 00 15 ... ldab 0015
-DEFD 2D 03 -. blt 03
+DEFD 2D 03 -. blt 03 ; to df02
DEFF BD C6 7D ..} jsr c67d ;jump124 - chat to changer
DF02 BD D6 6B ..k jsr d66b ;jump107 - chat to bill acceptor
DF05 BD DC A3 ... jsr dca3 ;jump29
-DF08 20 25 % bra 25
+DF08 20 25 % bra 25 ; to df2f
+; test the link master?
DF0A F6 0B C0 ... ldab 0bc0
-DF0D C4 02 .. andb #02 ;have changer
-DF0F 27 1E '. beq 1e
+DF0D C4 02 .. andb #02 ;have link master
+DF0F 27 1E '. beq 1e ; to df2f
DF11 F6 00 2F ../ ldab 002f
-DF14 26 19 &. bne 19
+DF14 26 19 &. bne 19 ; to df2f
DF16 F6 00 1B ... ldab 001b
DF19 C4 02 .. andb #02
-DF1B 26 12 &. bne 12
+DF1B 26 12 &. bne 12 ; to df2f
DF1D CC 00 FF ... ldd #00ff
DF20 BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port
DF23 CE 00 1B ... ldx #001b
DF26 1C 00 02 .. bset 00,x, #02
DF29 CE 0B C1 ... ldx #0bc1
DF2C 1C 00 04 .. bset 00,x, #04 ; set link powerup error bit
+;
DF2F F6 00 21 ..! ldab 0021
DF32 C4 20 . andb #20
DF34 27 07 '. beq 07
E0DD F6 0B C0 ... ldab 0bc0
E0E0 C4 02 .. andb #02 ; have a changer
E0E2 26 03 &. bne 03
-E0E4 BD DE 15 ... jsr de15 ;dump118
+E0E4 BD DE 15 ... jsr de15 ;jump118
E0E7 F6 00 11 ... ldab 0011
E0EA C4 20 . andb #20
E0EC 26 1A &. bne 1a
E18A C4 01 .. andb #01
E18C 27 08 '. beq 08
E18E FC 10 16 ... ldd 1016
-E191 83 00 64 ..d subd #0064
+E191 83 00 64 ..d subd #0064 ; 100
E194 25 3C %< bcs 3c
E196 F6 00 15 ... ldab 0015
E199 C4 02 .. andb #02
E19B 27 08 '. beq 08
E19D FC 10 16 ... ldd 1016
-E1A0 83 00 C8 ... subd #00c8
+E1A0 83 00 C8 ... subd #00c8 ; 200
E1A3 25 2D %- bcs 2d
E1A5 F6 00 15 ... ldab 0015
E1A8 C4 04 .. andb #04
E1AA 27 08 '. beq 08
E1AC FC 10 16 ... ldd 1016
-E1AF 83 01 F4 ... subd #01f4
+E1AF 83 01 F4 ... subd #01f4 ; 500
E1B2 25 1E %. bcs 1e
E1B4 F6 00 15 ... ldab 0015
E1B7 C4 08 .. andb #08
E1B9 27 08 '. beq 08
E1BB FC 10 16 ... ldd 1016
-E1BE 83 03 E8 ... subd #03e8
+E1BE 83 03 E8 ... subd #03e8 ; 1000
E1C1 25 0F %. bcs 0f
E1C3 F6 00 15 ... ldab 0015
E1C6 C4 10 .. andb #10
E1C8 27 13 '. beq 13
E1CA FC 10 16 ... ldd 1016
-E1CD 83 07 D0 ... subd #07d0
+E1CD 83 07 D0 ... subd #07d0 ; 2000
E1D0 24 0B $. bcc 0b
E1D2 BD C0 E0 ... jsr c0e0 ;jump94
E1D5 83 00 00 ... subd #0000
E358 C4 10 .. andb #10 ; have link master price holding
E35A 26 08 &. bne 08
E35C CE 00 21 ..! ldx #0021
-E35F 1C 00 .. bset add,x 00,x
-E361 80 20 . suba #20
-E363 0B . sev
+E35F 1C 00 80 .. bset 00,x, #80
+E362 20 0B . bra 0b
E364 CE 00 21 ..! ldx #0021
-E367 1D 00 .. bclr add,x 00,x
-E369 80 C6 .. suba #c6
-E36B 05 . asld
+E367 1D 00 80 .. bclr 00,x, #80
+E369 C6 05 .. ldab #05
E36C F7 00 75 ..u stab 0075
E36F 20 57 W bra 57
E371 F6 0B C0 ... ldab 0bc0
E40B CE 00 19 ... ldx #0019
E40E 1D 00 08 ... bclr 00,x, #08
E411 CE 00 1B ... ldx #001b
-E414 1D 00 .. bclr add,x 00,x
-E416 80 CE .. suba #ce
-E418 00 . test
-E419 1D 1D 00 ... bclr 1d,x, #00
-E41C 40 @ nega
+E414 1D 00 80 .. bclr 00,x, #80
+E416 CE 00 1D .. ldx #001d
+E41A 1D 00 40 ... bclr 00,x, #40
E41D CE 00 1D ... ldx #001d
E420 1D 00 02 ... bclr 00,x, #02
E423 CE 00 1F ... ldx #001f
E426 1D 00 08 ... bclr 00,x, #08
E429 CE 00 21 ..! ldx #0021
-E42C 1D 00 .. bclr add,x 00,x
-E42E 80 39 .9 suba #39
+E42C 1D 00 80 .. bclr 00,x, #80
+E42F 39 .9 rts
+;
E430 F6 0B C0 ... ldab 0bc0
E433 C4 20 . andb #20 ; link master - price display
E435 27 34 '4 beq 34
E46B 7E E3 DE ~.. jmp e3de ;goto77
goto76:
E46E CE 00 21 ..! ldx #0021
-E471 1D 00 .. bclr add,x 00,x
-E473 80 CE .. suba #ce
-E475 00 . test
-E476 1F 1D 00 08 .... brclr 1d,x 00 08
+E471 1D 00 80 .. bclr 00,x, #80
+E474 CE 00 1F .. ldx #001f
+E477 1D 00 08 .... bclr 00,x, #08
E47A BD D2 13 ... jsr d213 ;jump45
E47D 83 00 00 ... subd #0000
E480 26 0F &. bne 0f
E89F CC 3F FF .?. ldd #3fff
E8A2 FD 00 50 ..P std 0050
E8A5 7F 00 06 ... clr 0006
+;
E8A8 F6 00 06 ... ldab 0006
-E8AB C1 64 .d cmpb #64
-E8AD 24 64 $d bcc 64
+E8AB C1 64 .d cmpb #64 ; 100
+E8AD 24 64 $d bcc 64 ; to e913 - break
+;
E8AF F6 00 06 ... ldab 0006
E8B2 4F O clra
E8B3 CE 00 05 ... ldx #0005
E8B6 02 . idiv
E8B7 5D ] tstb
-E8B8 27 54 'T beq 54
+E8B8 27 54 'T beq 54 ; to e90e - continue
+;
E8BA F6 00 06 ... ldab 0006
E8BD BD D7 A0 ... jsr d7a0 ;is_invalid_slot
E8C0 83 00 00 ... subd #0000
-E8C3 26 49 &I bne 49
+E8C3 26 49 &I bne 49 ; continue
+;
E8C5 F6 00 06 ... ldab 0006
E8C8 4F O clra
E8C9 05 . asld
E8D4 FD 10 16 ... std 1016
E8D7 FC 10 16 ... ldd 1016
E8DA 83 27 10 .'. subd #2710 ; 10000
-E8DD 24 2F $/ bcc 2f
+E8DD 24 2F $/ bcc 2f ; to e90e - continue
E8DF F6 00 06 ... ldab 0006
-E8E2 BD D4 68 ..h jsr d468 ;jump51
+E8E2 BD D4 68 ..h jsr d468 ;jump51 - test bit 6 of array[0006] at 0800
E8E5 83 00 00 ... subd #0000
-E8E8 27 24 '$ beq 24
-E8EA BD D5 61 ..a jsr d561 ;jump42
+E8E8 27 24 '$ beq 24 ; to e90e - continue
+E8EA BD D5 61 ..a jsr d561 ;jump42 - test bit 7 of array[0006] at 0800
E8ED 83 00 00 ... subd #0000
-E8F0 26 1C &. bne 1c
+E8F0 26 1C &. bne 1c ; to e90e - continue
E8F2 FC 10 16 ... ldd 1016
E8F5 B3 00 0F ... subd 000f
E8F8 23 06 #. bls 06
E906 24 06 $. bcc 06
E908 FC 10 16 ... ldd 1016
E90B FD 00 50 ..P std 0050
+;
E90E 7C 00 06 |.. inc 0006
-E911 20 95 . bra 95
+E911 20 95 . bra 95 ; to e8a8
+;
E913 FC 0B B7 ... ldd 0bb7
E916 27 12 '. beq 12
E918 FC 00 0F ... ldd 000f
F8A1 F7 10 2D ..- stab 102d ; enable SCI transmission
F8A4 C6 03 .. ldab #03
F8A6 F7 10 2B ..+ stab 102b ; set 9600 baud
-F8A9 C6 46 .F ldab #46 ; 70
+F8A9 C6 46 .F ldab #46 ; 70 01000110
F8AB F7 00 2F ../ stab 002f
F8AE CC 07 D0 ... ldd #07d0
F8B1 BD E5 71 ..q jsr e571 ;msdelay
F9BC F6 00 1F ... ldab 001f
F9BF C4 20 . andb #20
F9C1 26 03 &. bne 03
-F9C3 7E FA 74 ~.t jmp fa74 ;goto84
+F9C3 7E FA 74 ~.t jmp fa74 ;goto84 if 001f is clear
F9C6 F6 0B C0 ... ldab 0bc0
F9C9 C4 01 .. andb #01
F9CB 27 08 '. beq 08
F9F9 1D 00 02 ... bclr 00,x, #02
F9FC F6 0B C0 ... ldab 0bc0
F9FF C4 02 .. andb #02
-FA01 27 27 '' beq 27
-FA03 C6 3C .< ldab #3c
+FA01 27 27 '' beq 27 ; to fa2a
+;
+FA03 C6 3C .< ldab #3c ; 62 00111100
FA05 F7 00 31 ..1 stab 0031
FA08 0E . cli
FA09 CC 00 FF ... ldd #00ff
FA1B F7 10 2D ..- stab 102d ; enable SCI transmission
FA1E C6 03 .. ldab #03
FA20 F7 10 2B ..+ stab 102b ; 9600 baud
-FA23 C6 46 .F ldab #46 ; 70
+FA23 C6 46 .F ldab #46 ; 70 01000110
FA25 F7 00 2F ../ stab 002f
-FA28 20 31 1 bra 31
+FA28 20 31 1 bra 31 ; to fa5b
+;
FA2A CE 00 21 ..! ldx #0021
FA2D 1D 00 40 ... bclr 00,x, #40
FA30 BD D0 94 ... jsr d094 ;jump66 - init variables
FA52 1D 00 04 ... bclr 00,x, #04
FA55 F6 00 1A ... ldab 001a
FA58 F7 30 00 .0. stab 3000 ; changer reset line low
-FA5B BD D4 79 ..y jsr d479 ;jump67
+;
+FA5B BD D4 79 ..y jsr d479 ;jump67 - query all motors?
FA5E BD E8 9A ... jsr e89a ;jump68
FA61 BD BE 69 ..i jsr be69 ;displayreset
FA64 7F 00 06 ... clr 0006
FA8D 1C 00 .. bset 00,x, #20
FA8F F6 00 12 ... ldab 0012
FA93 C4 01 .. andb #01
-FA95 26 33 &3 bne 33
+FA95 26 33 &3 bne 33 ; to faca
FA97 F6 00 1D ... ldab 001d
FA9A C4 08 .. andb #08
FA9C 27 2A '* beq 2a ; to fac8, to fad0
FA9E F6 00 1F ... ldab 001f
FAA1 C4 04 .. andb #04
-FAA3 26 14 &. bne 14
+FAA3 26 14 &. bne 14 ; to fab9
FAA5 CE 00 1F ... ldx #001f
FAA8 1C 00 04 ... bset 00,x, #04
FAAB CE 00 1F ... ldx #001f
FAC2 CE 00 1D ... ldx #001d
FAC5 1D 00 08 ... bclr 00,x, #08
FAC8 20 06 . bra 06 ; to fad0
+;
FACA CE 00 1D ... ldx #001d
FACD 1C 00 08 ... bset 00,x, #08
FAD0 F6 00 1F ... ldab 001f