From: Bernard Blackham Date: Thu, 7 Aug 2003 17:56:27 +0000 (+0000) Subject: making sense of coin mech X-Git-Tag: ROMW~91 X-Git-Url: https://git.ucc.asn.au/?p=uccvend-snackrom.git;a=commitdiff_plain;h=78e612b980f4547c9718823318a8d7087c364e9f making sense of coin mech --- diff --git a/ROM-2003/vend.asm b/ROM-2003/vend.asm index 72a6909..76004f2 100644 --- a/ROM-2003/vend.asm +++ b/ROM-2003/vend.asm @@ -30,6 +30,7 @@ ;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 @@ -40,6 +41,7 @@ ;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) @@ -1535,7 +1537,7 @@ goto8: 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 @@ -9213,7 +9215,7 @@ C7BE 31 1 ins 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? @@ -9745,9 +9747,9 @@ CBFC 7E CE 46 ~.F jmp ce46 ;goto47 (exit) ; ; 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 @@ -9758,14 +9760,14 @@ CC12 7E CE 3B ~.; jmp ce3b ;goto54 - swallow a byte & exit ; CC15 C6 32 .2 ldab #32 ; 50 00110010 CC17 F7 00 2F ../ stab 002f -CC1A CE 00 1B ... ldx #001b ; say we have a link master? +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 @@ -9805,7 +9807,7 @@ CC7C CC CA .. ; if 0017 0076+=sp<<8, else 0040+=sp<<8, then same 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 @@ -9959,17 +9961,18 @@ goto56: 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 @@ -9983,6 +9986,7 @@ CDD1 7C 00 75 |.u inc 0075 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 @@ -11760,7 +11764,7 @@ jump104: 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 @@ -11770,11 +11774,12 @@ DB5A BD C0 BA ... jsr c0ba ;display: 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 @@ -12703,13 +12708,11 @@ E355 F6 0B C0 ... ldab 0bc0 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 @@ -12776,18 +12779,17 @@ E408 1D 00 01 ... bclr 00,x, #01 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 @@ -12815,10 +12817,9 @@ E468 1D 00 02 ... bclr 00,x, #02 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