Last active
December 23, 2015 03:29
-
-
Save jedie/6573826 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
L_145D equ $145d | |
L_2211 equ $2211 | |
L_552D equ $552d | |
L_8000 jmp L_BB40 ; $8000-$8002: Hardware Initialisation (JMP $bb40; D64 JMP $bb3c) | |
L_8003 jmp L_BB88 ; $8003-$8005: Software Initialisation (JMP $bb88) | |
L_8006 jmp L_BBE5 ; $8006-$8008: %POLCAT% Scans keyboard, rets value in A (JMP $bbe5) Called indirectly from [$a000] | |
L_8009 jmp L_BBB5 ; $8009-$800b: %CBLINK% Cursor Blink (JMP $bbb5) | |
L_800C jmp L_BCAB ; $800c-$800e: %CHROUT% Write chr in A to screen (JMP $bcab) | |
L_800F jmp L_BD1A ; $800f-$8011: %LPOUT% Line printer character output in A reg., forces end-of-line sequences, outputs extra spaces to cause LFs etc. See: $0099-009c, $0148 (JMP $bd1a) | |
L_8012 jmp L_BD52 ; $8012-$8014: Reads Joystick (JMP $bd52) Called indirectly from [$a00a] | |
L_8015 jmp L_BDCF ; $8015-$8017: Cassette relay on (JMP $bdcf) | |
L_8018 jmp L_BDDC ; $8018-$801a: Cassette relay off (JMP $bddc) | |
L_801B jmp L_BE68 ; $801b-$801d: Write leader to cassette (JMP $be68) Called indirectly from [$a00c] | |
L_801E jmp L_BE12 ; $801e-$8020: Output byte in A to cassette (JMP $be12) | |
L_8021 jmp L_BDE7 ; $8021-$8023: Cassette on, init for reading (JMP $bde7) Called indirectly from [$a004] | |
L_8024 jmp L_BDAD ; $8024-$8026: Input byte from cassette into A (JMP $bdad) | |
L_8027 jmp L_BDA5 ; $8027-$8029: Get one bit from cassette to CC.C (JMP $bda5) | |
L_802A jmp L_BE7B ; $802a-$802c: Reads a byte from serial port (JMP $be7b) | |
L_802D jmp L_BE7C ; $802d-$802f: Sends a byte to serial port (D32 JMP $be7c; D64 JMP $be98) | |
jmp L_BE7D ; $be7b-$be97: D64 - Read byte from serial port to A, JMPd to from $802a, $be7d-$be7e: D32 - JMPd to from $8030 (COMB; RTS) | |
L_8143 fcb $ad,$aa ; jsr; $8033-$8153: Reserved words table | |
jsr L_BC55 | |
fcb $71,$84,$15 ; neg L_8415; $8415: NEW token dispatch address | |
bvc L_8143 ; $8033-$8153: Reserved words table | |
adca L_81BA ; $8154-$81c9: Reserved words dispatch table (Tokens 0x80-0xba only) | |
neg L_B81E ; $b81e: SKIPF token dispatch address | |
L_81B9 fcb $87,$aa ; discarda #$aa; $8154-$81c9: Reserved words dispatch table (Tokens 0x80-0xba only) | |
L_81BA equ L_81B9 + 1 ; $8154-$81c9: Reserved words dispatch table (Tokens 0x80-0xba only) | |
subb L_AAF3 ; $aaf3: PUT token dispatch address | |
ldx L_A9AF ; $a9af: PMODE token dispatch address | |
fcb $ad,$bd,$a0,$49 ; jsr [>L_2211,pcr] | |
L_81E7 addd <$54 ; $81ca-$824f: Function words table | |
bcs L_81E7 ; $81ca-$824f: Function words table | |
L_826E ldx #$5c8d ; $8250-$8293: Function words dispatch table | |
L_826F equ L_826E + 1 ; $8250-$8293: Function words dispatch table | |
ldb >L_552D,pcr | |
bsr L_826F ; $8250-$8293: Function words dispatch table | |
andb L_9BB4 ; $9bb4: INSTR function token dispatch address | |
rol L_910E ; $910e: + operator dispatch address (see $8294) | |
rol L_9105 ; $9105: - operator dispatch address (see $8294) | |
fcb $7b,$92,$75 ; dec L_9275; $9275: * operator dispatch address (see $8294) | |
fcb $7b,$93,$3c ; dec L_933C; $933c: / operator dispatch address (see $8294) | |
clr L_96A0 ; $96a0: ^ operator dispatch address (see $8294) | |
ble L_82EF ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
bra L_8326 | |
bra L_82EB ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
L_82EB tst <$4f ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
L_82EE tst <$00 ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
L_82EF equ L_82EE + 1 ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
L_82F6 neg <$30 ; $82f0-$82f6: 0x0d, 'BREAK', 0x00 | |
L_82F7 equ L_82F6 + 1 | |
L_82F8 lsr a,u | |
L_82F9 equ L_82F8 + 1 | |
bne L_8318 | |
beq L_8314 | |
beq L_8318 | |
bra L_82F9 | |
L_8314 ldx <$11 | |
L_8318 ldx <$0f | |
L_831C bsr L_8335 | |
L_831E ldu <$41 | |
L_8326 lda ,-x | |
bne L_8326 | |
L_8330 rts | |
L_8331 clra | |
L_8335 addd #$003a | |
bcs L_8342 | |
bcs L_8330 | |
L_8342 ldb #$0c | |
L_8344 jsr >$018e ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
jsr L_8018 ; $8018-$801a: Cassette relay off (JMP $bddc) | |
jsr L_BAC3 ; $bac3: Audio off: Disables sound (CoCo $a974) | |
jsr L_8434 ; $8434: Resets stack - all entries are lost (CoCo $ad33) | |
jsr L_90A5 | |
jsr L_90F8 | |
bsr L_839E | |
bsr L_839E | |
L_8366 jsr L_90E5 | |
beq L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
jsr L_9573 | |
L_8371 jsr L_90A5 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
ldx #L_82EB ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
jsr L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
L_837A jsr L_B5C6 | |
bcs L_837A | |
lbne L_B6FD | |
beq L_837A | |
bcs L_83A3 | |
bne L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
jsr L_8F67 | |
jmp L_84D6 | |
L_839E lda ,x+ | |
jmp L_90FA | |
L_83A3 jsr L_869A | |
L_83A6 ldx <$2b | |
jsr L_8F67 | |
bsr L_83FF | |
bcs L_83C6 | |
L_83BC ldu ,x | |
L_83BD equ L_83BC + 1 | |
L_83BE pulu a | |
bne L_83BE | |
L_83C6 lda >$02dc | |
beq L_83E7 | |
jsr L_831C | |
L_83DB pulu a | |
bne L_83DB | |
L_83E7 bsr L_841F | |
bsr L_83ED ; $83ed: BasVect2 - completes init once BASIC program loaded (CoCo $acef) | |
bra L_837A | |
L_83ED ldx <$19 ; $83ed: BasVect2 - completes init once BASIC program loaded (CoCo $acef) | |
L_83EF ldd ,x | |
beq L_8414 | |
L_83F5 lda ,u+ | |
bne L_83F5 | |
L_83FB ldx ,x | |
L_83FC equ L_83FB + 1 | |
bra L_83EF | |
L_83FF ldd <$2b | |
L_8403 ldu ,x | |
beq L_8410 | |
bls L_8412 | |
bra L_8403 | |
L_8410 orcc #$01 | |
L_8412 stx <$47 | |
L_8414 rts | |
L_8415 bne L_8412 ; $8415: NEW token dispatch address | |
L_8417 ldx <$19 ; $8417: Erases program in memory same as NEW (CoCo $ad19) {1} Called from BASIC init routine ($b3ba) | |
L_841F ldx <$19 ; $841f: BasVect1 - sets up various vectors after a BASIC program loaded (CoCo $ad21) | |
jsr L_85EE | |
L_8424 jsr >$0197 | |
jsr L_8514 ; $8514: RESTORE token dispatch address | |
L_8434 ldx #$01a9 ; $8434: Resets stack - all entries are lost (CoCo $ad33) | |
jsr L_86BC ; $86bc: LET token dispatch address | |
jsr L_82F7 | |
bne L_845A | |
L_845A ldb #$09 | |
jsr L_8331 | |
jsr L_861B | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jsr L_8874 | |
jsr L_8872 | |
jmp L_891B | |
jsr L_93BF ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
bne L_8491 | |
jsr L_8872 | |
L_8491 jsr L_9418 | |
jsr L_8917 | |
L_849F jsr >$019a ; $849f: RUN BASIC - runs BASIC program in mem used by Autorun programs (CoCo $ad9e) | |
bsr L_851B | |
beq L_84B5 | |
beq L_84D6 | |
L_84B2 jmp L_89B4 | |
L_84B5 lda ,x++ | |
lbeq L_8545 | |
beq L_84D6 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
jsr L_957A ; $957a: Print Number: outputs D as number to DEVN (CoCo $bdcc) | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
L_84D6 jsr <$9f | |
bsr L_84DC | |
bra L_849F ; $849f: RUN BASIC - runs BASIC program in mem used by Autorun programs (CoCo $ad9e) | |
L_84DC beq L_851A | |
lbpl L_86BC ; $86bc: LET token dispatch address | |
bhi L_84F5 | |
L_84F5 cmpa #$ff | |
beq L_8501 | |
bls L_84B2 | |
L_8501 jsr <$9f | |
lbeq L_9B0C | |
lbeq L_9D51 | |
bra L_84B2 | |
L_8514 ldx <$19 ; $8514: RESTORE token dispatch address | |
L_8518 stx <$33 | |
L_851A rts | |
L_851B jsr L_8006 | |
beq L_852A | |
L_8520 cmpa #$03 | |
beq L_8539 ; $8539: STOP token dispatch address | |
beq L_852B ; $852b: Waits for key press, returns key in A (CoCo $adfb) | |
L_852A rts | |
L_852B jsr L_8006 ; $852b: Waits for key press, returns key in A (CoCo $adfb) | |
beq L_852B ; $852b: Waits for key press, returns key in A (CoCo $adfb) | |
bra L_8520 | |
jsr L_B65C | |
bra L_853B | |
L_8539 orcc #$01 ; $8539: STOP token dispatch address | |
L_853B bne L_8570 | |
L_8541 ror <$00 | |
L_8545 ldx <$68 | |
beq L_8552 | |
L_8552 clr <$6f | |
ldx #L_82EF ; $82eb-$82ef: 0x0d, 'OK', 0x0d, 0x00 | |
lbpl L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
jmp L_8366 | |
bne L_8570 | |
lbeq L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_8570 rts | |
beq L_859F | |
jsr L_8B23 | |
beq L_858A | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
bhi L_85A2 | |
L_858A tfr x,d | |
bcs L_85A2 | |
bcs L_85A2 | |
bcs L_85A2 | |
L_859F jmp L_8424 | |
L_85A2 jmp L_8342 | |
jsr L_98E3 ; $98e3: Called from BASIC init routine ($b3ba-) | |
jsr L_B65C | |
lbeq L_841F ; $841f: BasVect1 - sets up various vectors after a BASIC program loaded (CoCo $ad21) | |
jsr L_8424 | |
bra L_85D2 | |
L_85BB jsr <$9f | |
beq L_85D7 | |
bne L_860A | |
jsr L_8331 | |
L_85D2 bsr L_85D7 | |
jmp L_849F ; $849f: RUN BASIC - runs BASIC program in mem used by Autorun programs (CoCo $ad9e) | |
L_85D7 jsr <$a5 | |
jsr L_869A | |
bsr L_861E | |
bhi L_85E9 | |
L_85E9 jsr L_8403 | |
bcs L_8605 | |
L_85EE leax -1,x | |
L_85F2 rts | |
bne L_85F2 | |
jsr L_82F7 | |
beq L_860D | |
L_8604 cmpx #$c60e | |
L_8605 equ L_8604 + 1 | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_860A jmp L_89B4 | |
L_860D puls a,x,u | |
L_8613 bsr L_861B ; $8613: DATA token dispatch address | |
L_861A rts | |
L_861B ldb #$3a | |
L_861D lda #$5f | |
L_861E equ L_861D + 1 | |
L_8624 tfr b,a | |
L_862A lda ,x | |
beq L_861A | |
beq L_861A | |
beq L_8624 | |
bne L_863F | |
L_863F cmpa #$86 | |
bne L_862A | |
bra L_862A | |
jsr L_8872 | |
beq L_8655 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
L_8655 lda <$4f | |
bne L_866C | |
L_865B bsr L_8613 | |
beq L_861A | |
bne L_865B | |
bpl L_865B | |
L_866C jsr <$a5 | |
lbcs L_85D7 | |
jmp L_84DC | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
beq L_8687 | |
L_8685 bne L_860A | |
L_8687 dec <$53 | |
bne L_8690 | |
jmp L_85BB | |
L_8690 jsr <$9f | |
bsr L_869A | |
beq L_8687 | |
L_869A ldx <$8a | |
L_869E bcc L_8704 | |
bhi L_8685 | |
bra L_869E | |
L_86BC jsr L_8A94 ; $86bc: LET token dispatch address | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_8879 | |
lbeq L_93DE | |
L_86D7 jsr >$019d | |
bcc L_86F4 | |
bcs L_86F4 | |
jsr L_8C50 | |
jsr L_8D89 | |
L_86F4 stx <$4d | |
jsr L_8DBB | |
L_8704 rts | |
L_870C ldb #$24 | |
beq L_8715 | |
L_8712 jmp L_8344 | |
L_8715 lda <$09 | |
beq L_8720 | |
jmp L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_8720 ldx #L_8704 | |
jsr L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
jsr L_9C76 | |
bsr L_8733 | |
L_8733 cmpa #$23 | |
bne L_8740 | |
jsr L_B7D7 | |
jsr L_B623 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
L_8740 cmpa #$22 | |
bne L_874F | |
jsr L_8975 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jsr L_90E8 | |
L_874F ldx #$02dc | |
bne L_877A | |
bsr L_8760 | |
bra L_877A | |
L_8760 jsr L_90F8 | |
jsr L_90F5 | |
L_8766 jsr L_B5C6 | |
bcc L_8770 | |
jmp L_8541 | |
L_8770 ldb #$30 | |
bne L_8712 | |
L_8779 lda #$4f | |
L_877A equ L_8779 + 1 | |
L_877F jsr L_8A94 | |
bne L_879A | |
bne L_87EA | |
jsr L_90F8 | |
L_8798 bsr L_8760 | |
L_8799 equ L_8798 + 1 | |
L_879A stx <$a6 | |
beq L_87C9 | |
beq L_87BC | |
jsr L_B595 | |
bne L_87BC | |
L_87BC sta <$02 | |
jsr L_8C61 | |
jsr L_897A | |
jsr L_86D7 | |
bra L_87CF | |
L_87C9 jsr L_94BD | |
jsr L_93DE | |
L_87CF jsr <$a5 | |
beq L_87D9 | |
lbne L_870C | |
L_87D9 ldx <$a6 | |
beq L_8806 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bra L_877F | |
L_87EA stx <$a6 | |
jsr L_861B | |
bne L_87FE | |
beq L_883B | |
L_87FE lda ,x | |
bne L_87EA | |
bra L_879A | |
L_8806 ldx <$35 | |
lbne L_8518 | |
beq L_8818 | |
ldx #L_8818 | |
jmp L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
L_8818 rts | |
bra L_886A | |
bne L_882F | |
bra L_8832 | |
L_882F jsr L_8A94 | |
L_8832 stx <$3b | |
jsr L_82F7 | |
beq L_883D | |
L_883B bra L_8884 | |
L_883D tfr x,s | |
jsr L_93BF ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
jsr L_910B | |
jsr L_93DE | |
jsr L_9441 | |
beq L_8865 | |
L_8862 jmp L_849F | |
L_8865 leas <$12,s | |
L_886A cmpa #$2c | |
bne L_8862 | |
bsr L_882F | |
L_8872 bsr L_8887 | |
L_8874 andcc #$fe | |
L_8876 tst >$1a01 | |
L_8877 equ L_8876 + 1 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
L_8879 tst <$06 | |
bcs L_8880 | |
bpl L_8818 | |
L_887F cmpx #$2b96 | |
L_8880 equ L_887F + 1 | |
L_8884 jmp L_8344 | |
L_8887 bsr L_88F7 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
L_8889 clra | |
L_888A cmpx #$3404 | |
L_888B equ L_888A + 1 | |
jsr L_8331 | |
jsr L_8954 | |
L_8899 jsr <$a5 | |
L_889B suba #$ca | |
bcs L_88B2 | |
bcc L_88B2 | |
bcs L_8910 | |
bra L_889B | |
L_88B2 ldb <$3f | |
bne L_88E9 | |
lbcc L_8925 | |
bcc L_8925 | |
lbeq L_8D55 | |
L_88D0 puls a | |
bcc L_892B | |
bsr L_8874 | |
bsr L_8905 | |
bne L_88FF | |
lbeq L_8951 | |
bra L_8934 | |
L_88E9 lsl <$06 | |
bsr L_88F7 | |
bra L_88D0 | |
L_88F7 ldx <$a6 | |
jmp L_85EE | |
L_88FE leay ,y++ | |
L_88FF equ L_88FE + 1 | |
L_8904 addd <$ec | |
L_8905 equ L_8904 + 1 | |
lbra L_888B | |
L_8910 jmp L_89B4 | |
L_8917 puls y | |
L_891B ldb <$4f | |
L_8925 ldx <$8a | |
beq L_8951 | |
L_892B cmpa #$64 | |
beq L_8932 | |
jsr L_8874 | |
L_8932 stx <$3d | |
L_8934 puls b | |
beq L_8953 | |
beq L_8953 | |
L_8951 ldb <$4f | |
L_8953 rts | |
L_8954 jsr >$018b | |
bcc L_8960 | |
L_895D jmp L_94BD | |
L_8960 jsr L_8ADF | |
bcc L_89C1 | |
beq L_895D | |
beq L_89B9 | |
beq L_8954 | |
bne L_897F | |
L_8975 ldx <$a6 | |
jsr L_8C5B | |
L_897A ldx <$64 | |
L_897F cmpa #$c0 | |
bne L_8990 | |
jsr L_888B | |
jsr L_8B2D ; $8b2d: %INTCNV% | |
jmp L_8C37 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC, $8c37-$8c3f: %GIVABF% returns D as 16bit val in FAC | |
L_8990 cmpa #$be | |
lbeq L_9CC4 | |
lbeq L_9C1B | |
beq L_89CD | |
L_899F bsr L_89A7 | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
L_89A4 ldb #$29 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
L_89A6 cmpx #$c628 | |
L_89A7 equ L_89A6 + 1 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
L_89A9 cmpx #$c62c | |
L_89AA equ L_89A9 + 1 ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
L_89AC cmpb [$00a6] ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bne L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_89B4 ldb #$02 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_89B9 lda #$7d | |
jsr L_888B | |
jmp L_96DE | |
L_89C1 jsr L_8A94 | |
bne L_8953 | |
jmp L_93BF ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
L_89CD jsr <$9f | |
bls L_89DC | |
L_89DC pshs b | |
bcs L_8A04 | |
bcc L_8A06 | |
bsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
bcc L_8A06 | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
bsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8877 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
L_8A03 ldx #$8d99 | |
L_8A04 equ L_8A03 + 1 | |
L_8A06 puls b | |
jmp L_8874 | |
jsr L_8B2D ; $8b2d: %INTCNV% | |
jsr L_93F5 | |
jsr L_8B2D ; $8b2d: %INTCNV% | |
bne L_8A2A | |
bra L_8A2E | |
L_8A2A ora <$01 | |
L_8A2E jmp L_8C37 | |
jsr L_8879 | |
bne L_8A46 | |
jsr L_9441 | |
bra L_8A7C | |
L_8A46 clr <$06 | |
jsr L_8D9D | |
jsr L_8D9F ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
beq L_8A65 | |
bcc L_8A65 | |
L_8A65 sta <$54 | |
L_8A6A decb | |
bne L_8A71 | |
bra L_8A7C | |
L_8A71 lda ,x+ | |
beq L_8A6A | |
bcc L_8A7C | |
L_8A7C addb #$01 | |
beq L_8A85 | |
L_8A85 jmp L_9427 | |
L_8A88 jsr L_89AA | |
bsr L_8A97 | |
bne L_8A88 | |
L_8A94 clrb ; $8a94: %GETVAR% gets VARPTR addr of following variables name (CoCo $b357) | |
L_8A97 stb <$05 | |
L_8A99 sta <$37 | |
bsr L_8ADF | |
lbcs L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
bcs L_8AAE | |
bsr L_8ADF | |
bcs L_8AB8 | |
L_8AAE tfr a,b | |
L_8AB0 jsr <$9f | |
bcs L_8AB0 | |
bsr L_8ADF | |
bcc L_8AB0 | |
L_8AB8 cmpa #$24 | |
bne L_8AC2 | |
L_8AC2 stb <$38 | |
lbeq L_8B44 | |
L_8AD2 cmpx <$1d | |
beq L_8AE8 | |
beq L_8B19 | |
bra L_8AD2 | |
L_8ADF cmpa #$41 | |
bcs L_8AE7 | |
L_8AE7 rts | |
L_8AE8 ldx #$008a | |
beq L_8B1B | |
jsr L_831C | |
L_8B19 stx <$39 | |
L_8B1B rts | |
L_8B20 neg <$9d | |
L_8B21 equ L_8B20 + 1 | |
L_8B22 stx <$bd | |
L_8B23 equ L_8B22 + 1 | |
L_8B26 jsr L_8874 | |
bmi L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
L_8B2D jsr L_8874 ; $8b2d: %INTCNV% | |
bcs L_8B3E | |
jsr L_9441 | |
bne L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
L_8B3E jsr L_9473 | |
L_8B44 ldb <$05 | |
L_8B4B ldx <$37 | |
bsr L_8B21 | |
beq L_8B4B | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
L_8B6D cmpx <$1f | |
beq L_8B92 | |
beq L_8B7E | |
bra L_8B6D | |
L_8B7E ldb #$12 | |
bne L_8B8F ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
beq L_8BE3 | |
L_8B8A ldb #$10 | |
L_8B8C cmpx #$c608 | |
L_8B8D equ L_8B8C + 1 ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
L_8B8F jmp L_8344 ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
L_8B92 ldd #$0005 | |
jsr L_8331 | |
L_8BA4 ldb #$0b | |
beq L_8BB0 | |
L_8BB0 std 5,x | |
bsr L_8C11 | |
bne L_8BA4 | |
lbcs L_8342 | |
jsr L_8335 | |
L_8BCF leax -1,x | |
bne L_8BCF | |
bne L_8C10 | |
L_8BE3 ldb 4,x | |
L_8BE9 std <$64 | |
bcc L_8C2E | |
beq L_8BFC | |
bsr L_8C11 | |
L_8BFC leax 2,x | |
bne L_8BE9 | |
L_8C10 rts | |
L_8C11 lda #$10 | |
L_8C1B lslb | |
bcs L_8C2E | |
bcc L_8C29 | |
bcs L_8C2E | |
L_8C29 dec <$45 | |
bne L_8C1B | |
L_8C2E jmp L_8B8A | |
jmp L_9FCE ; $9fce-$9fff: D32 - Unused 0x00 | |
L_8C36 clra ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC | |
L_8C37 clr <$06 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC, $8c37-$8c3f: %GIVABF% returns D as 16bit val in FAC | |
jmp L_942D ; $942d: Jumped to from GIVABF routine at 8c37-8c3f - returns 16 bit value in FAC to BASIC ?? | |
jsr L_8874 | |
jsr L_958A | |
bra L_8C5B | |
L_8C50 stx <$4d | |
L_8C52 bsr L_8CB3 | |
L_8C54 stx <$58 | |
L_8C59 leax -1,x | |
L_8C5B lda #$22 | |
L_8C5D sta <$01 | |
L_8C61 leax 1,x | |
L_8C69 incb | |
beq L_8C7A | |
beq L_8C76 | |
bne L_8C69 | |
L_8C76 cmpa #$22 | |
beq L_8C7C | |
L_8C7A leax -1,x | |
L_8C7C stx <$64 | |
bhi L_8C92 | |
bsr L_8C50 | |
jsr L_8D8B | |
L_8C92 ldx <$0b | |
bne L_8C9E | |
L_8C9B jmp L_8344 | |
L_8C9E lda <$56 | |
L_8CB3 clr <$07 | |
L_8CB5 clra | |
bcs L_8CCB | |
L_8CCB ldb #$1a | |
beq L_8C9B | |
bsr L_8CD7 ; $8cd7: Forces String space Garbage collection (CoCo $b591) | |
bra L_8CB5 | |
L_8CD7 ldx <$27 ; $8cd7: Forces String space Garbage collection (CoCo $b591) | |
L_8CD9 stx <$23 | |
L_8CE6 cmpx <$0b | |
beq L_8CEE | |
bsr L_8D1E | |
bra L_8CE6 | |
L_8CEE ldx <$1b | |
L_8CF0 cmpx <$1d | |
beq L_8CF8 | |
bsr L_8D18 | |
bra L_8CF0 | |
L_8CF8 stx <$41 | |
L_8CFA ldx <$41 | |
L_8CFC cmpx <$1f | |
beq L_8D35 | |
bpl L_8CFA | |
L_8D10 cmpx <$41 | |
beq L_8CFC | |
bsr L_8D1E | |
bra L_8D10 | |
L_8D18 lda 1,x | |
bpl L_8D32 | |
L_8D1E ldb ,x | |
beq L_8D32 | |
bhi L_8D32 | |
bls L_8D32 | |
L_8D32 leax 5,x | |
L_8D34 rts | |
L_8D35 ldx <$4b | |
beq L_8D34 | |
jsr L_831E | |
jmp L_8CD9 | |
L_8D55 ldd <$52 | |
jsr L_8954 | |
jsr L_8877 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
bcc L_8D70 | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_8D70 jsr L_8C50 | |
bsr L_8D89 | |
bsr L_8D9F ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
bsr L_8D8B | |
bsr L_8D9F ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
jsr L_8C92 | |
jmp L_8899 | |
L_8D89 ldx 2,x | |
L_8D8B ldu <$25 | |
bra L_8D94 | |
L_8D90 lda ,x+ | |
L_8D94 decb | |
bne L_8D90 | |
L_8D9A jsr L_8877 ; $8d9a: Sub - | |
L_8D9D ldx <$52 | |
L_8D9F ldb ,x ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
bsr L_8DBB | |
bne L_8DB8 | |
bne L_8DB5 | |
L_8DB5 leax 1,x | |
L_8DB8 ldx 2,x | |
L_8DBB cmpx <$0d | |
bne L_8DC6 | |
L_8DC6 rts | |
bsr L_8DCC | |
L_8DC9 jmp L_8C36 | |
L_8DCC bsr L_8D9A | |
jsr L_8E54 | |
L_8DD5 ldb #$01 | |
jsr L_8CB3 | |
jsr L_8C54 | |
L_8DE1 leas 2,s | |
L_8DE3 jmp L_8C92 | |
bsr L_8DEA | |
bra L_8DC9 | |
L_8DEA bsr L_8DCC | |
beq L_8E4C | |
bsr L_8E3B | |
L_8DF3 clra | |
L_8DF4 cmpb ,x | |
bls L_8DFB | |
L_8DFB pshs a,b | |
jsr L_8C52 | |
bsr L_8D9F ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
jsr L_8D8B | |
bra L_8DE3 | |
bsr L_8E3B | |
bra L_8DF4 | |
beq L_8E24 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
L_8E24 bsr L_8E3B | |
beq L_8E4C | |
bcc L_8DFB | |
bls L_8DFB | |
bra L_8DFB | |
L_8E3B jsr L_89A4 | |
L_8E4C jmp L_8B8D | |
L_8E4F jsr <$9f | |
L_8E51 jsr L_8872 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
L_8E54 jsr L_8B26 | |
bne L_8E4C | |
jsr L_8DCC | |
lbeq L_9182 | |
jsr L_94BD | |
L_8E7A bsr L_8E83 | |
L_8E7E jsr L_89AA | |
bra L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
L_8E83 jsr L_8872 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
L_8E86 lda <$54 | |
bmi L_8E4C | |
bhi L_8E4C | |
jsr L_9473 | |
bsr L_8E86 | |
jmp L_8C36 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC | |
bsr L_8E7A | |
L_8EAA pshs cc ; $8eaa: LIST token dispatch address, List Basic to DEVN (CoCo $b764) | |
jsr L_869A | |
jsr L_83FF | |
beq L_8ECA | |
beq L_8ECF | |
bne L_8EC9 | |
beq L_8ECA | |
jsr L_869A | |
beq L_8ECF | |
L_8EC9 rts | |
L_8ECA ldu #$ffff | |
L_8ECF leas 2,s | |
L_8ED3 jsr L_90A5 | |
jsr L_B77B | |
bne L_8EE5 | |
L_8EDD jsr L_B663 | |
jmp L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
L_8EE5 stx <$66 | |
bhi L_8EDD | |
jsr L_957A ; $957a: Print Number: outputs D as number to DEVN (CoCo $bdcc) | |
jsr L_90F5 | |
bsr L_8F08 | |
L_8EFF lda ,u+ | |
beq L_8ED3 | |
jsr L_90FA | |
bra L_8EFF | |
L_8F08 jsr >$01a6 | |
L_8F11 lda ,x+ | |
beq L_8F66 | |
bmi L_8F2C | |
bne L_8F28 | |
beq L_8F11 | |
beq L_8F11 | |
L_8F25 cmpx #$8621 | |
L_8F26 equ L_8F25 + 1 | |
L_8F28 bsr L_8F5A | |
bra L_8F11 | |
L_8F2C ldu #$0116 | |
bne L_8F37 | |
L_8F37 anda #$7f | |
L_8F39 leau 10,u | |
beq L_8F26 | |
bpl L_8F39 | |
L_8F47 deca | |
bmi L_8F50 | |
L_8F4A tst ,u+ | |
bpl L_8F4A | |
bra L_8F47 | |
L_8F50 lda ,u | |
bsr L_8F5A | |
bpl L_8F50 | |
bra L_8F11 | |
L_8F5A cmpy #$03d6 | |
bcc L_8F66 | |
L_8F66 rts | |
L_8F67 jsr >$01a3 | |
L_8F6F clr <$43 | |
L_8F73 lda ,x+ | |
beq L_8F98 | |
beq L_8F8A | |
jsr L_8ADF | |
bcc L_8F98 | |
bcs L_8F88 | |
bls L_8F98 | |
L_8F88 clr <$43 | |
L_8F8A cmpa #$20 | |
beq L_8F98 | |
beq L_8FCC | |
beq L_8FB1 | |
L_8F98 sta ,u+ | |
beq L_8FA2 | |
beq L_8F6F | |
L_8FA0 bra L_8F73 | |
L_8FA2 clr ,u+ | |
L_8FB1 cmpa #$3f | |
bne L_8FB9 | |
bra L_8F98 | |
L_8FB9 cmpa #$27 | |
bne L_8FD0 | |
L_8FC2 clr <$42 | |
L_8FC4 lda ,x+ | |
beq L_8F98 | |
beq L_8F98 | |
L_8FCC sta ,u+ | |
bra L_8FC4 | |
L_8FD0 cmpa #$30 | |
bcs L_8FD8 | |
bcs L_8F98 | |
L_8FD8 leax -1,x | |
L_8FE1 clr <$42 | |
L_8FE3 leau 10,u | |
beq L_901A | |
L_8FEC ldx ,s | |
L_8FEE ldb ,y+ | |
beq L_8FEE | |
bne L_9030 | |
bne L_9008 | |
bne L_900C | |
L_9008 std ,u++ | |
bra L_8FA0 | |
L_900C stb ,u+ | |
bne L_9014 | |
L_9014 cmpb #$82 | |
beq L_8FC2 | |
L_9018 bra L_8FA0 | |
L_901A ldu #$011b | |
bne L_8FE1 | |
jsr L_8ADF | |
bcs L_9018 | |
bra L_9018 | |
L_9030 inc <$42 | |
beq L_8FE3 | |
L_9037 ldb ,y+ | |
bpl L_9037 | |
bra L_8FEC | |
beq L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bsr L_9044 | |
L_9044 cmpa #$40 | |
bne L_904D | |
jsr L_B786 | |
bra L_9057 | |
L_904D cmpa #$23 | |
bne L_905E | |
jsr L_B7D7 | |
jsr L_B63C | |
L_9057 jsr <$a5 | |
beq L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
L_905E cmpa #$cd | |
lbeq L_A225 | |
L_9064 beq L_90AE | |
L_9066 cmpa #$bb | |
beq L_90C7 | |
beq L_90AF | |
beq L_90E0 | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
bne L_9081 | |
jsr L_9587 | |
jsr L_8C59 | |
L_9081 bsr L_90E8 | |
jsr L_B595 | |
beq L_9092 | |
bsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bra L_9064 | |
L_9092 tstb | |
bne L_909D | |
beq L_90AF | |
bsr L_90F5 | |
L_909D jsr <$a5 | |
bne L_9066 | |
L_90A1 lda #$0d ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bra L_90FA | |
L_90A5 jsr L_B595 | |
beq L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bne L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
L_90AE rts | |
L_90AF jsr L_B595 | |
beq L_90BE | |
bcs L_90C0 | |
bsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bra L_90E0 | |
L_90BE ldb <$6c | |
L_90C0 subb <$6a | |
bcc L_90C0 | |
bra L_90D7 | |
L_90C7 jsr L_8E4F | |
lbne L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
jsr L_B595 | |
bls L_90E0 | |
L_90D7 tst <$6e | |
bne L_90E0 | |
L_90DB bsr L_90F5 | |
bne L_90DB | |
L_90E0 jsr <$9f | |
jmp L_9064 | |
L_90E5 jsr L_8C5B ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
L_90E8 jsr L_8D9D | |
L_90EC decb | |
beq L_90AE | |
bsr L_90FA | |
bra L_90EC | |
L_90F5 lda #$20 | |
L_90F7 cmpx #L_863F | |
L_90F8 equ L_90F7 + 1 | |
L_90FA jmp L_B54A | |
L_90FD ldx #$966e | |
bra L_910B | |
L_9102 jsr L_92DA | |
L_9105 com <$54 ; $9105: - operator dispatch address (see $8294) | |
bra L_910E ; $910e: + operator dispatch address (see $8294) | |
L_910B jsr L_92DA | |
L_910E tstb ; $910e: + operator dispatch address (see $8294) | |
lbeq L_93F5 | |
L_9116 tfr a,b | |
beq L_9187 | |
beq L_9188 | |
bcs L_912B | |
L_912B cmpb #$f8 | |
ble L_9188 | |
jsr L_9203 | |
L_9135 ldb <$62 | |
bpl L_9144 | |
L_9144 sta <$63 | |
bpl L_91A5 | |
L_9161 bcs L_9165 | |
bsr L_91C2 | |
L_9165 clrb | |
L_9166 lda <$50 | |
bne L_9198 | |
blt L_9166 | |
L_9182 clra | |
L_9183 sta <$4f | |
L_9187 rts | |
L_9188 bsr L_91F7 | |
bra L_9135 | |
L_918D incb | |
L_9198 bpl L_918D | |
bls L_9182 | |
L_91A4 cmpx #$2508 | |
L_91A5 equ L_91A4 + 1 | |
L_91A9 lda #$00 | |
bra L_91BB | |
L_91AF inc <$4f | |
beq L_91DB | |
L_91BB bcc L_91C1 | |
bsr L_91CC | |
beq L_91AF | |
L_91C1 rts | |
L_91C2 com <$54 | |
L_91C4 com <$50 | |
L_91CC ldx <$52 | |
bne L_91DA | |
L_91DA rts | |
L_91DB ldb #$0a | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_91E0 ldx #$0012 | |
L_91E3 lda 4,x | |
L_91F7 addb #$08 | |
ble L_91E3 | |
beq L_920D | |
L_9201 asr 1,x | |
L_9203 ror 2,x | |
bne L_9201 | |
L_920D rts | |
lbra L_145D | |
bra L_91A9 | |
L_923C jsr L_9418 ; $923c: LOG function token dispatch address | |
lble L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
L_9243 ldx #$9228 | |
L_9244 equ L_9243 + 1 | |
jsr L_910B | |
jsr L_933A | |
jsr L_9102 | |
jsr L_9743 | |
jsr L_910B | |
jsr L_9547 | |
L_9273 bsr L_92DA | |
L_9275 beq L_92D9 ; $9275: * operator dispatch address (see $8294) | |
bsr L_92F3 | |
L_9279 lda #$00 | |
bsr L_92A9 | |
bsr L_92A9 | |
bsr L_92A9 | |
bsr L_92AD | |
jsr L_93B6 | |
jmp L_9165 | |
L_92A9 lbeq L_91E0 | |
L_92AD coma | |
L_92AE lda <$13 | |
beq L_92D9 | |
bcc L_92CB | |
L_92CB rora | |
bra L_92AE | |
L_92D9 rts | |
L_92DA ldd 1,x | |
L_92F3 tsta | |
beq L_930C | |
bvc L_930C | |
beq L_930E | |
L_9307 lda <$54 | |
bra L_930E | |
L_930C leas 2,s | |
L_930E lbpl L_9182 | |
L_9312 jmp L_91DB | |
L_9315 jsr L_940A | |
beq L_9327 | |
bcs L_9312 | |
jsr L_9116 | |
beq L_9312 | |
L_9327 rts | |
L_932C neg <$bd | |
L_932D equ L_932C + 1 | |
L_9334 stb <$62 | |
jsr L_93BF ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
L_9339 cmpx #$8d9e | |
L_933A equ L_9339 + 1 | |
L_933C beq L_93B1 ; $933c: / operator dispatch address (see $8294) | |
bsr L_92F3 | |
beq L_9312 | |
L_934F lda <$50 | |
bne L_9368 | |
bne L_9368 | |
bne L_9368 | |
bne L_9368 | |
L_9368 tfr cc,a | |
bcc L_9377 | |
bmi L_93A7 | |
beq L_93A3 | |
L_9377 tfr a,cc | |
bcs L_9389 | |
L_937B lsl <$60 | |
bcs L_9368 | |
bmi L_934F | |
bra L_9368 | |
L_9389 lda <$60 | |
bra L_937B | |
L_93A3 ldb #$40 | |
bra L_9377 | |
L_93A7 rorb | |
bsr L_93B6 | |
jmp L_9165 | |
L_93B1 ldb #$14 | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_93B6 ldx <$13 | |
L_93BF pshs a ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
L_93D5 ldx #$0045 | |
bra L_93E0 | |
L_93DA ldx #$0040 | |
L_93DD cmpx #$9e3b | |
L_93DE equ L_93DD + 1 | |
L_93E0 lda <$4f | |
L_93F5 lda <$61 | |
L_93F7 sta <$54 | |
L_940A ldd <$4f | |
L_9418 ldb <$4f | |
beq L_9424 | |
L_941C ldb <$54 | |
L_941E rolb | |
bcs L_9424 | |
L_9424 rts | |
bsr L_9418 | |
L_9427 stb <$50 | |
L_942D lda <$50 ; $942d: Jumped to from GIVABF routine at 8c37-8c3f - returns 16 bit value in FAC to BASIC ?? | |
L_9431 stb <$4f | |
jmp L_9161 | |
L_9441 ldb ,x | |
beq L_9418 | |
bmi L_941C | |
L_944B ldb <$4f | |
bne L_946E | |
bne L_946E | |
bne L_946E | |
bne L_946E | |
bne L_946E | |
L_946E rorb | |
bra L_941E | |
L_9473 ldb <$4f | |
beq L_94B4 | |
bpl L_9482 | |
jsr L_91C4 | |
L_9482 ldx #$004f | |
bgt L_948F | |
jsr L_91F7 | |
L_948F clr <$5b | |
jmp L_9203 | |
L_9499 ldb <$4f ; $9499: INT function token dispatch address | |
bcc L_94BC | |
bsr L_9473 | |
jmp L_9161 | |
L_94B4 stb <$50 | |
L_94BC rts | |
L_94BD ldx <$8a | |
bcs L_9534 | |
lbeq L_9C1B | |
bne L_94DB | |
bra L_94DF | |
L_94DB cmpa #$2b | |
bne L_94E3 | |
L_94DF jsr <$9f | |
bcs L_9534 | |
L_94E3 cmpa #$2e | |
beq L_950F | |
bne L_9513 | |
bcs L_9553 | |
beq L_9501 | |
beq L_9501 | |
beq L_9503 | |
beq L_9503 | |
bra L_9507 | |
L_9501 com <$48 | |
L_9503 jsr <$9f | |
bcs L_9553 | |
L_9507 tst <$48 | |
beq L_9513 | |
bra L_9513 | |
L_950F com <$46 | |
bne L_94DF | |
L_9513 lda <$47 | |
beq L_952D | |
bpl L_9526 | |
L_951D jsr L_932D | |
bne L_951D | |
bra L_952D | |
L_9526 jsr L_9315 | |
bne L_9526 | |
L_952D lda <$55 | |
bpl L_94BC | |
jmp L_96DE | |
L_9534 ldb <$45 | |
jsr L_9315 | |
bsr L_9547 | |
bra L_94DF | |
L_9547 jsr L_93DA | |
jsr L_9427 | |
jmp L_910B | |
L_9553 ldb <$47 | |
bra L_9503 | |
std L_9E6E | |
L_9572 neg <$8e ; $956e-$9572: 5 byte floating point number | |
L_9573 equ L_9572 + 1 | |
bsr L_9584 | |
L_957A std <$50 ; $957a: Print Number: outputs D as number to DEVN (CoCo $bdcc) | |
jsr L_9431 | |
bsr L_9587 | |
L_9584 jmp L_90E5 | |
L_9587 ldu #$03da | |
L_958A lda #$20 | |
bpl L_9592 | |
L_9592 sta ,u+ | |
lbeq L_9666 | |
bhi L_95AD | |
jsr L_9273 | |
L_95AD sta <$45 | |
L_95AF ldx #$9569 | |
jsr L_944B | |
bgt L_95C6 | |
L_95B7 ldx #$9564 | |
jsr L_944B | |
bgt L_95CD | |
jsr L_9315 | |
bra L_95B7 | |
L_95C6 jsr L_932D | |
bra L_95AF | |
L_95CD jsr L_90FD | |
jsr L_9473 | |
bmi L_95E4 | |
bcc L_95E4 | |
L_95E4 deca | |
bgt L_95F9 | |
beq L_95F9 | |
L_95F9 ldx #$9673 | |
L_95FE lda <$53 | |
bvc L_95FE | |
bcc L_9620 | |
L_9620 addb #$2f | |
bne L_9632 | |
L_9632 comb | |
bne L_95FE | |
L_963A lda ,-u | |
beq L_963A | |
bne L_9646 | |
L_9646 lda #$2b | |
beq L_9668 | |
bpl L_9651 | |
L_9651 sta 2,u | |
L_9659 inca | |
bcc L_9659 | |
bra L_966A | |
L_9666 sta ,u | |
L_9668 clr 1,u | |
L_966A ldx #$03da | |
L_966D rts | |
subb L_BDC0 | |
jsr L_940A | |
jsr L_93BF ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
L_96A0 beq L_9713 ; $96a0: ^ operator dispatch address (see $8294) | |
bne L_96AE | |
lbmi L_93B1 | |
jmp L_9183 | |
L_96AE ldx #$004a | |
jsr L_93E0 | |
bpl L_96C9 | |
jsr L_9499 ; $9499: INT function token dispatch address | |
jsr L_944B | |
bne L_96C9 | |
L_96C9 jsr L_93F7 | |
jsr L_923C ; $923c: LOG function token dispatch address | |
jsr L_9273 | |
bsr L_9713 ; $9713: EXP function token dispatch address | |
bcc L_966D | |
L_96DE lda <$4f | |
beq L_96E4 | |
L_96E4 rts | |
L_96E5 cmpa #$38 | |
L_96E6 equ L_96E5 + 1 | |
bvs L_96F2 | |
L_96F0 lsr >$167e | |
L_96F2 equ L_96F0 + 2 | |
ble L_96E6 | |
L_9713 ldx #$96e5 ; $9713: EXP function token dispatch address | |
bsr L_974F | |
jsr L_93DA | |
bcs L_9724 | |
L_9721 jmp L_9307 | |
L_9724 jsr L_9499 | |
beq L_9721 | |
jsr L_9102 | |
bsr L_9752 | |
jsr L_92F3 | |
L_9743 stx <$64 | |
jsr L_93DA | |
bsr L_974F | |
bsr L_9754 | |
L_974F jmp L_9273 | |
L_9752 stx <$64 | |
L_9754 jsr L_93D5 | |
L_975F bsr L_974F | |
jsr L_910B | |
bne L_975F | |
jsr L_9418 | |
bmi L_9798 | |
beq L_978E ; $978e: Random Number: generates 8bit random number in $0116 | |
bsr L_978B | |
jsr L_93DA | |
bsr L_978E ; $978e: Random Number: generates 8bit random number in $0116 | |
bsr L_974F | |
jsr L_910B | |
L_978B jmp L_9499 | |
L_978E ldx >$0116 ; $978e: Random Number: generates 8bit random number in $0116 | |
L_9798 ldx L_97C7 | |
ldx L_97C9 | |
jsr L_9279 | |
jmp L_9165 | |
L_97C7 nega | |
L_97C8 ldb 13,u | |
L_97C9 equ L_97C8 + 1 | |
jsr L_910B | |
L_97D1 jsr L_940A ; $97d1: SIN function token dispatch address | |
jsr L_9334 | |
jsr L_940A | |
bsr L_978B | |
jsr L_9105 ; $9105: - operator dispatch address (see $8294) | |
jsr L_9102 | |
bpl L_97FF | |
jsr L_90FD | |
bmi L_9802 | |
L_97FF jsr L_96DE | |
L_9802 ldx #$9849 | |
jsr L_910B | |
bpl L_9810 | |
jsr L_96DE | |
L_9810 ldx #$984e | |
L_9813 jmp L_9743 | |
jsr L_93DA | |
bsr L_97D1 ; $97d1: SIN function token dispatch address | |
jsr L_93E0 | |
jsr L_93BF ; $93bf-$93d4: %MOVFM% Converts a 5-byte BASIC Real variable structure pointed to by X to FAC at $004f {2} | |
bsr L_983B | |
lbeq L_91DB | |
L_9838 jmp L_933A | |
L_983B pshs a | |
bra L_97FF | |
blt L_986F | |
eorb L_8799 | |
bls L_9896 | |
L_986F rora | |
bpl L_987F | |
bsr L_98A2 | |
L_987F lda <$4f | |
bcs L_988C | |
bsr L_9838 | |
L_988C ldx #$98a6 | |
bsr L_9813 | |
L_9895 bcs L_989D | |
L_9896 equ L_9895 + 1 | |
jsr L_9102 | |
L_989D puls a | |
bpl L_98A5 | |
L_98A2 jmp L_96DE | |
L_98A5 rts | |
subd L_83BD | |
fcb $7b,$83,$fc ; dec L_83FC | |
jmp L_9244 | |
clr L_AAAA | |
L_98E2 neg <$cc | |
L_98E3 equ L_98E2 + 1 ; $98e3: Called from BASIC init routine ($b3ba-) | |
L_98FF rts | |
L_9900 jsr <$9f | |
jsr L_B7AA | |
bsr L_994A | |
bsr L_994A | |
lbcs L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
bsr L_994A | |
bne L_98FF | |
jsr L_B891 | |
jsr L_801B ; $801b-$801d: Write leader to cassette (JMP $be68) Called indirectly from [$a00c] | |
L_992B stx <$7e | |
bcc L_993C | |
jmp L_B6CD | |
L_993C cmpd #$00ff | |
bcc L_9945 | |
L_9945 jsr L_B999 | |
bra L_992B | |
L_994A jsr L_89AA | |
jsr L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
jsr L_9418 | |
bmi L_995E | |
L_995B jmp L_9499 | |
L_995E com <$54 | |
bsr L_995B | |
jmp L_96DE | |
jsr L_9D9F | |
L_996A lda #$01 | |
jsr L_83FF | |
lbcs L_8605 | |
jsr L_8F08 | |
L_997F ldd <$2b | |
jsr L_957A ; $957a: Print Number: outputs D as number to DEVN (CoCo $bdcc) | |
jsr L_90F5 | |
bne L_99B3 | |
L_998E clrb | |
L_998F jsr L_9AB9 | |
jsr L_A438 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
bcs L_99A2 | |
bra L_998F | |
L_99A2 subb #$01 | |
bne L_99AF | |
jsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bra L_996A | |
L_99AF cmpa #$4c | |
bne L_99BE | |
L_99B3 bsr L_99E6 | |
jsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
bra L_997F | |
L_99BC leas 2,s | |
L_99BE cmpa #$0d | |
bne L_99CF | |
bsr L_99E6 | |
L_99C4 jsr L_90A1 | |
jmp L_83A6 | |
L_99CF cmpa #$45 | |
beq L_99C4 | |
bne L_99DD | |
jsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
jmp L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
L_99DD bsr L_99E1 | |
bra L_998E | |
L_99E1 cmpa #$20 | |
bne L_99F5 | |
L_99E5 cmpx #$c6f9 | |
L_99E6 equ L_99E5 + 1 | |
L_99E8 lda ,x | |
beq L_99F4 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
bne L_99E8 | |
L_99F4 rts | |
L_99F5 cmpa #$44 | |
bne L_9A41 | |
L_99F9 tst ,x | |
beq L_99F4 | |
bsr L_9A03 | |
bne L_99F9 | |
L_9A03 dec <$d7 | |
L_9A07 leay 1,y | |
bne L_9A07 | |
L_9A10 cmpa #$49 | |
beq L_9A27 | |
beq L_9A25 | |
bne L_9A78 | |
L_9A25 bsr L_99E6 | |
L_9A27 jsr L_9AB9 | |
beq L_99BC | |
beq L_9A57 | |
bne L_9A58 | |
beq L_9A27 | |
bsr L_9A82 | |
bsr L_9A03 | |
bra L_9A27 | |
L_9A41 cmpa #$43 | |
bne L_9A10 | |
L_9A45 tst ,x | |
beq L_9A57 | |
jsr L_9AB9 | |
bcs L_9A50 | |
bra L_9A45 | |
L_9A50 sta ,x+ | |
bsr L_9A8B | |
bne L_9A45 | |
L_9A57 rts | |
L_9A58 ldb <$d7 | |
bne L_9A60 | |
bra L_9A27 | |
L_9A60 pshs x | |
L_9A62 tst ,x+ | |
bne L_9A62 | |
L_9A66 ldb ,-x | |
bne L_9A66 | |
bsr L_9A8B | |
bra L_9A27 | |
L_9A78 cmpa #$08 | |
bne L_9A8E | |
L_9A7C bsr L_9A82 | |
bne L_9A7C | |
L_9A82 cmpx #$02dd | |
beq L_9A57 | |
L_9A8B jmp L_B54A | |
L_9A8E cmpa #$4b | |
beq L_9A97 | |
beq L_9A97 | |
L_9A97 pshs a | |
bsr L_9AB9 | |
L_9A9D lda ,x | |
beq L_9AB7 | |
bne L_9AAB | |
bsr L_9A8B | |
bra L_9AAE | |
L_9AAB jsr L_9A03 | |
L_9AAE lda ,x | |
bne L_9A9D | |
bne L_9A9D | |
L_9AB7 puls y,pc | |
L_9AB9 jsr L_B505 | |
bcc L_9AB9 | |
bne L_9AC6 | |
L_9AC6 cmpa #$0d | |
beq L_9AD8 | |
beq L_9AD8 | |
beq L_9AD8 | |
bcs L_9AB9 | |
L_9AD8 rts | |
jsr L_B7E0 | |
jsr L_B63C | |
jsr L_B595 | |
jmp L_8C36 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC | |
jsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
jsr L_8A94 ; $8a94: %GETVAR% gets VARPTR addr of following variables name (CoCo $b357) | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
bne L_9B5A | |
jmp L_9FD0 ; $9fce-$9fff: D32 - Unused 0x00, $9fd0-$9fd8: D64 - Patch to support VARPTRs >32K | |
L_9B0C jsr <$9f | |
jsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
jsr L_8A94 ; $8a94: %GETVAR% gets VARPTR addr of following variables name (CoCo $b357) | |
bls L_9B21 | |
bls L_9B33 | |
L_9B21 ldb ,x | |
jsr L_8CB3 | |
jsr L_8D89 | |
L_9B33 jsr L_8E7E | |
beq L_9B5A | |
beq L_9B44 | |
jsr L_8E7E | |
L_9B44 pshs b | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bsr L_9B7E | |
bcc L_9B5D | |
L_9B5A jmp L_8B8D | |
L_9B5D inca | |
bcc L_9B64 | |
L_9B64 lda 1,s | |
beq L_9B7C | |
bls L_9B75 | |
L_9B75 tfr a,b | |
jsr L_B7CC ; $b7cc: Copy B bytes from X to U | |
L_9B7C puls a,b,x,pc | |
L_9B7E jsr L_8887 | |
jmp L_8D9A ; $8d9a: Sub - | |
jsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
bne L_9B9E | |
jsr L_8E54 | |
bra L_9BA1 | |
L_9B9E jsr L_8DEA | |
L_9BA1 pshs b | |
jsr L_8C52 | |
beq L_9BB1 | |
L_9BAC sta ,x+ | |
bne L_9BAC | |
L_9BB1 jmp L_8DE1 | |
L_9BB4 jsr L_89A7 ; $9bb4: INSTR function token dispatch address | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
bne L_9BD2 | |
jsr L_8E54 | |
beq L_9B5A | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_8877 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
L_9BD2 ldx <$52 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_9B7E | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
jsr L_8D9F ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
bcs L_9C0F | |
beq L_9C0C | |
L_9BF4 leay ,x | |
bcs L_9C0F | |
L_9C03 lda ,x+ | |
bne L_9C15 | |
bne L_9C03 | |
L_9C0C ldb 6,s | |
L_9C0E brn L_9C6F | |
L_9C0F equ L_9C0E + 1 | |
jmp L_8C36 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC | |
L_9C15 inc 6,s | |
bra L_9BF4 | |
L_9C1B clr <$52 | |
beq L_9C3A | |
beq L_9C4F | |
bra L_9C3C | |
L_9C30 cmpa #$38 | |
lbhi L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
bsr L_9C64 | |
L_9C3A jsr <$9f | |
L_9C3C bcs L_9C30 | |
L_9C3E clr <$50 ; $9c3e: Assign16BitB: assigns value in $0052:0053 to a variable (CoCo $880e) | |
jmp L_9165 | |
L_9C4F jsr <$9f | |
bcs L_9C5E | |
jsr L_8ADF | |
bcs L_9C3E ; $9c3e: Assign16BitB: assigns value in $0052:0053 to a variable (CoCo $880e) | |
bcc L_9C3E ; $9c3e: Assign16BitB: assigns value in $0052:0053 to a variable (CoCo $880e) | |
L_9C5E ldb #$04 | |
bsr L_9C64 | |
bra L_9C4F | |
L_9C64 lsl 1,x | |
lbcs L_91DB | |
bne L_9C64 | |
L_9C6F suba #$30 | |
L_9C75 rts | |
L_9C76 ldx <$68 | |
bne L_9C75 | |
L_9C7E jmp L_8344 | |
lbeq L_9D00 ; $9d00-$9d0c: Sub | |
bsr L_9CB1 | |
bsr L_9C76 | |
jsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
jsr L_8A94 ; $8a94: %GETVAR% gets VARPTR addr of following variables name (CoCo $b357) | |
bsr L_9CC1 | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jmp L_8613 ; $8613: DATA token dispatch address | |
L_9CB1 ldb #$be | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jsr L_8A99 | |
L_9CC1 jmp L_8874 | |
L_9CC4 bsr L_9CB1 | |
jsr L_899F | |
bsr L_9CC1 | |
beq L_9C7E | |
jsr L_93E0 | |
jsr L_8872 | |
lbne L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_9D00 jsr <$9f ; $9d00-$9d0c: Sub | |
bsr L_9D0D ; $9d0d-$9d1c: Sub which returns a ptr in X to the address in the USR table (ref'd by $00b0:00b1) of the USR function to be called | |
bsr L_9D35 ; $9d35-$9d3c: Sub which checks for '=' token, then gets value of next expression by JMPing to $8e83 | |
L_9D0D jsr L_9FD9 ; $9d0d-$9d1c: Sub which returns a ptr in X to the address in the USR table (ref'd by $00b0:00b1) of the USR function to be called | |
bcc L_9D18 ; $9d0d-$9d1c: Sub which returns a ptr in X to the address in the USR table (ref'd by $00b0:00b1) of the USR function to be called | |
L_9D18 ldx <$b0 ; $9d0d-$9d1c: Sub which returns a ptr in X to the address in the USR table (ref'd by $00b0:00b1) of the USR function to be called | |
bsr L_9D0D ; $9d0d-$9d1c: Sub which returns a ptr in X to the address in the USR table (ref'd by $00b0:00b1) of the USR function to be called | |
jsr L_899F | |
beq L_9D34 | |
jsr L_8D9D | |
L_9D34 rts | |
L_9D35 ldb #$cb ; $9d35-$9d3c: Sub which checks for '=' token, then gets value of next expression by JMPing to $8e83 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jmp L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
L_9D3D lda >$ff03 ; $9d3d: IRQ interrupt service routine | |
bmi L_9D43 | |
L_9D43 lda >$ff02 | |
jmp L_AFD9 ; $afd9: PLAY IRQ routine - branches to $bb02 if $00e3 == 0x0000 | |
L_9D51 jsr <$9f | |
bsr L_9D35 ; $9d35-$9d3c: Sub which checks for '=' token, then gets value of next expression by JMPing to $8e83 | |
jmp L_9C3E ; $9c3e: Assign16BitB: assigns value in $0052:0053 to a variable (CoCo $880e) | |
lbeq L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
jsr L_869A | |
jsr L_83FF | |
beq L_9D81 | |
bne L_9DB0 | |
beq L_9D7D | |
bsr L_9D9F | |
bra L_9D81 | |
L_9D7D lda #$ff | |
L_9D81 ldu <$d3 | |
L_9D83 cmpx #$eec4 | |
L_9D84 equ L_9D83 + 1 | |
beq L_9D90 | |
bls L_9D84 | |
L_9D90 ldx <$d3 | |
bsr L_9DA9 | |
jsr L_841F ; $841f: BasVect1 - sets up various vectors after a BASIC program loaded (CoCo $ad21) | |
jsr L_83EF | |
jmp L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
L_9D9F jsr L_869A | |
jmp L_B7F9 | |
L_9DA5 lda ,u+ | |
L_9DA9 cmpu <$1b | |
bne L_9DA5 | |
L_9DB0 rts | |
L_9DB1 jsr L_9C76 | |
bne L_9DC3 | |
jsr L_B7D7 | |
jsr L_B623 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
L_9DC3 cmpa #$22 | |
bne L_9DD2 | |
jsr L_8975 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jsr L_90E8 | |
L_9DD2 leas -2,s | |
jsr L_8766 | |
jsr L_8A94 ; $8a94: %GETVAR% gets VARPTR addr of following variables name (CoCo $b357) | |
jsr L_8877 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
jsr L_8C5D | |
jmp L_86D7 | |
L_9DED jsr L_869A | |
L_9DF3 ldx <$d1 | |
L_9DF5 stx <$2b | |
jmp L_83FF | |
jsr L_8424 | |
bcc L_9E11 | |
bsr L_9DED | |
L_9E11 beq L_9E2E | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bcc L_9E1E | |
bsr L_9DED | |
L_9E1E beq L_9E2E | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bcc L_9E2B | |
bsr L_9DED | |
beq L_9E74 | |
L_9E2B jsr L_B7F9 | |
L_9E2E bsr L_9DF3 | |
bsr L_9DF5 | |
bcs L_9E74 | |
bsr L_9E58 | |
jsr L_9ECE | |
jsr L_83ED ; $83ed: BasVect2 - completes init once BASIC program loaded (CoCo $acef) | |
bsr L_9DF3 | |
bsr L_9E82 | |
bsr L_9E59 | |
bsr L_9E82 | |
jsr L_9F6C | |
jsr L_8424 | |
jsr L_83ED ; $83ed: BasVect2 - completes init once BASIC program loaded (CoCo $acef) | |
jmp L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
L_9E58 lda #$4f | |
L_9E59 equ L_9E58 + 1 | |
bsr L_9E77 | |
L_9E62 tst <$d8 | |
bne L_9E68 | |
L_9E68 ldx ,x | |
bsr L_9E77 | |
L_9E6E bcs L_9E74 | |
bcs L_9E62 | |
L_9E74 jmp L_8B8D | |
L_9E77 pshs a,b | |
bne L_9E81 | |
L_9E81 rts | |
L_9E82 ldx <$19 | |
L_9E86 leax 1,x | |
bsr L_9E77 | |
L_9E8A leax 3,x | |
L_9E8C leax 1,x | |
beq L_9E86 | |
beq L_9EA3 | |
beq L_9EC4 | |
bne L_9E8C | |
L_9E9D lda #$03 | |
bra L_9E8A | |
L_9EA3 ldd 1,x | |
beq L_9EAA | |
L_9EAA ldb 3,x | |
beq L_9EB1 | |
L_9EB1 std 1,x | |
jsr L_83FF | |
L_9EB8 ldx <$0f | |
bcs L_9E9D | |
bra L_9E8A | |
L_9EC4 clr ,x | |
bra L_9EB8 | |
L_9ECE ldx <$19 | |
bra L_9ED6 | |
L_9ED2 ldx <$a6 | |
L_9ED6 bsr L_9E77 | |
L_9EDA leax 1,x | |
L_9EDC stx <$a6 | |
L_9EDE jsr <$9f | |
L_9EE0 tsta | |
beq L_9ED2 | |
bpl L_9EDE | |
beq L_9EDA | |
beq L_9F04 | |
beq L_9F04 | |
bne L_9EDE | |
beq L_9F04 | |
bne L_9EDC | |
L_9F04 jsr <$9f | |
bcs L_9F0C | |
L_9F08 jsr <$a5 | |
bra L_9EE0 | |
L_9F0C ldx <$a6 | |
jsr L_869A | |
L_9F15 lda ,-x | |
jsr L_A438 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
bcs L_9F15 | |
beq L_9F46 | |
bcs L_9F32 | |
jsr L_9DA9 | |
bra L_9F46 | |
L_9F32 stx <$47 | |
jsr L_831C | |
L_9F46 puls x | |
bne L_9F58 | |
L_9F58 stb 1,x | |
bne L_9F62 | |
L_9F62 stb 3,x | |
beq L_9F04 | |
bra L_9F08 | |
L_9F6C ldx <$19 | |
L_9F70 leax 1,x | |
jsr L_9E77 | |
L_9F7B leax 1,x | |
L_9F7D lda ,x | |
beq L_9F70 | |
beq L_9F9F | |
bne L_9F7B | |
jsr L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
jsr L_957A ; $957a: Print Number: outputs D as number to DEVN (CoCo $bdcc) | |
jsr L_9573 | |
jsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
L_9F9F pshs x | |
jsr L_9C3E ; $9c3e: Assign16BitB: assigns value in $0052:0053 to a variable (CoCo $880e) | |
jsr L_9587 | |
L_9FAF leax 1,x | |
beq L_9FBA | |
bra L_9FAF | |
L_9FBA leax ,u | |
beq L_9F7D | |
jsr L_9DA9 | |
bra L_9F7D | |
bra L_9FCE ; $9fce-$9fff: D32 - Unused 0x00 | |
L_9FCE subd <$1f ; $9fce-$9fff: D32 - Unused 0x00 | |
L_9FD0 clr <$06 ; $9fce-$9fff: D32 - Unused 0x00, $9fd0-$9fd8: D64 - Patch to support VARPTRs >32K | |
jmp L_9C3E ; $9c3e: Assign16BitB: assigns value in $0052:0053 to a variable (CoCo $880e) | |
L_9FD9 clrb ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
bcs L_9FE4 ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
bhi L_9FE4 ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
L_9FE4 jmp <$9f ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
L_9FE6 clr >$ff02 ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
jsr L_BBEC ; $bbec: Keyboard polling sub, returns key code in A | |
bne L_9FFD ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
beq L_9FE6 ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
L_9FFD tsta ; $9fce-$9fff: D32 - Unused 0x00, $9fd9-$9fff: D64 - Unused 0x00 | |
jsr L_8E86 | |
L_A016 pshs b | |
L_A01B lsl <$53 | |
bne L_A01B | |
bne L_A030 | |
beq L_A030 | |
beq L_A03C | |
L_A030 addb #$30 | |
bls L_A038 | |
L_A038 stb ,x+ | |
L_A03C puls b | |
bne L_A016 | |
jmp L_8C5B | |
beq L_A05A | |
lbne L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_A05A sta <$e6 | |
L_A05D lda <$e6 | |
beq L_A064 | |
L_A064 lsr >$0151 | |
L_A06D cmpa ,x+ | |
bne L_A079 | |
bne L_A06D | |
bra L_A088 | |
L_A079 dec >$011d | |
bne L_A08B | |
L_A080 sta ,x+ | |
bne L_A080 | |
L_A088 sta >$011d | |
L_A08B rti | |
L_A08E clr <$78 | |
jsr L_B7AA | |
jsr L_B87A | |
lbeq L_B73C | |
jsr L_B867 | |
bne L_A08B | |
beq L_A0BA | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
L_A0BA stx <$d3 | |
jsr L_B7F9 | |
L_A0BF bsr L_A0EA | |
bsr L_A0E3 | |
bsr L_A0E3 | |
lbne L_B663 | |
L_A0D5 bsr L_A0EA | |
bne L_A0F1 | |
bne L_A0D5 | |
bra L_A0BF | |
L_A0E3 bsr L_A0E5 | |
L_A0E5 bsr L_A0EA | |
L_A0E9 rts | |
L_A0EA jsr L_B50A ; $a0ea: Waits for keypress with flashing cursor (CoCo $8cc6) | |
beq L_A0E9 | |
L_A0F1 jmp L_B84B | |
bsr L_A115 | |
beq L_A101 | |
bsr L_A108 | |
L_A101 ldb #$34 | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_A106 ldu <$7e | |
L_A108 leax 1,u | |
jsr L_A17E | |
jmp L_B876 | |
L_A115 clra | |
bra L_A11E | |
L_A11C bsr L_A149 | |
L_A11E lda #$8a | |
bsr L_A159 | |
bne L_A11C | |
L_A127 lda ,x+ | |
jsr L_A1C1 | |
bne L_A127 | |
bsr L_A163 | |
bne L_A11C | |
bsr L_A173 | |
bne L_A11C | |
bsr L_A173 | |
bne L_A11C | |
bsr L_A16C | |
bne L_A11C | |
L_A149 inc ,y | |
bcs L_A16B | |
jsr L_802D ; $802d-$802f: Sends a byte to serial port (D32 JMP $be7c; D64 JMP $be98) | |
jmp L_B84B | |
L_A159 pshs a | |
bsr L_A1BA | |
bne L_A161 | |
L_A161 puls a,pc | |
L_A163 lda 1,y | |
bsr L_A1BA | |
bne L_A16B | |
L_A16B rts | |
L_A16C bsr L_A173 | |
bne L_A16B | |
L_A173 jsr L_802A | |
L_A17E clra | |
bra L_A18D | |
L_A18B bsr L_A149 | |
L_A18D lda #$97 | |
bsr L_A159 | |
bne L_A18B | |
bsr L_A1C1 | |
bsr L_A1C1 | |
bsr L_A163 | |
bne L_A18B | |
bsr L_A173 | |
bne L_A18B | |
L_A1A9 bsr L_A173 | |
bne L_A18B | |
bne L_A1A9 | |
bsr L_A16C | |
bne L_A18B | |
L_A1BA clr 1,y | |
bsr L_A1C9 | |
jmp L_802A ; $802a-$802c: Reads a byte from serial port (JMP $be7b) | |
L_A1C1 pshs a | |
L_A1C9 jmp L_802D | |
L_A1CC lda #$01 | |
L_A1D0 decb | |
jsr L_A366 | |
lbeq L_A266 | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_8877 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
jsr L_8DF3 | |
jsr L_90E8 | |
L_A1F4 decb | |
lbmi L_A341 | |
jsr L_90F5 | |
bra L_A1F4 | |
L_A1FE stb <$d3 | |
L_A206 lda ,x | |
beq L_A1D0 | |
bne L_A217 | |
bne L_A206 | |
L_A217 ldx <$0f | |
L_A21D jsr L_A366 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
bra L_A247 | |
L_A225 jsr L_8889 | |
jsr L_8877 ; $8877: Get expression: evaluates next expression and puts VARPTR addr in $0052:0053 (CoCo $b146) | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bra L_A23C | |
L_A236 lda <$d7 | |
beq L_A242 | |
L_A23C clr <$d7 | |
bne L_A245 | |
L_A242 jmp L_8B8D | |
L_A245 ldx 2,x | |
L_A247 clr <$da | |
L_A249 clr <$d9 | |
lbeq L_A1CC | |
beq L_A2B2 | |
bne L_A270 | |
jsr L_A366 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
L_A260 jsr <$a5 | |
bne L_A236 | |
L_A266 bne L_A26B | |
jsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
L_A26B ldx <$d5 | |
jmp L_8D9F ; $8d9f: %DELVAR% frees space taken by variable (CoCo $b659) | |
L_A270 cmpa #$2b | |
bne L_A27D | |
jsr L_A366 | |
bra L_A249 | |
L_A27D cmpa #$2e | |
beq L_A2CF | |
lbeq L_A1FE | |
L_A289 bne L_A21D | |
beq L_A2A8 | |
bne L_A289 | |
bcs L_A2AE | |
bne L_A2AE | |
L_A2A8 lda <$da | |
L_A2AE leax 1,x | |
L_A2B2 clr <$d8 | |
L_A2B4 inc <$d9 | |
beq L_A302 | |
beq L_A2DD | |
beq L_A2B4 | |
bne L_A2E8 | |
bra L_A2B4 | |
L_A2CF lda ,x | |
lbne L_A21D | |
L_A2DD inc <$d8 | |
beq L_A302 | |
beq L_A2DD | |
L_A2E8 cmpa #$5e | |
bne L_A302 | |
bne L_A302 | |
bne L_A302 | |
bne L_A302 | |
bcs L_A302 | |
L_A302 leax -1,x | |
bne L_A324 | |
beq L_A324 | |
beq L_A31D | |
bne L_A324 | |
L_A31D ora #$04 | |
L_A324 jsr <$a5 | |
lbeq L_A266 | |
jsr L_8872 | |
lbhi L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
jsr L_A373 | |
jsr L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
L_A341 clr <$d7 | |
beq L_A354 | |
beq L_A352 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bra L_A354 | |
L_A352 jsr <$9f | |
L_A354 ldx <$d5 | |
lbne L_A247 | |
jmp L_A260 | |
L_A366 pshs a | |
beq L_A371 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
L_A371 puls a,pc | |
L_A373 ldu #$03db | |
beq L_A380 | |
L_A380 tst <$54 | |
bpl L_A388 | |
L_A388 stb ,u+ | |
lbne L_A49B | |
jsr L_944B | |
bmi L_A3B1 | |
jsr L_9587 | |
L_A39F lda ,x+ | |
bne L_A39F | |
L_A3A3 lda ,-x | |
bne L_A3A3 | |
L_A3B1 lda <$4f | |
beq L_A3BA | |
jsr L_A55B | |
L_A3BA lda <$47 | |
lbmi L_A441 | |
jsr L_A478 | |
jsr L_A5F1 | |
jsr L_A590 | |
jsr L_A60F | |
jsr L_A5D7 | |
bne L_A3DE | |
L_A3DE deca | |
jsr L_A478 | |
L_A3E2 jsr L_A513 | |
beq L_A3EE | |
beq L_A3EE | |
L_A3EE clr ,u | |
L_A3F3 leax 1,x | |
beq L_A437 | |
beq L_A3F3 | |
beq L_A3F3 | |
L_A40A pshs a | |
beq L_A40A | |
beq L_A40A | |
beq L_A40A | |
bne L_A42C | |
bsr L_A438 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
bcs L_A42C | |
L_A424 puls a | |
bne L_A424 | |
bra L_A3F3 | |
L_A42C puls a | |
bne L_A42C | |
L_A437 rts | |
L_A438 cmpa #$30 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
bcs L_A440 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
L_A440 rts ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
L_A441 lda <$d8 | |
beq L_A446 | |
L_A446 adda <$47 | |
bmi L_A44B | |
L_A44B pshs a | |
L_A44D bpl L_A459 | |
jsr L_932D | |
bra L_A44D | |
L_A459 lda <$47 | |
bmi L_A47C | |
bsr L_A478 | |
jsr L_A5F1 | |
bra L_A48D | |
L_A470 pshs a | |
L_A478 deca | |
bpl L_A470 | |
L_A47C lda <$d9 | |
bsr L_A478 | |
jsr L_A5DB | |
bsr L_A478 | |
L_A48D jsr L_A590 | |
bne L_A496 | |
L_A496 adda <$47 | |
lbra L_A3DE | |
L_A49B lda <$4f | |
beq L_A4A4 | |
jsr L_A55B | |
L_A4A4 lda <$d8 | |
beq L_A4A9 | |
L_A4A9 adda <$d9 | |
bne L_A4B7 | |
L_A4B7 adda >$03da | |
L_A4BE bpl L_A4CA | |
jsr L_932D | |
bra L_A4BE | |
L_A4CA lda ,s | |
bmi L_A4CF | |
L_A4CF nega | |
jsr L_A590 | |
jsr L_A60F | |
bne L_A4E8 | |
L_A4E8 ldb ,s+ | |
beq L_A4F5 | |
L_A4F5 lda #$2b | |
bpl L_A4FD | |
L_A4FD sta 1,u | |
L_A505 inca | |
bcc L_A505 | |
jmp L_A3E2 | |
L_A513 ldx #$03db | |
beq L_A52C | |
bne L_A52C | |
L_A52C pshs b | |
L_A52E sta ,x+ | |
beq L_A544 | |
beq L_A544 | |
beq L_A52E | |
beq L_A52E | |
bne L_A548 | |
L_A544 lda #$30 | |
L_A548 lda <$da | |
beq L_A552 | |
L_A552 anda #$04 | |
bne L_A55A | |
L_A55A rts | |
L_A55B pshs u | |
L_A55E sta <$47 | |
bhi L_A577 | |
jsr L_9273 | |
bra L_A55E | |
L_A572 jsr L_932D | |
L_A577 ldx #$9569 | |
jsr L_944B | |
bgt L_A572 | |
L_A57F ldx #$9564 | |
jsr L_944B | |
bgt L_A58E | |
jsr L_9315 | |
bra L_A57F | |
L_A58E puls u,pc | |
L_A590 pshs u | |
jsr L_90FD | |
jsr L_9473 | |
L_A59F bsr L_A5D7 | |
L_A5A1 lda <$53 | |
bvc L_A5A1 | |
bcc L_A5C3 | |
L_A5C3 addb #$2f | |
bne L_A59F | |
L_A5D7 dec <$45 | |
bne L_A5E4 | |
L_A5DB stu <$39 | |
L_A5E4 dec <$d7 | |
bne L_A5F0 | |
L_A5F0 rts | |
L_A5F1 lda <$47 | |
L_A5F8 suba #$03 | |
bcc L_A5F8 | |
bne L_A608 | |
L_A608 rts | |
L_A609 pshs a | |
bsr L_A5D7 | |
L_A60F deca | |
bmi L_A61C | |
bne L_A609 | |
L_A61C rts | |
L_A61D ldu #$a62a | |
L_A626 bsr L_A61D | |
bra L_A67F | |
L_A677 ldb <$b9 | |
L_A67B lsra | |
bcc L_A681 | |
L_A67F leax 1,x | |
L_A681 rts | |
bcc L_A67B | |
L_A68A jsr L_8E7A | |
L_A691 cmpb #$c0 | |
bcs L_A697 | |
L_A697 clra | |
bcs L_A6A5 | |
L_A6A5 std ,y | |
L_A6A8 jsr L_A68A | |
L_A6AB ldu #$00bd | |
L_A6AE lda <$b6 | |
bcc L_A6BA | |
L_A6BA lda <$b6 | |
bcc L_A6C6 | |
L_A6C6 rts | |
jsr L_A740 | |
jsr L_A6AB | |
jsr L_A626 | |
bcc L_A6E9 | |
L_A6D7 cmpa #$04 | |
bcs L_A6DF | |
bra L_A6D7 | |
L_A6DF inca | |
L_A6E4 tfr a,b | |
jmp L_8C36 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC | |
L_A6E9 tsta | |
beq L_A6E4 | |
bra L_A6DF | |
bra L_A6F4 | |
L_A6F4 sta <$c2 | |
jsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
jsr L_A6A8 | |
jsr L_A90F | |
jsr L_89A4 ; $89a4: CkClBrak: checks cmd line for closed bracket (CoCo $b267) | |
jsr L_A626 | |
L_A705 ldb ,x | |
L_A71D ldx <$c7 | |
beq L_A72C | |
jsr L_A740 | |
L_A72C ldb #$c4 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
jsr L_89A7 ; $89a7: CkOpBrak: checks cmd line for open bracket (CoCo $b26a) | |
jsr L_8E7A | |
jsr L_A691 | |
bra L_A746 | |
L_A740 jsr L_89A7 | |
jsr L_A68A | |
L_A746 jmp L_89A4 | |
lbeq L_9DB1 | |
beq L_A75C | |
beq L_A75C | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
L_A75C jsr L_A71D | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
beq L_A777 | |
lbne L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_A776 lda #$5f | |
L_A777 equ L_A776 + 1 | |
jsr L_A7AE | |
jsr L_A928 ; $a928: Set Colours: sets up locations $00b4, $00b5 (CoCo $959a) | |
lbeq L_A82F | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bne L_A7B7 | |
bsr L_A7D2 | |
bsr L_A7FC | |
bsr L_A7FC | |
bra L_A7D2 | |
L_A7AE jsr L_A6AB | |
jmp L_A6AE | |
L_A7B7 ldb #$46 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bra L_A7C2 | |
L_A7BE leax -1,x | |
L_A7C0 stx <$bf | |
L_A7C2 jsr L_A7D2 | |
beq L_A7D1 | |
bcc L_A7BE | |
bra L_A7C0 | |
L_A7D1 rts | |
L_A7D2 ldx <$bd | |
jsr L_AAB8 | |
bcc L_A7DF | |
L_A7DF tfr d,y | |
jsr L_A626 | |
bsr L_A822 | |
L_A7EC sta <$d7 | |
jsr L_A705 | |
bne L_A7EC | |
L_A7FA puls a,b | |
L_A7FC ldd <$bf | |
jsr L_AAAB | |
bcc L_A809 | |
L_A809 tfr d,y | |
jsr L_A626 | |
bsr L_A82B | |
bra L_A7EC | |
L_A822 ldu #$a818 | |
L_A82B ldu #$a677 | |
L_A82F ldy #$a89b | |
jsr L_AAAB | |
lbeq L_A7D2 | |
bcc L_A840 | |
L_A840 pshs a,b | |
jsr L_AAB8 | |
beq L_A7FA | |
bcc L_A84F | |
L_A84F cmpd ,s | |
bcc L_A85A | |
L_A85A pshs a,b,u | |
bcs L_A86B | |
bcs L_A86B | |
L_A86B pshs a,b,x | |
jsr L_A61D | |
L_A870 jsr ,u | |
jsr L_A705 | |
beq L_A890 | |
bcs L_A870 | |
bra L_A870 | |
L_A890 puls x | |
L_A894 ldx <$bd | |
L_A8A2 ldx <$bd | |
L_A8B0 ldu #$00d3 | |
jmp L_A6AE | |
beq L_A8D0 | |
bsr L_A8E8 | |
L_A8C4 lda #$55 | |
L_A8C9 stb ,x+ | |
bne L_A8C9 | |
L_A8D0 ldb <$b3 | |
bra L_A8C4 | |
beq L_A8E0 | |
bsr L_A8E8 | |
beq L_A8E7 | |
L_A8E0 jsr L_89AA | |
bsr L_A8E8 | |
L_A8E7 rts | |
L_A8E8 jsr L_8E51 | |
L_A8EB cmpb #$09 | |
lbcc L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
bcs L_A8FA | |
L_A8FA pshs a | |
bcc L_A909 | |
bne L_A906 | |
L_A904 ldb #$04 | |
L_A906 decb | |
L_A907 puls a,pc | |
L_A909 rorb | |
bcs L_A904 | |
bra L_A907 | |
L_A90F jsr L_A928 | |
beq L_A926 | |
beq L_A926 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
beq L_A926 | |
jsr L_A8E8 | |
bsr L_A930 | |
L_A926 jmp <$a5 | |
L_A928 ldb <$b2 ; $a928: Set Colours: sets up locations $00b4, $00b5 (CoCo $959a) | |
bne L_A930 | |
L_A930 stb <$b4 | |
L_A938 bne L_A95D ; $a938: Select Display: Selects Text (CC.Z=1) or Graphics (CC.Z=0) mode (CoCo $95aa) | |
L_A93A pshs a,b,x ; $a93a: Reset VDU: resets default VDU mode (CoCo $95ac) | |
L_A95D pshs a,b,x | |
jsr L_A99D ; $a99d: Set VDG Offset for graphics mode (CoCo $960f) | |
bne L_A985 | |
L_A985 bsr L_A989 | |
L_A989 ldb #$03 ; $a989: Set VDG Mode given in A (CoCo $95fb) | |
L_A98E rora | |
bcc L_A995 | |
bra L_A997 | |
L_A995 sta ,x | |
L_A997 leax 2,x | |
bne L_A98E | |
L_A99D ldb #$07 ; $a99d: Set VDG Offset for graphics mode (CoCo $960f) | |
bra L_A98E | |
L_A9A4 lda >$ff22 ; $a9a4: Set VDG Colour set from $00c1 (CoCo $9616) | |
L_A9AF cmpa #$2c ; $a9af: PMODE token dispatch address | |
beq L_A9DE | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
bcc L_A9FB | |
bhi L_A9FB | |
beq L_A9FA | |
L_A9DE jsr L_8E7E | |
beq L_A9FB | |
bhi L_A9FB | |
L_A9FA rts | |
L_A9FB jmp L_8B8D | |
beq L_AA0D | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
jsr L_A938 ; $a938: Select Display: Selects Text (CC.Z=1) or Graphics (CC.Z=0) mode (CoCo $95aa) | |
beq L_A9FA | |
L_AA0D jsr L_8E7E | |
beq L_AA15 | |
L_AA15 stb <$c1 | |
bra L_A9A4 ; $a9a4: Set VDG Colour set from $00c1 (CoCo $9616) | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
beq L_AA23 ; $aa23: Reserve HiRes Graphics RAM, moves BASIC if nec. (CoCo $9695) | |
bcc L_A9FB | |
L_AA23 lda #$06 ; $aa23: Reserve HiRes Graphics RAM, moves BASIC if nec. (CoCo $9695) | |
lbcs L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
bcc L_A9FB | |
beq L_AA4F | |
L_AA4F ldu <$1b | |
bcc L_AA6F | |
L_AA58 lda ,-u | |
bne L_AA58 | |
L_AA66 jsr L_83ED | |
jsr L_8424 | |
jmp L_849F ; $849f: RUN BASIC - runs BASIC program in mem used by Autorun programs (CoCo $ad9e) | |
L_AA6F ldu <$19 | |
L_AA76 lda ,u+ | |
bne L_AA76 | |
bra L_AA66 | |
L_AA81 ldb #$1e ; $aa81: Called from BASIC init routine ($b3ba-) | |
jmp L_8417 ; $8417: Erases program in memory same as NEW (CoCo $ad19) {1} Called from BASIC init routine ($b3ba) | |
bra L_AAB1 | |
bra L_AAC1 | |
L_AAA9 bra L_AAC3 | |
L_AAAA equ L_AAA9 + 1 | |
L_AAAB ldd <$c5 | |
L_AAAF bcc L_AAEC | |
L_AAB1 pshs cc | |
jsr L_B15E | |
L_AAB8 ldd <$c3 | |
bra L_AAAF | |
bsr L_AADA ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
L_AAC0 pshs a,b | |
L_AAC1 equ L_AAC0 + 1 | |
L_AAC2 ldb #$bc | |
L_AAC3 equ L_AAC2 + 1 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bsr L_AADA ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
L_AAD1 ldd ,x++ | |
bne L_AAD1 | |
L_AADA jsr L_8E51 ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
beq L_AAED ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
bhi L_AAED ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
L_AAEC rts ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
L_AAED jmp L_8B8D ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
bra L_AAF5 | |
L_AAF3 ldb #$01 ; $aaf3: PUT token dispatch address | |
L_AAF5 stb <$d8 | |
bne L_AB00 | |
L_AB00 jsr L_A71D | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_AC67 | |
bne L_AAED ; $aada-$aaef: Sub - reads and checks PCOPY page numbers | |
beq L_AB52 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bne L_AB35 | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bra L_AB65 | |
L_AB35 ldb #$05 | |
L_AB3A ldu ,x++ | |
beq L_AB49 | |
bne L_AB3A | |
jmp L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_AB49 sty <$d5 | |
bra L_AB65 | |
L_AB52 ldb #$f8 | |
bcc L_AB5B | |
L_AB5B tfr b,a | |
L_AB65 jsr L_AAB8 | |
bcc L_AB6E | |
L_AB6E std <$c3 | |
jsr L_AAAB | |
bcc L_AB79 | |
L_AB79 std <$c5 | |
bcc L_AB86 | |
L_AB86 jsr L_A7AE | |
L_AB91 tst <$d4 | |
L_AB92 equ L_AB91 + 1 | |
bne L_ABED | |
jsr L_A626 | |
L_ABA3 ldb <$c4 | |
L_ABA7 tst <$d8 | |
beq L_ABCC | |
bsr L_ABBE | |
L_ABB1 decb | |
bne L_ABA7 | |
jsr L_A677 | |
bne L_ABA3 | |
L_ABBD rts | |
L_ABBE ldu <$cf | |
bne L_ABBD | |
L_ABC9 jmp L_8B8D | |
L_ABCC lda ,x+ | |
bsr L_ABBE | |
bra L_ABB1 | |
ble L_AB92 | |
L_ABED addd #$0001 | |
bne L_ABFF | |
L_ABF8 sta ,-u | |
bhi L_ABF8 | |
L_ABFF jsr L_A626 | |
bcc L_AC09 | |
L_AC09 ldb #$01 | |
L_AC0E pshs a,x | |
L_AC12 pshs a,u | |
bcc L_AC1F | |
beq L_ABC9 | |
L_AC1F tst <$d8 | |
beq L_AC42 | |
beq L_AC2B | |
L_AC2B jmp [$00d9] | |
bra L_AC4C | |
bra L_AC4C | |
bra L_AC4C | |
L_AC42 bita ,x | |
beq L_AC4C | |
L_AC4C puls a,u | |
jsr L_A67B | |
bne L_AC12 | |
bne L_AC0E | |
L_AC67 jsr L_8A94 | |
L_AC72 cmpx <$1f | |
lbeq L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
beq L_AC83 | |
bra L_AC72 | |
L_AC83 leax 2,x | |
L_AC86 rts | |
bne L_AC8D | |
L_AC8D jsr L_A740 | |
jsr L_A6AB | |
jsr L_A90F | |
beq L_ACA5 | |
jsr L_A90F | |
L_ACA5 lda <$b5 | |
jsr L_A8B0 | |
jsr L_A61D | |
jsr L_AD7A | |
beq L_ACCC | |
jsr L_AD66 | |
jsr L_AD55 | |
jsr L_AD55 | |
L_ACCC sts <$dc | |
L_ACCF tst <$db | |
bne L_ACD6 | |
L_ACD6 puls a,b,x,u | |
beq L_AC86 | |
bmi L_ACEF | |
bls L_ACF3 | |
L_ACEF tstb | |
beq L_ACCF | |
L_ACF3 stb <$c0 | |
jsr L_AD7A | |
beq L_AD09 | |
bcs L_AD04 | |
bsr L_AD3C | |
L_AD04 jsr L_AD66 | |
L_AD07 bsr L_AD55 | |
L_AD09 coma | |
L_AD0B addd <$d1 | |
ble L_AD27 | |
jsr L_A894 | |
jsr L_ADAD | |
bne L_AD1E | |
bra L_AD0B | |
L_AD1E jsr L_A8A2 | |
bsr L_AD61 | |
bsr L_AD83 | |
bra L_AD07 | |
L_AD27 jsr L_A894 | |
ble L_AD39 | |
bsr L_AD3C | |
L_AD39 jmp L_ACCF | |
L_AD3C std <$cb | |
L_AD47 ldb <$c0 | |
jsr L_8331 | |
L_AD55 std <$cb | |
bra L_AD47 | |
L_AD61 ldx <$bd | |
L_AD66 std <$cd | |
bsr L_AD61 | |
bsr L_AD83 | |
L_AD7A jsr L_AD61 | |
ldy #L_A8A2 | |
bra L_AD89 | |
L_AD83 ldy #L_A894 | |
L_AD89 ldu <$8a | |
L_AD8D bmi L_ADA6 | |
bhi L_ADA6 | |
bsr L_ADAD | |
beq L_ADA4 | |
jsr L_A705 | |
bra L_AD8D | |
L_ADA4 puls y,u | |
L_ADA6 tfr u,d | |
L_ADAD jsr [$00d9] | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_BAF1 ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
jsr L_BAC5 ; $bac5-$bad3: Enables sound (CoCo $a976) | |
L_ADCD jsr L_8D9A | |
bra L_ADD4 | |
L_ADD2 puls b,x | |
L_ADD4 stb <$d8 | |
beq L_ADD2 | |
lbeq L_BAC3 ; $bac3: Audio off: Disables sound (CoCo $a974) | |
L_ADDE tst <$d8 | |
beq L_ADD2 | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
beq L_ADDE | |
beq L_ADDE | |
lbeq L_AFA5 | |
bsr L_ADF7 | |
bra L_ADDE | |
L_ADF7 cmpa #$4f | |
bne L_AE08 | |
bsr L_AE5B | |
bhi L_AE68 | |
L_AE08 cmpa #$56 | |
bne L_AE26 | |
bsr L_AE5B | |
bhi L_AE68 | |
L_AE26 cmpa #$4c | |
bne L_AE4D | |
bsr L_AE5B | |
beq L_AE68 | |
L_AE35 bsr L_AE3A | |
bcc L_AE35 | |
L_AE3A tst <$d8 | |
beq L_AE48 | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
beq L_AE4A | |
jsr L_AF7D | |
L_AE48 coma | |
L_AE4A inc <$e5 | |
L_AE4D cmpa #$54 | |
bne L_AE5E | |
bsr L_AE5B | |
beq L_AE68 | |
L_AE5B jmp L_AF47 | |
L_AE5E cmpa #$50 | |
bne L_AE86 | |
jsr L_B066 | |
bne L_AE6B | |
L_AE68 jmp L_8B8D | |
L_AE6B lda <$e5 | |
bsr L_AE82 | |
L_AE82 clr ,-s | |
bra L_AEC6 | |
L_AE86 cmpa #$4e | |
bne L_AE8D | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
L_AE8D cmpa #$41 | |
bcs L_AE95 | |
bls L_AE9A ; $ae9a: Play Note: A contains ASCII code (CoCo $9ad7) | |
L_AE95 jsr L_AF59 | |
bra L_AEBD | |
L_AE9A suba #$41 ; $ae9a: Play Note: A contains ASCII code (CoCo $9ad7) | |
beq L_AEBD | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
beq L_AEB0 | |
bne L_AEB3 | |
L_AEB0 incb | |
bra L_AEBD | |
L_AEB3 cmpa #$2d | |
bne L_AEBA | |
bra L_AEBD | |
L_AEBA jsr L_AF7D | |
L_AEBD decb | |
bhi L_AE68 | |
L_AEC6 lda <$e2 | |
bhi L_AEFF | |
L_AED3 ldx #$affd | |
L_AED4 equ L_AED3 + 1 | |
bsr L_AF27 | |
L_AEE4 bsr L_AEF2 | |
bsr L_AEF5 | |
bsr L_AEF2 | |
bsr L_AEF5 | |
bra L_AEE4 | |
L_AEF2 lda #$7c | |
L_AEF5 sta >$ff20 | |
L_AEFA leax -1,x | |
bne L_AEFA | |
L_AEFF ldx #$b015 | |
bsr L_AF27 | |
L_AF0D bsr L_AF1B | |
bsr L_AF1E | |
bsr L_AF1B | |
bsr L_AF1E | |
bra L_AF0D | |
L_AF1B lda #$7c | |
L_AF1E sta >$ff20 | |
L_AF23 deca | |
bne L_AF23 | |
L_AF27 ldb #$ff | |
beq L_AF32 | |
L_AF32 rts | |
L_AF33 pshs x ; $af33: Sub - gets next PLAY cmd in A | |
L_AF35 tst <$d8 | |
beq L_AF86 | |
beq L_AF35 | |
L_AF47 bsr L_AF33 | |
beq L_AF89 | |
beq L_AF8D | |
beq L_AF97 | |
beq L_AF92 | |
L_AF59 cmpa #$3d | |
beq L_AF9C | |
jsr L_A438 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
bcs L_AF86 | |
L_AF63 suba #$30 | |
bne L_AF86 | |
bcs L_AF86 | |
beq L_AF8C | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
jsr L_A438 ; $a438-$a440: Sub - returns CC.C set if A is not char '0'-'9' | |
bcc L_AF63 | |
L_AF7D inc <$d8 | |
L_AF86 jmp L_8B8D | |
L_AF89 incb | |
beq L_AF86 | |
L_AF8C rts | |
L_AF8D tstb | |
beq L_AF86 | |
L_AF92 tstb | |
beq L_AF86 | |
L_AF97 tstb | |
bmi L_AF86 | |
L_AF9C pshs y,u | |
bsr L_AFB6 | |
jsr L_8E54 | |
L_AFA5 jsr L_AFB6 | |
jsr L_8331 | |
jmp L_ADCD | |
L_AFB6 ldx <$d9 | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
jsr L_8ADF | |
bcs L_AF86 | |
L_AFC2 jsr L_AF33 | |
bne L_AFC2 | |
jsr L_89C1 | |
L_AFD9 clra ; $afd9: PLAY IRQ routine - branches to $bb02 if $00e3 == 0x0000 | |
lbeq L_BB02 ; $bb02-$bb0c: Interrupt service subroutine to decrement $008d:008e, returns with RTI | |
bhi L_AFF5 | |
L_AFF5 rti | |
bmi L_B06D | |
bne L_B06A | |
brn L_B068 | |
lbra L_C463 | |
jsr L_A928 ; $a928: Set Colours: sets up locations $00b4, $00b5 (CoCo $959a) | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
L_B061 jsr L_8D9A | |
bra L_B06E | |
L_B066 jsr L_AF33 | |
L_B068 equ L_B066 + 2 | |
L_B069 jmp L_AF59 | |
L_B06A equ L_B069 + 1 | |
L_B06C puls b,x | |
L_B06D equ L_B06C + 1 | |
L_B06E stb <$d8 | |
beq L_B06C | |
lbeq L_B162 | |
L_B078 tst <$d8 | |
beq L_B06C | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
beq L_B078 | |
beq L_B078 | |
bne L_B08F | |
bra L_B078 | |
L_B08F cmpa #$42 | |
bne L_B097 | |
bra L_B078 | |
L_B097 cmpa #$58 | |
lbeq L_B133 | |
lbeq L_B1CD | |
beq L_B0BC | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
jsr L_8ADF | |
jsr L_AF7D | |
bcc L_B0BC | |
bsr L_B066 | |
L_B0BC puls a | |
beq L_B0EA | |
beq L_B0F4 | |
beq L_B0FC | |
beq L_B12A | |
beq L_B127 | |
beq L_B122 | |
beq L_B11D | |
beq L_B10D | |
beq L_B108 | |
beq L_B116 | |
beq L_B104 | |
L_B0E7 jmp L_8B8D | |
L_B0EA jsr L_A8EB | |
jsr L_A928 ; $a928: Set Colours: sets up locations $00b4, $00b5 (CoCo $959a) | |
L_B0F2 bra L_B078 | |
L_B0F4 cmpb #$04 | |
bcc L_B0E7 | |
bra L_B0F2 | |
L_B0FC cmpb #$3f | |
bcc L_B0E7 | |
bra L_B0F2 | |
L_B104 clra | |
bsr L_B15F | |
L_B107 brn L_B158 | |
L_B108 equ L_B107 + 1 | |
bra L_B166 | |
L_B10D clra | |
bsr L_B15F | |
bra L_B166 | |
L_B116 clra | |
bsr L_B15F | |
bra L_B166 | |
L_B11D clra | |
L_B11E ldx <$8a | |
bra L_B166 | |
L_B122 clra | |
bsr L_B15F | |
bra L_B11E | |
L_B127 clra | |
bra L_B12D | |
L_B12A clra | |
bsr L_B15F | |
L_B12D ldx <$8a | |
bra L_B166 | |
L_B133 jsr L_AFB6 | |
jsr L_8331 | |
jmp L_B061 | |
L_B144 ldb <$e9 | |
beq L_B163 | |
bpl L_B151 | |
bsr L_B15E | |
L_B151 jsr L_B350 | |
L_B158 lsra | |
bpl L_B162 | |
L_B15E nega | |
L_B15F negb | |
L_B162 rts | |
L_B163 tfr x,d | |
L_B166 pshs a,b | |
bsr L_B144 | |
bsr L_B144 | |
L_B177 tst ,s | |
beq L_B183 | |
bsr L_B15E | |
bra L_B177 | |
L_B183 puls y | |
bmi L_B18D | |
L_B18D tfr x,d | |
bmi L_B197 | |
L_B197 cmpu #$0100 | |
bcs L_B1A0 | |
L_B1A0 cmpx #$00c0 | |
bcs L_B1A8 | |
L_B1A8 ldd <$c7 | |
bne L_B1BC | |
L_B1BC jsr L_A7AE | |
bne L_B1C6 | |
jsr L_A82F | |
L_B1C6 clr <$d5 | |
jmp L_B078 | |
L_B1CD jsr L_AF33 | |
jsr L_B1F9 | |
jsr L_AF33 ; $af33: Sub - gets next PLAY cmd in A | |
lbne L_B0E7 | |
jsr L_B1F6 | |
beq L_B1F1 | |
bne L_B197 | |
L_B1F1 tfr u,d | |
jmp L_B166 | |
L_B1F6 jsr L_AF33 | |
L_B1F9 cmpa #$2b | |
beq L_B204 | |
beq L_B205 | |
jsr L_AF7D | |
L_B204 clra | |
L_B205 pshs a | |
jsr L_B066 | |
beq L_B213 | |
L_B213 rts | |
lsl L_AED4 | |
bne L_B23E | |
L_B23E jsr L_A8B0 | |
jsr L_A740 | |
jsr L_A6AB | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
jsr L_A6AE | |
jsr L_A90F | |
beq L_B27A | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8872 | |
jsr L_8E86 | |
L_B27A lda <$b6 | |
beq L_B284 | |
L_B284 stx <$d1 | |
jsr L_B37D | |
jsr L_B37D | |
L_B298 pshs a,b | |
beq L_B2AC | |
L_B2AC lslb | |
jsr L_B342 | |
jsr L_B342 | |
beq L_B2CC | |
beq L_B2CC | |
L_B2CC stx <$c3 | |
jsr L_B350 | |
lbne L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
bcs L_B2F6 | |
bcc L_B2F6 | |
bcc L_B303 | |
bra L_B303 | |
L_B2F6 ldd <$cb | |
bcs L_B301 | |
bcs L_B303 | |
L_B301 ldd <$d3 | |
L_B303 std <$c3 | |
bcs L_B315 | |
bcc L_B322 | |
bra L_B322 | |
L_B315 ldd <$cd | |
bcs L_B320 | |
bcs L_B322 | |
L_B320 ldd <$d5 | |
L_B322 std <$c5 | |
bne L_B32A | |
bsr L_B37A | |
L_B32A puls a,b | |
bcs L_B335 | |
beq L_B341 | |
L_B335 incb | |
bne L_B33E | |
L_B33E jmp L_B298 | |
L_B341 rts | |
L_B342 ldx <$cf | |
beq L_B34F | |
bsr L_B350 | |
L_B34F rts | |
L_B350 pshs a,b,x,y,u | |
bcc L_B36F | |
L_B36F lda ,s | |
L_B37A jmp L_A82F | |
L_B37D clrb | |
beq L_B393 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8872 | |
jsr L_8E54 | |
L_B393 tfr b,a | |
bne L_B3BA ; $b3ba: Cold start routine - clears lo mem, inits BASIC | |
bne L_B3BA ; $b3ba: Cold start routine - clears lo mem, inits BASIC | |
jmp L_8000 ; $8000-$8002: Hardware Initialisation (JMP $bb40; D64 JMP $bb3c) | |
L_B3BA ldx #$0401 ; $b3ba: Cold start routine - clears lo mem, inits BASIC | |
L_B3BD clr ,--x | |
bne L_B3BD | |
jsr L_BA77 ; $ba77-$ba85: Clears text screen (CoCo $a928) | |
L_B3CA lda 2,x | |
bne L_B3D9 | |
bra L_B3CA | |
L_B3D9 stx <$74 | |
jsr L_8003 ; $8003-$8005: Software Initialisation (JMP $bb88) | |
jsr L_B7CC ; $b7cc: Copy B bytes from X to U | |
jsr L_B7CC ; $b7cc: Copy B bytes from X to U | |
ldx #L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
L_B40A sta ,x+ | |
bne L_B40A | |
jsr L_8417 ; $8417: Erases program in memory same as NEW (CoCo $ad19) {1} Called from BASIC init routine ($b3ba) | |
jsr L_98E3 ; $98e3: Called from BASIC init routine ($b3ba-) | |
ldu #L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
L_B422 stu ,x++ | |
bne L_B422 | |
jsr L_AA81 ; $aa81: Called from BASIC init routine ($b3ba-) | |
L_B42F sta >$ff03 | |
L_B431 equ L_B42F + 2 | |
lbeq L_BED0 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bec5-$beda: D64 - Key scan which pauses printer during printing {8} | |
L_B43C andcc #$af | |
jsr L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
bra L_B466 | |
jsr L_8434 ; $8434: Resets stack - all entries are lost (CoCo $ad33) | |
jsr L_BA77 ; $ba77-$ba85: Clears text screen (CoCo $a928) | |
L_B466 jmp L_8371 | |
L_B469 tst >$ff23 ; $b469-$b46e: FIRQ interrupt service routine - branches to $b46f if source was cartridge else RTI | |
bmi L_B46F ; $b46f-$b47a: Calls $b480 twice, then JMPs to $8000 with Y = $b47b | |
L_B46F jsr L_B480 ; $b46f-$b47a: Calls $b480 twice, then JMPs to $8000 with Y = $b47b | |
jsr L_B480 ; $b480-$b486: Loads X from $008a (0x0000) and decrements to 0x0000 Gives 524,298 cycle, approx. 590ms delay | |
jmp L_8000 ; $8000-$8002: Hardware Initialisation (JMP $bb40; D64 JMP $bb3c) | |
L_B480 ldx <$8a ; $b480-$b486: Loads X from $008a (0x0000) and decrements to 0x0000 Gives 524,298 cycle, approx. 590ms delay | |
L_B482 leax -1,x ; $b480-$b486: Loads X from $008a (0x0000) and decrements to 0x0000 Gives 524,298 cycle, approx. 590ms delay | |
bne L_B482 ; $b480-$b486: Loads X from $008a (0x0000) and decrements to 0x0000 Gives 524,298 cycle, approx. 590ms delay | |
bne L_B48F ; $b487-$b494: 14 bytes copied to $009d-$00aa at startup | |
L_B48F lda >$0000 ; $b487-$b494: 14 bytes copied to $009d-$00aa at startup | |
jmp L_BB26 ; $bb26-$bb34: Jumped to from selfmodifying CHRGET routine at $009f | |
jmp L_9D3D ; $9d3d: IRQ interrupt service routine | |
jmp L_B469 ; $b469-$b46e: FIRQ interrupt service routine - branches to $b46f if source was cartridge else RTI | |
bhi L_B431 | |
bvc L_B4F8 ; $b4ed-$b504: '(C) 1982 BY MICROSOFT', 0x0d, 0x0d, 0x00 | |
bvs L_B4D7 ; $b4cd-$b4ec: '16K BASIC INTERPRETER 1.0 ', 0x0d | |
bra L_B501 ; $b4ed-$b504: '(C) 1982 BY MICROSOFT', 0x0d, 0x0d, 0x00 | |
bra L_B508 | |
bra L_B515 | |
bra L_B4DA ; $b4cd-$b4ec: '16K BASIC INTERPRETER 1.0 ', 0x0d | |
bra L_B514 | |
L_B4D6 bra L_B521 ; $b4cd-$b4ec: '16K BASIC INTERPRETER 1.0 ', 0x0d | |
L_B4D7 equ L_B4D6 + 1 ; $b4cd-$b4ec: '16K BASIC INTERPRETER 1.0 ', 0x0d | |
L_B4DA fcb $45 ; lsra; $b4cd-$b4ec: '16K BASIC INTERPRETER 1.0 ', 0x0d | |
bra L_B515 | |
bgt L_B516 | |
bra L_B508 | |
bra L_B50A | |
bra L_B50C | |
bvs L_B511 | |
bra L_B539 | |
L_B4F8 bra L_B547 ; $b4ed-$b504: '(C) 1982 BY MICROSOFT', 0x0d, 0x0d, 0x00 | |
L_B501 lsrb ; $b4ed-$b504: '(C) 1982 BY MICROSOFT', 0x0d, 0x0d, 0x00 | |
L_B504 neg <$8d ; $b4ed-$b504: '(C) 1982 BY MICROSOFT', 0x0d, 0x0d, 0x00 | |
L_B505 equ L_B504 + 1 ; $b505: Waits for key with cursor ? Called from SuperDos E6 ROM | |
L_B508 clr >$39bd | |
L_B50A equ L_B508 + 2 | |
L_B50B fcb $01,$6a ; neg <$6a | |
L_B50C equ L_B50B + 1 | |
L_B511 beq L_B538 | |
L_B513 tst <$79 | |
L_B514 equ L_B513 + 1 | |
L_B515 bne L_B51A | |
L_B516 equ L_B515 + 1 | |
L_B51A pshs b,x,y,u | |
L_B520 pshs a | |
L_B521 equ L_B520 + 1 | |
bne L_B531 | |
beq L_B533 | |
jsr L_B867 | |
L_B531 puls a,b,x,y,u,pc | |
L_B533 jsr L_A106 | |
bra L_B531 | |
L_B538 pshs b,x | |
L_B539 equ L_B538 + 1 | |
L_B53A jsr L_8009 | |
jsr L_8006 ; $8006-$8008: %POLCAT% Scans keyboard, rets value in A (JMP $bbe5) Called indirectly from [$a000] | |
beq L_B53A | |
L_B544 stb [$0088] | |
L_B547 equ L_B544 + 3 | |
L_B54A jsr >$0167 ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
bne L_B557 | |
L_B557 incb | |
lbmi L_800F ; $800f-$8011: %LPOUT% Line printer character output in A reg., forces end-of-line sequences, outputs extra spaces to cause LFs etc. See: $0099-009c, $0148 (JMP $bd1a) | |
bne L_B58F | |
beq L_B576 | |
bne L_B56E | |
bsr L_B578 | |
L_B56E ldx <$7a | |
L_B576 puls a,b,x,pc | |
L_B578 ldb #$01 | |
L_B57A stb <$7c | |
jsr L_B991 ; $b991: Write 1st Block (CoCo $a7e5) | |
jmp L_B882 | |
L_B58F jsr L_A93A | |
jmp L_800C ; $800c-$800e: %CHROUT% Write chr in A to screen (JMP $bcab) | |
L_B595 jsr >$0164 | |
beq L_B5A9 | |
beq L_B5BA | |
bra L_B5B2 | |
L_B5A9 ldb <$89 | |
L_B5B2 stx <$6a | |
L_B5BA com <$6e | |
bra L_B5B2 | |
L_B5C3 jsr L_BA77 | |
L_B5C6 jsr >$0182 | |
L_B5D0 jsr L_B505 | |
bne L_B602 | |
bne L_B5FE | |
beq L_B5C3 | |
bne L_B5EA | |
beq L_B5C6 | |
bra L_B61E | |
L_B5EA cmpa #$15 | |
bne L_B5F8 | |
L_B5EE decb | |
beq L_B5C6 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
bra L_B5EE | |
L_B5F8 cmpa #$03 | |
beq L_B603 | |
L_B5FE cmpa #$0d | |
bne L_B60F | |
L_B602 clra | |
L_B603 pshs cc | |
jsr L_90A1 ; $90a1: Print CR/LF: moves cursor posn to start of new line (CoCo $b958) | |
L_B60F cmpa #$20 | |
bcs L_B5D0 | |
bcc L_B5D0 | |
bcc L_B5D0 | |
L_B61E jsr L_B54A | |
bra L_B5D0 | |
L_B623 jsr >$016d | |
beq L_B64B | |
bne L_B639 | |
bne L_B636 | |
L_B631 ldb #$2e | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_B636 deca | |
beq L_B64B | |
L_B639 jmp L_B848 | |
L_B63C jsr >$0170 | |
bne L_B64B | |
beq L_B631 | |
beq L_B639 | |
L_B64B rts | |
beq L_B65C | |
jsr L_B7D7 | |
L_B651 bsr L_B663 | |
beq L_B681 | |
jsr L_B7D4 | |
bra L_B651 | |
L_B65C jsr >$0173 | |
L_B663 jsr >$0176 | |
bne L_B681 | |
bne L_B67F | |
beq L_B67A | |
jsr L_B578 | |
L_B67A ldb #$ff | |
jsr L_B57A | |
L_B67F clr <$78 | |
L_B681 rts | |
lbeq L_9900 | |
jsr L_B7AA | |
beq L_B6A5 ; $b6a5: Write BASIC: writes BASIC program to cassette (CoCo $a469) | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_89AC ; $89ac: CkChar: as for CkComa but checks for chr in B (CoCo $b26f) | |
bne L_B681 | |
jsr L_B88E | |
jmp L_8EAA ; $8eaa: LIST token dispatch address, List Basic to DEVN (CoCo $b764) | |
L_B6A5 clra ; $b6a5: Write BASIC: writes BASIC program to cassette (CoCo $a469) | |
jsr L_B891 | |
jsr L_801B ; $801b-$801d: Write leader to cassette (JMP $be68) Called indirectly from [$a00c] | |
L_B6B4 stx <$7e | |
beq L_B6CD | |
bcc L_B6C8 | |
L_B6C8 jsr L_B999 | |
bra L_B6B4 | |
L_B6CD neg <$7c | |
jmp L_B994 | |
lbeq L_A08E | |
jsr L_B7F7 | |
jsr L_B87A | |
beq L_B706 | |
beq L_B70B | |
jsr L_8417 ; $8417: Erases program in memory same as NEW (CoCo $ad19) {1} Called from BASIC init routine ($b3ba) | |
jsr L_B867 | |
jmp L_837A | |
L_B6FD jsr >$0185 | |
jsr L_B663 | |
jmp L_8371 ; $8371: Prints OK prompt and returns to Command mode (CoCo $ac73) | |
L_B706 lda >$01e2 | |
beq L_B70E | |
L_B70B jmp L_B848 | |
L_B70E jsr L_8417 | |
jsr L_8021 ; $8021-$8023: Cassette on, init for reading (JMP $bde7) Called indirectly from [$a004] | |
L_B716 stx <$7e | |
jsr L_8335 | |
jsr L_B93E ; $b93e: %BLKIN% reads a block of data into cas. buffer (CoCo $a70b) Called indirectly from [$a006] | |
bne L_B736 | |
beq L_B736 | |
bpl L_B716 | |
bsr L_B76D | |
jsr L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
jmp L_83E7 | |
L_B736 jsr L_8417 | |
L_B739 jmp L_B84B | |
L_B73C ldx <$8a | |
beq L_B748 ; $b748: Read Binary file from tape (CoCo $a511) | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
jsr L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
L_B748 lda >$01e2 ; $b748: Read Binary file from tape (CoCo $a511) | |
bne L_B70B | |
jsr L_8021 ; $8021-$8023: Cassette on, init for reading (JMP $bde7) Called indirectly from [$a004] | |
L_B760 jsr L_B93E | |
bne L_B739 | |
beq L_B739 | |
bpl L_B760 | |
L_B76D jmp L_8018 | |
beq L_B777 | |
jsr L_8E83 ; $8e83: Get16Bit: returns value of following number in X (CoCo $b73d) | |
L_B777 jmp [$009d] | |
L_B77B jsr >$017f | |
beq L_B7D3 | |
jmp L_851B | |
L_B786 jsr L_8B21 | |
lbhi L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
bne L_B79D | |
jsr L_8006 ; $8006-$8008: %POLCAT% Scans keyboard, rets value in A (JMP $bbe5) Called indirectly from [$a000] | |
L_B79D clr <$87 | |
lbne L_8DD5 | |
jmp L_8DE1 | |
L_B7AA ldx #$01d1 | |
L_B7B1 sta ,x+ | |
bne L_B7B1 | |
beq L_B7D3 | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_8D9A ; $8d9a: Sub - | |
beq L_B7D3 | |
L_B7C9 cmpx #$c608 | |
L_B7CA equ L_B7C9 + 1 | |
L_B7CC lda ,x+ ; $b7cc: Copy B bytes from X to U | |
bne L_B7CC ; $b7cc: Copy B bytes from X to U | |
L_B7D3 rts | |
L_B7D4 jsr L_89AA | |
L_B7D7 cmpa #$23 | |
bne L_B7DD | |
L_B7DD jsr L_8872 | |
L_B7E0 jsr L_8B2D | |
bne L_B851 | |
beq L_B7F6 | |
bpl L_B851 | |
blt L_B851 | |
L_B7F6 rts | |
L_B7F7 bsr L_B7AA | |
L_B7F9 jsr <$a5 | |
L_B7FB beq L_B7F6 | |
jmp L_89B4 ; $89b4: Both reserved word and function dispatch tables of Stub 1 at $012a point here | |
bsr L_B7E0 | |
jsr L_B623 | |
beq L_B816 | |
bne L_B816 | |
L_B816 puls a | |
L_B81A sex | |
jmp L_8C37 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC, $8c37-$8c3f: %GIVABF% returns D as 16bit val in FAC | |
L_B81E bsr L_B7F7 ; $b81e: SKIPF token dispatch address | |
bsr L_B87A | |
jsr L_B903 | |
bne L_B84B | |
jsr L_8887 ; $8887: Get string: compiles a string and puts it in free string space (CoCo $b156) | |
jsr L_8DEA | |
bsr L_B7D4 | |
jsr L_89AA ; $89aa: CkComa: checks next cmd line chr for a comma, if not a Syntax error is generated (CoCo $b26d) | |
bsr L_B7F7 | |
beq L_B856 | |
beq L_B88A | |
L_B848 ldb #$2c | |
L_B84A cmpx #$c62a | |
L_B84B equ L_B84A + 1 | |
L_B84D cmpx #$c626 | |
L_B84E equ L_B84D + 1 | |
L_B850 cmpx #$c628 | |
L_B851 equ L_B850 + 1 | |
jmp L_8344 ; $8344: System Error - generates error message according to B (CoCo $ac46) | |
L_B856 inca | |
bmi L_B848 | |
bne L_B889 | |
bsr L_B87A | |
beq L_B848 | |
L_B867 jsr L_B933 | |
bne L_B84B | |
beq L_B84B | |
bmi L_B889 | |
beq L_B867 | |
L_B876 sta <$79 | |
bra L_B884 | |
L_B87A tst <$78 | |
bne L_B84E | |
bsr L_B8B3 ; $b8b3: Find File: searches tape for matching filename (CoCo $a681) | |
bne L_B84B | |
L_B882 clr <$79 | |
L_B884 ldx #$01da | |
L_B889 rts | |
L_B88A inca | |
bne L_B889 | |
L_B88E ldx #$ffff | |
L_B891 tst <$78 | |
bne L_B84E | |
jsr L_B7CA | |
jsr L_B991 ; $b991: Write 1st Block (CoCo $a7e5) | |
bra L_B882 | |
L_B8B3 ldx #$01da ; $b8b3: Find File: searches tape for matching filename (CoCo $a681) | |
L_B8B8 lda <$68 | |
bne L_B8C8 | |
jsr L_BA77 ; $ba77-$ba85: Clears text screen (CoCo $a928) | |
L_B8C8 bsr L_B933 | |
bne L_B8C8 | |
L_B8D8 lda ,x+ | |
bne L_B8E6 | |
jsr L_B54A ; $b54a: %OUTCHR% Sends char in A to DEVN (CoCo $a282) Called indirectly from [$a002] | |
L_B8E6 suba ,u+ | |
bne L_B8D8 | |
beq L_B8FD | |
beq L_B8FD | |
bsr L_B903 | |
bne L_B902 | |
bra L_B8B8 | |
L_B8FD lda #$46 | |
bsr L_B92A | |
L_B902 rts | |
L_B903 tst >$01e4 | |
bne L_B911 | |
jsr L_8021 ; $8021-$8023: Cassette on, init for reading (JMP $bde7) Called indirectly from [$a004] | |
L_B90B bsr L_B93E | |
bsr L_B917 | |
bra L_B90B | |
L_B911 bsr L_B933 | |
bsr L_B917 | |
bra L_B911 | |
L_B917 bne L_B91F | |
bmi L_B932 | |
L_B91F sta <$81 | |
bra L_B938 | |
L_B925 lda >$0400 | |
L_B92A ldb <$68 | |
bne L_B932 | |
L_B932 rts | |
L_B933 jsr L_8021 ; $b933: Read 1st Block: reads filename block to cas. buf (CoCo $a701) | |
bsr L_B93E ; $b93e: %BLKIN% reads a block of data into cas. buffer (CoCo $a70b) Called indirectly from [$a006] | |
L_B938 jsr L_8018 | |
L_B93E orcc #$50 ; $b93e: %BLKIN% reads a block of data into cas. buffer (CoCo $a70b) Called indirectly from [$a006] | |
bsr L_B925 | |
L_B945 jsr L_8027 | |
bne L_B945 | |
jsr L_8024 ; $8024-$8026: Input byte from cassette into A (JMP $bdad) | |
jsr L_8024 ; $8024-$8026: Input byte from cassette into A (JMP $bdad) | |
beq L_B972 | |
L_B961 jsr L_8024 | |
bne L_B97C | |
bne L_B961 | |
L_B972 jsr L_8024 | |
beq L_B97E | |
L_B97B cmpx #$8602 | |
L_B97C equ L_B97B + 1 | |
L_B97E sta <$81 | |
beq L_B996 | |
jsr L_B7FB | |
jmp L_8015 ; $8015-$8017: Cassette relay on (JMP $bdcf) | |
L_B991 jsr L_801B ; $b991: Write 1st Block (CoCo $a7e5) | |
L_B994 bsr L_B999 | |
L_B996 jmp L_8018 | |
L_B999 orcc #$50 ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
beq L_B9AA ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
L_B9A5 adda ,x+ ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
bne L_B9A5 ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
L_B9AA adda <$7c ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
bsr L_B9CD ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e | |
bsr L_B9CF ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e, $b9cf-$b9d1: JMPs to $801e to write byte in A | |
bsr L_B9CF ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e, $b9cf-$b9d1: JMPs to $801e to write byte in A | |
bsr L_B9CF ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e, $b9cf-$b9d1: JMPs to $801e to write byte in A | |
beq L_B9C9 ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
L_B9C1 lda ,x+ ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
bsr L_B9CF ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e, $b9cf-$b9d1: JMPs to $801e to write byte in A | |
bne L_B9C1 ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
L_B9C9 lda <$80 ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008] | |
bsr L_B9CF ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e, $b9cf-$b9d1: JMPs to $801e to write byte in A | |
L_B9CD lda #$55 ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e | |
L_B9CF jmp L_801E ; $b999-$b9d1: %BLKOUT% writes a block of data to cassette (CoCo $a7f4) Called indirectly from [$a008], $b9cd-$b9d1: Write byte 0x55 to cassette by JMPing to $801e, $b9cf-$b9d1: JMPs to $801e to write byte in A | |
bsr L_BA13 | |
jsr L_8E7E | |
bhi L_BA24 | |
bmi L_B9E7 | |
bra L_B9EF | |
L_B9E7 ldb ,x | |
bpl L_B9EE | |
L_B9ED brn L_BA4E | |
L_B9EE equ L_B9ED + 1 | |
L_B9EF pshs b | |
bsr L_BA5C | |
bmi L_B9F8 | |
L_B9F8 anda #$0f | |
L_B9FE ora #$80 | |
bsr L_BA13 | |
bsr L_BA5C | |
bpl L_B9FE | |
L_BA13 jsr L_89A7 | |
L_BA16 jsr L_8E51 | |
bhi L_BA24 | |
jsr L_8E7E | |
L_BA24 bhi L_BA97 | |
L_BA3D lsrb | |
bpl L_BA3D | |
bsr L_BA16 | |
bpl L_BA59 | |
L_BA4E beq L_BA58 | |
L_BA58 incb | |
L_BA59 jsr L_B81A | |
L_BA5C jmp L_89A4 | |
beq L_BA77 ; $ba77-$ba85: Clears text screen (CoCo $a928) | |
jsr L_8E51 ; $8e51: Get8Bit: returns value of following number in B (CoCo $b70b) | |
bhi L_BA86 ; $ba86-$ba8d: Clears screen, prints '(C) 1982 BY MICROSOFT' msg at $b4ec | |
beq L_BA74 | |
L_BA74 orb #$80 | |
L_BA76 cmpx #$c660 | |
L_BA77 equ L_BA76 + 1 ; $ba77-$ba85: Clears text screen (CoCo $a928) | |
L_BA7E stb ,x+ ; $ba77-$ba85: Clears text screen (CoCo $a928), $ba79-$ba85: Clears text screen with value in B (CoCo $a92a) | |
bls L_BA7E ; $ba77-$ba85: Clears text screen (CoCo $a928), $ba79-$ba85: Clears text screen with value in B (CoCo $a92a) | |
L_BA86 bsr L_BA77 ; $ba86-$ba8d: Clears screen, prints '(C) 1982 BY MICROSOFT' msg at $b4ec | |
jmp L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
L_BA8E jsr L_89AA | |
L_BA91 jsr L_8E51 | |
bne L_BAD3 ; $bac5-$bad3: Enables sound (CoCo $a976) | |
L_BA97 jmp L_8B8D | |
bsr L_BA91 | |
bsr L_BA8E | |
bsr L_BAF1 ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
bsr L_BAC5 ; $bac5-$bad3: Enables sound (CoCo $a976) | |
L_BAB3 bsr L_BAD4 | |
bsr L_BAD6 ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985), $bad6-$bade: Writes A to DAC - bits 0,1 of A must be 0 (CoCo $a987) | |
bsr L_BAD4 ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985) | |
bsr L_BAD6 ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985), $bad6-$bade: Writes A to DAC - bits 0,1 of A must be 0 (CoCo $a987) | |
bne L_BAB3 | |
L_BAC3 clra ; $bac3: Audio off: Disables sound (CoCo $a974) | |
L_BAC4 cmpx #$8608 | |
L_BAC5 equ L_BAC4 + 1 ; $bac5-$bad3: Enables sound (CoCo $a976) | |
L_BAD3 rts ; $bac5-$bad3: Enables sound (CoCo $a976) | |
L_BAD4 lda #$7c ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985) | |
L_BAD6 sta >$ff20 ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985), $bad6-$bade: Writes A to DAC - bits 0,1 of A must be 0 (CoCo $a987) | |
L_BADB inca ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985), $bad6-$bade: Writes A to DAC - bits 0,1 of A must be 0 (CoCo $a987) | |
bne L_BADB ; $bad4-$bade: Reset DAC - writes (D32 0x7e; D64 0x7c) to D/A (CoCo $a985), $bad6-$bade: Writes A to DAC - bits 0,1 of A must be 0 (CoCo $a987) | |
beq L_BAC3 ; $bac3: Audio off: Disables sound (CoCo $a974) | |
jsr L_B7FB | |
bsr L_BAF1 ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
bra L_BAC5 ; $bac5-$bad3: Enables sound (CoCo $a976) | |
L_BAF1 ldu #$ff01 ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
bsr L_BAF6 ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
L_BAF6 lda ,u ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
bcc L_BAFF ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
L_BAFF sta ,u++ ; $baf1-$bb01: Sub to init PIA for sound source output specified by the lower 2 bits of B - 00 = DAC, 01 = Tape input, 10 = External Cart source, 11 = none This code duplicates the function of $bd41-bd51, the only dif being an ASRB replacing a RORB | |
L_BB02 ldx <$8d ; $bb02-$bb0c: Interrupt service subroutine to decrement $008d:008e, returns with RTI | |
lbeq L_A05D | |
jsr L_8E54 | |
lbhi L_8B8D ; $8b8d-$8b91: Jump to this causes ?FC ERROR | |
bne L_BB1C | |
jsr L_8012 ; $8012-$8014: Reads Joystick (JMP $bd52) Called indirectly from [$a00a] | |
L_BB1C ldx #$015a | |
jmp L_8C36 ; $8c35-$8c3f: Assign16Bit: assigns D to numeric variable (CoCo $b4f2) ?? 8c35:8c36 is a BRN, $8c36-$8c3f: Assign8Bit: assigns B to numeric variable (CoCo $b4f3) clears A, stores D in FAC | |
L_BB26 cmpa #$3a ; $bb26-$bb34: Jumped to from selfmodifying CHRGET routine at $009f | |
bcc L_BB34 ; $bb26-$bb34: Jumped to from selfmodifying CHRGET routine at $009f | |
bne L_BB30 ; $bb26-$bb34: Jumped to from selfmodifying CHRGET routine at $009f | |
L_BB30 suba #$30 ; $bb26-$bb34: Jumped to from selfmodifying CHRGET routine at $009f | |
L_BB34 rts ; $bb26-$bb34: Jumped to from selfmodifying CHRGET routine at $009f | |
L_BB40 ldd #$0034 ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address | |
L_BB70 sta ,x++ ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address | |
bne L_BB70 ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address | |
beq L_BB81 ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address, $bb80-$bb82: D64 - Boots 64K mode with JMP $bf49 | |
bra L_BB84 ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address | |
L_BB81 stb >$ffdd ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address, $bb80-$bb82: D64 - Boots 64K mode with JMP $bf49 | |
L_BB84 tfr b,dp ; $bb3c-$bb87: D64 - Hardware init, JMPd to from $8000, Y should contain return address, $bb40-$bb87: D32 - Hardware init, JMPd to from $8000, Y should contain return address | |
L_BB88 ldx #$bb9f ; $bb88-$bb9e: Software init, JMPd to from $8003, inits $008f-009b, $0148-0150 with ROM defaults | |
bsr L_BB97 ; $bb88-$bb9e: Software init, JMPd to from $8003, inits $008f-009b, $0148-0150 with ROM defaults, $bb97-$bb9e: CopyXtoU - copies B bytes from X to U | |
L_BB97 lda ,x+ ; $bb88-$bb9e: Software init, JMPd to from $8003, inits $008f-009b, $0148-0150 with ROM defaults, $bb97-$bb9e: CopyXtoU - copies B bytes from X to U | |
bne L_BB97 ; $bb88-$bb9e: Software init, JMPd to from $8003, inits $008f-009b, $0148-0150 with ROM defaults, $bb97-$bb9e: CopyXtoU - copies B bytes from X to U | |
L_BBB5 dec <$8f ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199) | |
bne L_BBC5 ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199), $bbc5-$bbcc: Decrements X from 0x045e, gives 1ms delay | |
L_BBC5 ldx #$045e ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199), $bbc5-$bbcc: Decrements X from 0x045e, gives 1ms delay | |
L_BBC8 leax -1,x ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199), $bbc5-$bbcc: Decrements X from 0x045e, gives 1ms delay, $bbc8-$bbcc: Decrements X until 0 then returns | |
bne L_BBC8 ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199), $bbc5-$bbcc: Decrements X from 0x045e, gives 1ms delay, $bbc8-$bbcc: Decrements X until 0 then returns | |
L_BBCD ldb >$ff00 ; $bbcd-$bbd9: subroutine | |
bmi L_BBD9 ; $bbcd-$bbd9: subroutine | |
L_BBD9 rts ; $bbcd-$bbd9: subroutine | |
L_BBDA ldb #$7f | |
L_BBE5 pshs b,x ; $bbe5-$bbea: %INCH% Scans keyboard, returns char in A, JMPd to from $8006 (CoCo $a1c1) | |
bsr L_BBEC ; $bbec: Keyboard polling sub, returns key code in A | |
L_BBEC clr ,--s ; $bbec: Keyboard polling sub, returns key code in A | |
bmi L_BC01 | |
beq L_BC6F | |
L_BC01 sta ,x+ | |
L_BC08 bsr L_BBCD | |
bne L_BC1F | |
bcs L_BC08 | |
bra L_BC6F | |
L_BC1F ldx <$97 | |
bsr L_BBC8 ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199), $bbc5-$bbcc: Decrements X from 0x045e, gives 1ms delay, $bbc8-$bbcc: Decrements X until 0 then returns | |
bsr L_BBCD ; $bbcd-$bbd9: subroutine | |
bne L_BC6F | |
bsr L_BBCD ; $bbcd-$bbd9: subroutine | |
bne L_BC6F | |
L_BC3C adda #$08 | |
bcc L_BC3C | |
beq L_BC76 | |
bcs L_BC5F | |
bcs L_BC74 | |
bhi L_BC72 | |
bsr L_BBDA | |
L_BC54 beq L_BC68 | |
L_BC55 equ L_BC54 + 1 | |
bne L_BC68 | |
bra L_BC68 | |
L_BC5F adda #$30 | |
lbsr L_BBDA | |
bne L_BC68 | |
L_BC68 cmpa #$12 | |
bne L_BC70 | |
L_BC6F clra | |
L_BC70 puls x,pc | |
L_BC72 suba #$1a | |
L_BC74 suba #$0b | |
L_BC76 lsla | |
lbsr L_BBDA | |
bne L_BC7D | |
L_BC7D ldx #$bc84 | |
bra L_BC68 | |
bge L_BCC4 | |
blt L_BCC7 | |
bgt L_BCCA | |
ble L_BCCD | |
bra L_BCBA | |
L_BCA0 lda #$60 ; $bca0: Clear VDU line from cursor posn (CoCo $a323) | |
bne L_BCA0 ; $bca0: Clear VDU line from cursor posn (CoCo $a323) | |
L_BCAB pshs a,b,x ; $bcab: %OUTCH% Put char in A to screen, JMPd to from $800c (CoCo $a30a) | |
bne L_BCBE | |
beq L_BCF3 | |
L_BCBA sta ,-x | |
bra L_BCDB | |
L_BCBE cmpa #$0d | |
bne L_BCC6 | |
bsr L_BCA0 ; $bca0: Clear VDU line from cursor posn (CoCo $a323) | |
L_BCC4 bra L_BCDB | |
L_BCC6 cmpa #$20 | |
L_BCC7 equ L_BCC6 + 1 | |
bcs L_BCF3 | |
L_BCCA tsta | |
bmi L_BCD9 | |
L_BCCD cmpa #$40 | |
bcs L_BCD7 | |
bcs L_BCD9 | |
L_BCD7 eora #$40 | |
L_BCD9 sta ,x+ | |
L_BCDB stx <$88 | |
bls L_BCF3 | |
L_BCE5 ldd <$20,x | |
bcs L_BCE5 | |
bsr L_BCA0 ; $bca0: Clear VDU line from cursor posn (CoCo $a323) | |
L_BCF3 puls a,b,x,pc | |
L_BCF5 pshs b ; $bcf5-$bd09: %TXLPCH% Low level routine to print char in A (CoCo $) | |
L_BCF7 ldb >$ff22 ; $bcf5-$bd09: %TXLPCH% Low level routine to print char in A (CoCo $) | |
bcs L_BCF7 ; $bcf5-$bd09: %TXLPCH% Low level routine to print char in A (CoCo $) | |
L_BD0A ldx #$014a ; $bd0a: PCRLF: moves print head to next line | |
L_BD0F tstb | |
beq L_BD19 | |
bsr L_BCF5 ; $bcf5-$bd09: %TXLPCH% Low level routine to print char in A (CoCo $) | |
bra L_BD0F | |
L_BD19 rts | |
L_BD1A pshs a,b,x ; $bd1a: Send char in A to printer, JMPd to from $800f (CoCo $a2bf) D64 - This routine uses Y as well and is source of a bug in the Clear-J fn of Visitext Word-Pro. | |
beq L_BD33 | |
bcs L_BD26 | |
L_BD26 bsr L_BCF5 | |
bcs L_BD3F | |
bne L_BD3D | |
L_BD33 tst <$9c | |
bne L_BD3B | |
bsr L_BCF5 ; $bcf5-$bd09: %TXLPCH% Low level routine to print char in A (CoCo $) | |
L_BD3B bsr L_BD0A | |
L_BD3D clr <$9c | |
L_BD3F puls a,b,x,pc | |
L_BD41 ldu #$ff01 ; $bd41-$bd51: %SNDSEL% Selects Analogue Mux channel from B. Used to read Joysticks or set sound channel (CoCo $a9a2) 0x00 DAC / Right Joystick, x-axis 0x01 Cassette / Right Joystick, y-axis 0x02 Cartridge / Left Joystick, x-axis 0x03 Unused / Left Joystick, y-axis See also $baf1-bb01 | |
bsr L_BD46 ; $bd41-$bd51: %SNDSEL% Selects Analogue Mux channel from B. Used to read Joysticks or set sound channel (CoCo $a9a2) 0x00 DAC / Right Joystick, x-axis 0x01 Cassette / Right Joystick, y-axis 0x02 Cartridge / Left Joystick, x-axis 0x03 Unused / Left Joystick, y-axis See also $baf1-bb01 | |
L_BD46 lda ,u ; $bd41-$bd51: %SNDSEL% Selects Analogue Mux channel from B. Used to read Joysticks or set sound channel (CoCo $a9a2) 0x00 DAC / Right Joystick, x-axis 0x01 Cassette / Right Joystick, y-axis 0x02 Cartridge / Left Joystick, x-axis 0x03 Unused / Left Joystick, y-axis See also $baf1-bb01 | |
bcc L_BD4F ; $bd41-$bd51: %SNDSEL% Selects Analogue Mux channel from B. Used to read Joysticks or set sound channel (CoCo $a9a2) 0x00 DAC / Right Joystick, x-axis 0x01 Cassette / Right Joystick, y-axis 0x02 Cartridge / Left Joystick, x-axis 0x03 Unused / Left Joystick, y-axis See also $baf1-bb01 | |
L_BD4F sta ,u++ ; $bd41-$bd51: %SNDSEL% Selects Analogue Mux channel from B. Used to read Joysticks or set sound channel (CoCo $a9a2) 0x00 DAC / Right Joystick, x-axis 0x01 Cassette / Right Joystick, y-axis 0x02 Cartridge / Left Joystick, x-axis 0x03 Unused / Left Joystick, y-axis See also $baf1-bb01 | |
L_BD52 leas -3,s ; $bd52: %JOYIN% Reads Joysticks updates $015a-015d, JMPd to from $8012 (CoCo $a9de) | |
L_BD59 lda #$0a | |
bsr L_BD41 ; $bd41-$bd51: %SNDSEL% Selects Analogue Mux channel from B. Used to read Joysticks or set sound channel (CoCo $a9a2) 0x00 DAC / Right Joystick, x-axis 0x01 Cassette / Right Joystick, y-axis 0x02 Cartridge / Left Joystick, x-axis 0x03 Unused / Left Joystick, y-axis See also $baf1-bb01 | |
L_BD5F ldd #$4080 | |
L_BD62 sta ,s | |
bmi L_BD70 | |
bra L_BD72 | |
L_BD70 addb ,s | |
L_BD72 lsra | |
bne L_BD62 | |
beq L_BD81 | |
bne L_BD5F | |
L_BD81 stb ,-x | |
bpl L_BD59 | |
L_BD8A inc <$82 ; $bd8a-$bd90: Increments $0082, samples Cassette input bit into CC.C | |
L_BD91 clr <$82 ; $bd91-$bd9d: Sub | |
bne L_BD9E ; $bd9e: Sub | |
L_BD97 bsr L_BDA0 ; $bd91-$bd9d: Sub, $bd97-$bd9d: Sub | |
L_BD99 bsr L_BD8A ; $bd91-$bd9d: Sub, $bd97-$bd9d: Sub, $bd99-$bd9d: Sub | |
bcc L_BD99 ; $bd91-$bd9d: Sub, $bd97-$bd9d: Sub, $bd99-$bd9d: Sub | |
L_BD9E bsr L_BD99 ; $bd9e: Sub | |
L_BDA0 bsr L_BD8A ; $bda0: Sub | |
bcs L_BDA0 ; $bda0: Sub | |
L_BDA5 bsr L_BD91 ; $bda5: %BITIN% Get one bit from cassette to CC.C, JMPd to from $8027 (CoCo $a755) | |
L_BDAD lda #$08 ; $bdad: %CBIN% Input byte from cassette into A, JMPd to from $8024 (CoCo $a749) | |
L_BDB1 bsr L_BDA5 | |
bne L_BDB1 | |
L_BDB9 clr <$82 ; $bdb9: Sub | |
bsr L_BDA0 ; $bda0: Sub | |
bra L_BDC3 | |
L_BDBF clr <$82 ; $bdbf: Sub | |
L_BDC0 equ L_BDBF + 1 | |
bsr L_BD99 ; $bd91-$bd9d: Sub, $bd97-$bd9d: Sub, $bd99-$bd9d: Sub | |
L_BDC3 ldb <$82 | |
bhi L_BDCC | |
L_BDCC clr <$83 | |
L_BDCF lda >$ff21 ; $bdcf-$bddb: %CASON% Motor on - Turns on relay, loads X with delay value from $0095:0096 (0xda5c) then LBRAs to $bbc8, JMPd to from $8015 (CoCo $a7ca) | |
lbra L_BBC8 ; $bbb5-$bbcc: Flashes cursor, JMPd to from $8009 (CoCo $a199), $bbc5-$bbcc: Decrements X from 0x045e, gives 1ms delay, $bbc8-$bbcc: Decrements X until 0 then returns | |
L_BDDC lda >$ff21 ; $bddc-$bde6: %CASOFF% Motor off - turns relay off, re-enables FIRQ, IRQ, JMPd to from $8018 (CoCo $a7eb) | |
L_BDE7 orcc #$50 ; $bde7: %CSRDON% Read Leader - Disables FIRQ, IRQ, Cassette on, init for reading, JMPd to from $8021 (CoCo $a77c) | |
bsr L_BDCF ; $bdcf-$bddb: %CASON% Motor on - Turns on relay, loads X with delay value from $0095:0096 (0xda5c) then LBRAs to $bbc8, JMPd to from $8015 (CoCo $a7ca) | |
L_BDED bsr L_BD97 | |
L_BDEF bsr L_BDB9 | |
bhi L_BDFF | |
L_BDF3 bsr L_BDBF | |
bcs L_BE03 | |
bra L_BE0D | |
L_BDFF bsr L_BDBF | |
bhi L_BDEF | |
L_BE03 bsr L_BDB9 | |
bcs L_BDF3 | |
L_BE0D bne L_BDED | |
L_BE12 pshs a ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
L_BE16 ldy #$be44 ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
bne L_BE30 ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
L_BE23 lda ,y+ ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
cmpy #L_BE68 ; $be68-$be7a: %WRTLDR% disables FIRQ, IRQ, turns on cassette, writes number of leader bytes = 0x55 according to $0090:0091 (d32 0x0080), JMPd to from $801b Pre: B,Y Des: CC,A,X Ret: X=0x0000,A=0x55 | |
bcc L_BE3D ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
bra L_BE23 ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
L_BE30 lda ,y++ ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
cmpy #L_BE68 ; $be68-$be7a: %WRTLDR% disables FIRQ, IRQ, turns on cassette, writes number of leader bytes = 0x55 according to $0090:0091 (d32 0x0080), JMPd to from $801b Pre: B,Y Des: CC,A,X Ret: X=0x0000,A=0x55 | |
bcc L_BE3D ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
bra L_BE30 ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
L_BE3D sta <$85 ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
bcc L_BE16 ; $be12-$be43: %CBOUT% Output byte in A to cassette, JMPd to from $801e (CoCo $a82a) | |
eora L_A890 | |
fcb $10,$20,$30,$40 ; lbra L_EEA6 | |
L_BE67 lsl -12,y ; $be44-$be67: 36 bytes of Sine Wave data in upper 5 bits of each byte. | |
L_BE68 equ L_BE67 + 1 ; $be68-$be7a: %WRTLDR% disables FIRQ, IRQ, turns on cassette, writes number of leader bytes = 0x55 according to $0090:0091 (d32 0x0080), JMPd to from $801b Pre: B,Y Des: CC,A,X Ret: X=0x0000,A=0x55 | |
bcc L_BE85 ; $be7b-$be97: D64 - Read byte from serial port to A, JMPd to from $802a, $be7f-$bfef: D32 - Unused area, all 0x00 | |
lbsr L_BDCF ; $bdcf-$bddb: %CASON% Motor on - Turns on relay, loads X with delay value from $0095:0096 (0xda5c) then LBRAs to $bbc8, JMPd to from $8015 (CoCo $a7ca) | |
L_BE73 bsr L_BE12 ; $be68-$be7a: %WRTLDR% disables FIRQ, IRQ, turns on cassette, writes number of leader bytes = 0x55 according to $0090:0091 (d32 0x0080), JMPd to from $801b Pre: B,Y Des: CC,A,X Ret: X=0x0000,A=0x55 | |
bne L_BE73 ; $be68-$be7a: %WRTLDR% disables FIRQ, IRQ, turns on cassette, writes number of leader bytes = 0x55 according to $0090:0091 (d32 0x0080), JMPd to from $801b Pre: B,Y Des: CC,A,X Ret: X=0x0000,A=0x55 | |
L_BE7B rts ; $be7b: D32 - JMPd to from $802a (RTS), $be7b-$be97: D64 - Read byte from serial port to A, JMPd to from $802a | |
L_BE7C rts ; $be7b-$be97: D64 - Read byte from serial port to A, JMPd to from $802a, $be7c: D32 - JMPd to from $802d (RTS) | |
L_BE7D comb ; $be7b-$be97: D64 - Read byte from serial port to A, JMPd to from $802a, $be7d-$be7e: D32 - JMPd to from $8030 (COMB; RTS) | |
L_BE85 fcb $4e ; $be7b-$be97: D64 - Read byte from serial port to A, JMPd to from $802a, $be7f-$bfef: D32 - Unused area, all 0x00 | |
bra L_BEBB ; $be7f-$bfef: D32 - Unused area, all 0x00, $bea6-$bebd: D64 - Set baud rate in B, JMPd to from $8030 | |
bra L_BEE6 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bra L_BEEE ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bra L_BEF3 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bra L_BEF2 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bra L_BF01 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
bra L_BEFA ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bra L_BEEC ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEBA leax -16,y ; $be7f-$bfef: D32 - Unused area, all 0x00, $bea6-$bebd: D64 - Set baud rate in B, JMPd to from $8030 | |
L_BEBB equ L_BEBA + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bea6-$bebd: D64 - Set baud rate in B, JMPd to from $8030 | |
L_BECF neg <$8d ; $be7f-$bfef: D32 - Unused area, all 0x00, $bec5-$beda: D64 - Key scan which pauses printer during printing {8} | |
L_BED0 equ L_BECF + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bec5-$beda: D64 - Key scan which pauses printer during printing {8} | |
bsr L_BF06 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
bsr L_BF06 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
L_BEE5 ldu #$0549 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEE6 equ L_BEE5 + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bsr L_BF06 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
L_BEEA jsr L_BBE5 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEEC equ L_BEEA + 2 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEED beq L_BEEA ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEEE equ L_BEED + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEF1 cmpa #$42 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEF2 equ L_BEF1 + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEF3 beq L_BEFE ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
bne L_BEEA ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEF9 bsr L_BF03 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BEFA equ L_BEF9 + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
lbra L_C002 | |
L_BEFE bsr L_BF03 ; $be7f-$bfef: D32 - Unused area, all 0x00 | |
L_BF00 lbra L_B43C ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
L_BF01 equ L_BF00 + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
L_BF03 lbra L_BA77 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
L_BF06 stu <$88 ; $be7f-$bfef: D32 - Unused area, all 0x00, $beff-$bf0b: D64 - Patched into Software init to CLR $03fd-03ff | |
lbra L_90E5 ; $90e5: Out String: Prints ASCIIZ string ptd to by X to DEVN (CoCo $b99c) | |
bra L_BF5E ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
bvs L_BF39 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf20-$bf48: D64 - IRQ routine which can be hooked in D32 mode to provide 64 mode style auto-repeat and serial support | |
bra L_BF61 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
bvs L_BF48 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf20-$bf48: D64 - IRQ routine which can be hooked in D32 mode to provide 64 mode style auto-repeat and serial support | |
bra L_BF72 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
L_BF38 neg <$00 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf20-$bf48: D64 - IRQ routine which can be hooked in D32 mode to provide 64 mode style auto-repeat and serial support | |
L_BF39 equ L_BF38 + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf20-$bf48: D64 - IRQ routine which can be hooked in D32 mode to provide 64 mode style auto-repeat and serial support | |
L_BF48 neg <$00 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf20-$bf48: D64 - IRQ routine which can be hooked in D32 mode to provide 64 mode style auto-repeat and serial support | |
L_BF5E neg <$00 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
L_BF60 neg <$00 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
L_BF61 equ L_BF60 + 1 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
L_BF72 neg <$00 ; $be7f-$bfef: D32 - Unused area, all 0x00, $bf5a-$bfe8: D64 - Bootstrap routine code copied to $01da-0268 | |
bra L_C01C | |
L_C002 equ $c002 | |
L_C01C equ $c01c | |
L_C463 equ $c463 | |
L_EEA6 equ $eea6 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment