diff --git a/aim65.cfg b/aim65.cfg new file mode 100644 index 0000000..72359b4 --- /dev/null +++ b/aim65.cfg @@ -0,0 +1,19 @@ +MEMORY { + ZP: start = $0000, size = $0100, type = rw; + BASROM: start = $B000, size = $2000, fill = no, file = %O; + DUMMY: start = $0000, size = $00FF, file = ""; +} + +SEGMENTS { + ZEROPAGE: load = ZP, type = zp; + HEADER: load = BASROM, type = ro; + VECTORS: load = BASROM, type = ro; + KEYWORDS: load = BASROM, type = ro; + ERROR: load = BASROM, type = ro; + CODE: load = BASROM, type = ro; + CHRGET: load = BASROM, type = ro; + INIT: load = BASROM, type = ro; + EXTRA: load = BASROM, type = ro; + DUMMY: load = DUMMY; # don't include +} + diff --git a/aim65_extra.s b/aim65_extra.s new file mode 100644 index 0000000..b76891e --- /dev/null +++ b/aim65_extra.s @@ -0,0 +1,5 @@ +.segment "EXTRA" + +LCFFA: + jsr CHRGOT + jmp LB89D \ No newline at end of file diff --git a/aim65_iscntc.s b/aim65_iscntc.s new file mode 100644 index 0000000..1d519b2 --- /dev/null +++ b/aim65_iscntc.s @@ -0,0 +1,18 @@ +.segment "CODE" +ISCNTC: + lda DRA2 + pha + lda #$7f + sta DRA2 + pha + pla + lda DRB2 + rol a + pla + sta DRA2 + bcs RET2 + + jsr GETKEY + lda #$03 + cmp #$03 +;!!! runs into "STOP" \ No newline at end of file diff --git a/aim65_loadsave.s b/aim65_loadsave.s new file mode 100644 index 0000000..b239321 --- /dev/null +++ b/aim65_loadsave.s @@ -0,0 +1,51 @@ +.segment "CODE" + +SAVE: + pha + jsr WHEREO + jsr OUTSP + lda #$ff + jmp LB4BF + +MONRDKEY: + lda INFLG + jsr COUT5 + bne LOAD2 + jmp INALL +LOAD2: + jmp CUREAD + +MONCOUT: + pha + lda OUTFLG + jsr COUT5 + bne COUT3 + pla + jmp OUTALL + +COUT3: + pla + cmp #LF + beq COUT6 + cmp #CR + beq COUT4 + jmp OUTPUT +COUT4: + jsr CRCK + lda #CR + rts + +COUT5: + cmp #$54 + beq COUT6 + cmp #$55 + beq COUT6 + cmp #$4C +COUT6: + rts + +MONRDKEY2: + jsr ROONEK + tya + beq COUT5 + jmp GETKY diff --git a/defines.s b/defines.s index 0eac6a5..28e27dc 100644 --- a/defines.s +++ b/defines.s @@ -19,6 +19,9 @@ KBD := 1 .elseif .def(microtan) MICROTAN := 1 .include "defines_microtan.s" +.elseif .def(aim65) +AIM65 := 1 +.include "defines_aim65.s" .endif .ifdef CONFIG_2C @@ -42,6 +45,7 @@ CONFIG_10A := 1 .ifdef CONFIG_SMALL BYTES_FP := 4 +CONFIG_SMALL_ERROR := 1 .else BYTES_FP := 5 .endif @@ -60,6 +64,9 @@ MAX_EXPON = 10 .endif STACK := $0100 +.ifndef STACK2 +STACK2 := STACK +.endif .ifdef INPUTBUFFER .if INPUTBUFFER >= $0100 diff --git a/defines_aim65.s b/defines_aim65.s new file mode 100644 index 0000000..7811c07 --- /dev/null +++ b/defines_aim65.s @@ -0,0 +1,59 @@ +; configuration +CONFIG_2A := 1 + +CONFIG_NULL := 1 +CONFIG_PRINT_CR := 1 ; print CR when line end reached +CONFIG_SAFE_NAMENOTFOUND := 1 +CONFIG_SCRTCH_ORDER := 1 +CONFIG_PEEK_SAVE_LINNUM := 1 +CONFIG_SMALL_ERROR := 1 + +; zero page +ZP_START1 = $00 +ZP_START2 = $10 +ZP_START3 = $06 +ZP_START4 = $5E + +;extra ZP variables +USR := $03 +TXPSV := LASTOP + +NULL := IQERR + +; inputbuffer +INPUTBUFFER := $0016 + +;extra stack +STACK2 := $0200 + +; constants +STACK_TOP := $FD +SPACE_FOR_GOSUB := $44 +NULL_MAX := $F2 ; probably different in original version; the image I have seems +CRLF_1 := CR +CRLF_2 := LF +WIDTH := 20 +WIDTH2 := 10 + +; memory layout +RAMSTART2 := $0211 + +; monitor functions +PRIFLG := $A411 +INFLG := $A412 +OUTFLG := $A413 +DRA2 := $A480 +DRB2 := $A482 + +DU13 := $E520 +PSLS := $E7DC +LOAD := $E848 +WHEREO := $E871 +OUTPUT := $E97A +INALL := $E993 +OUTALL := $E9BC +CRCK := $EA24 +GETKEY := $EC40 +GETKY := $EC43 +ROONEK := $ECEF +CUREAD := $FE83 \ No newline at end of file diff --git a/error.s b/error.s index aa184e2..edaf6f2 100644 --- a/error.s +++ b/error.s @@ -1,6 +1,6 @@ init_error_table -.ifdef CONFIG_SMALL +.ifdef CONFIG_SMALL_ERROR define_error ERR_NOFOR, "NF" define_error ERR_SYNTAX, "SN" define_error ERR_NOGOSUB, "RG" diff --git a/extra.s b/extra.s index f6b80a5..8d99dc9 100644 --- a/extra.s +++ b/extra.s @@ -18,4 +18,8 @@ .ifdef MICROTAN .include "microtan_extra.s" +.endif + +.ifdef AIM65 +.include "aim65_extra.s" .endif \ No newline at end of file diff --git a/float.s b/float.s index 220e1fd..f555d1b 100644 --- a/float.s +++ b/float.s @@ -1428,7 +1428,7 @@ FOUT1: bpl L3C73 lda #$2D L3C73: - sta $FF,y + sta STACK2-1,y sta FACSIGN sty STRNG2 iny @@ -1509,12 +1509,12 @@ L3CDF: ldy STRNG2 lda #$2E iny - sta $FF,y + sta STACK2-1,y txa beq L3CF0 lda #$30 iny - sta $FF,y + sta STACK2-1,y L3CF0: sty STRNG2 ; ---------------------------------------------------------------------------- @@ -1564,12 +1564,12 @@ L3D23: iny tax and #$7F - sta $FF,y + sta STACK2-1,y dec INDX bne L3D3E lda #$2E iny - sta $FF,y + sta STACK2-1,y L3D3E: sty STRNG2 ldy VARPNT @@ -1591,7 +1591,7 @@ L3D3E: LDD96: ldy STRNG2 L3D4E: - lda $FF,y + lda STACK2-1,y dey cmp #$30 beq L3D4E @@ -1609,9 +1609,9 @@ L3D5B: tax lda #$2D L3D6B: - sta STACK+1,y + sta STACK2+1,y lda #$45 - sta STACK,y + sta STACK2,y txa ldx #$2F sec @@ -1620,20 +1620,20 @@ L3D77: sbc #$0A bcs L3D77 adc #$3A - sta STACK+3,y + sta STACK2+3,y txa - sta STACK+2,y + sta STACK2+2,y lda #$00 - sta STACK+4,y + sta STACK2+4,y beq L3D94 FOUT4: - sta $FF,y + sta STACK2-1,y L3D8F: lda #$00 - sta STACK,y + sta STACK2,y L3D94: - lda #$00 - ldy #$01 + lda #STACK2 rts ; ---------------------------------------------------------------------------- diff --git a/flow1.s b/flow1.s index 593e814..1fdbd3b 100644 --- a/flow1.s +++ b/flow1.s @@ -299,6 +299,7 @@ LE68E: rts .endif +.ifndef AIM65 .if .def(CONFIG_NULL) || .def(CONFIG_PRINTNULLS) ; CBM1 has the keyword removed, ; but the code is still here @@ -319,3 +320,4 @@ CLEAR: bne RET1 jmp CLEARC .endif +.endif diff --git a/header.s b/header.s index 10ef261..879cd4c 100644 --- a/header.s +++ b/header.s @@ -3,3 +3,8 @@ jmp LE68C .byte $00,$13,$56 .endif +.ifdef AIM65 + jmp COLD_START + jmp RESTART + .word AYINT,GIVAYF +.endif diff --git a/init.s b/init.s index 3dbc919..eacf244 100644 --- a/init.s +++ b/init.s @@ -10,9 +10,11 @@ FNDLIN2: PR_WRITTEN_BY: .ifndef KBD .ifndef CONFIG_CBM_ALL + .ifndef AIM65 lda #QT_WRITTEN_BY jsr STROUT + .endif .endif .endif COLD_START: @@ -34,6 +36,8 @@ COLD_START: .endif .ifdef CONFIG_NO_INPUTBUFFER_ZP ldx #$FB + .elseif .def(AIM65) + ldx #$FE .endif txs .ifndef CONFIG_CBM_ALL @@ -41,6 +45,7 @@ COLD_START: ldy #>COLD_START sta GORESTART+1 sty GORESTART+2 + .ifndef AIM65 sta GOSTROUT+1 sty GOSTROUT+2 lda #GIVAYF sta GOGIVEAYF sty GOGIVEAYF+1 + .endif .endif lda #$4C .ifdef CONFIG_CBM_ALL sta JMPADRS .endif sta GORESTART + .ifdef AIM65 + sta JMPADRS + sta ATN + sta GOSTROUT + .else .ifndef CONFIG_CBM_ALL sta GOSTROUT sta JMPADRS @@ -64,6 +75,7 @@ COLD_START: .if (!.def(CONFIG_RAM)) && (!.def(CONFIG_CBM_ALL)) sta USR .endif + .endif .ifndef CONFIG_RAM .ifdef APPLE @@ -73,8 +85,15 @@ COLD_START: lda #IQERR .endif + .ifdef AIM65 + sta ATN+1 + sty ATN+2 + sta GOSTROUT+1 + sty GOSTROUT+2 + .else sta USR+1 sty USR+2 + .endif .endif .ifndef CBM1 lda #WIDTH @@ -82,7 +101,7 @@ COLD_START: lda #WIDTH2 sta Z18 .endif -.endif /* KBD */ +.endif ; All non-CONFIG_SMALL versions of BASIC have ; the same bug here: While the number of bytes @@ -125,19 +144,23 @@ L4098: sta CURDVC .endif sta LASTPT+1 + .ifndef AIM65 .if .defined(CONFIG_NULL) || .defined(CONFIG_PRINTNULLS) sta Z15 .endif + .endif .ifndef CONFIG_11 sta POSX .endif pha sta Z14 .ifndef CBM2 + .ifndef AIM65 .ifndef MICROTAN lda #$03 sta DSCLEN .endif + .endif .ifndef CONFIG_11 lda #$2C sta LINNUM+1 @@ -168,8 +191,10 @@ L4098: stx TXTPTR sty TXTPTR+1 jsr CHRGET + .ifndef AIM65 cmp #$41 beq PR_WRITTEN_BY + .endif tay bne L40EE .endif @@ -202,6 +227,12 @@ L40D7: ; optimized version of the CBM1 code bmi L40FA .endif +.if .def(AIM65) +; AIM65: hard RAM top limit is $A000 + lda LINNUM+1 + cmp #$A0 + beq L40FA +.endif L40DD: .ifdef CONFIG_2 lda #$55 ; 01010101 / 10101010 @@ -236,7 +267,7 @@ L40FA: ldy LINNUM+1 sta MEMSIZ sty MEMSIZ+1 -.ifndef MICROTAN +.if !(.def(MICROTAN) || .def(AIM65)) sta FRETOP sty FRETOP+1 .endif @@ -267,10 +298,18 @@ L4106: L2829: sta Z17 L4129: + .ifdef AIM65 + sbc #$0A + .else sbc #$0E + .endif bcs L4129 eor #$FF + .ifdef AIM65 + sbc #$08 + .else sbc #$0C + .endif clc adc Z17 sta Z18 @@ -355,6 +394,12 @@ L4192: .endif .ifdef CONFIG_CBM_ALL jmp RESTART +.elseif .def(AIM65) + lda #CRDO + sta GORESTART+1 + sty GORESTART+2 + jmp RESTART .else lda #STROUT @@ -379,6 +424,7 @@ QT_WANT: .endif QT_WRITTEN_BY: .ifndef CONFIG_CBM_ALL + .ifndef AIM65 .ifdef APPLE asc80 "COPYRIGHT 1977 BY MICROSOFT CO" .byte CR,0 @@ -391,11 +437,15 @@ QT_WRITTEN_BY: .endif .byte CR,LF,0 .endif + .endif QT_MEMORY_SIZE: .byte "MEMORY SIZE" .byte 0 QT_TERMINAL_WIDTH: - .byte "TERMINAL WIDTH" + .ifndef AIM65 + .byte "TERMINAL " + .endif + .byte "WIDTH" .byte 0 .endif QT_BYTES_FREE: @@ -418,6 +468,9 @@ QT_BASIC: .ifdef MICROTAN .byte "MICROTAN BASIC" .endif + .ifdef AIM65 + .byte " AIM 65 BASIC V1.1" + .endif .ifdef CBM1 .byte $13 ; HOME .byte "*** COMMODORE BASIC ***" @@ -435,9 +488,15 @@ QT_BASIC: .byte CR,LF .ifdef MICROTAN .byte "(C) 1980 MICROSOFT" + .elseif .def(AIM65) + .byte 0 + .byte "(C) 1978 MICROSOFT" .else .byte "COPYRIGHT 1977 BY MICROSOFT CO." .endif - .byte CR,LF,0 + .byte CR,LF + .ifndef AIM65 + .byte 0 + .endif .endif -.endif /* KBD */ +.endif diff --git a/inline.s b/inline.s index 5c591da..3599520 100644 --- a/inline.s +++ b/inline.s @@ -6,7 +6,15 @@ L2420: jsr OUTDO .endif dex + .ifdef AIM65 + bmi L2423 + jsr PSLS + jmp INLIN2 +LB35F: + jsr OUTDO + .else bpl INLIN2 + .endif L2423: .ifdef OSI jsr OUTDO @@ -39,6 +47,13 @@ L0C32: ldx #$00 INLIN2: jsr GETLN + .ifdef AIM65 + cmp #$1A + bne INLINAIM + jsr DU13 + jmp INLIN +INLINAIM: + .endif .ifndef CONFIG_NO_LINE_EDITING cmp #$07 beq L2443 @@ -47,14 +62,25 @@ INLIN2: beq L2453 .ifndef CONFIG_NO_LINE_EDITING cmp #$20 + .ifdef AIM65 + bcc L244E + .else bcc INLIN2 + .endif .ifdef MICROTAN cmp #$80 .else + .ifdef AIM65 + cmp #$7F + beq L2420 + .endif cmp #$7D .endif bcs INLIN2 cmp #$40 ; @ + .ifdef AIM65 + beq LB35F + .else beq L2423 .ifdef MICROTAN cmp #$7F ; DEL @@ -62,6 +88,7 @@ INLIN2: cmp #$5F ; _ .endif beq L2420 + .endif L2443: .ifdef MICROTAN cpx #$4F @@ -73,6 +100,9 @@ L2443: sta INPUTBUFFER,x inx .ifdef OSI + .byte $2C + .elseif .def(AIM65) + .byte $2C .else bne INLIN2 @@ -80,6 +110,7 @@ L2443: L244C: .ifndef CONFIG_NO_LINE_EDITING lda #$07 ; BEL +L244E: jsr OUTDO bne INLIN2 .endif @@ -115,7 +146,7 @@ GETLN: nop and #$7F .endif - .endif /* APPLE */ + .endif .ifdef APPLE RDKEY: jsr LFD0C @@ -130,4 +161,4 @@ RDKEY: pla L2465: rts -.endif /* KBD */ +.endif diff --git a/input.s b/input.s index ed52b07..720eb3e 100644 --- a/input.s +++ b/input.s @@ -111,6 +111,11 @@ LCAE0: INPUT: .ifndef KBD lsr Z14 +.endif +.ifdef AIM65 + lda PRIFLG + sta ZBE + jsr LCFFA .endif cmp #$22 bne L2A9E @@ -231,6 +236,8 @@ PROCESS_INPUT_ITEM: bvc L2AF0 .ifdef MICROTAN jsr MONRDKEY2 + .elseif .def(AIM65) + jsr MONRDKEY2 .else jsr MONRDKEY .endif @@ -392,6 +399,9 @@ INPDONE: jmp SETDA L2B94: ldy #$00 +.ifdef AIM65 + jsr LB8B1 +.endif lda (INPTR),y beq L2BA1 .ifdef CONFIG_FILE diff --git a/iscntc.s b/iscntc.s index 61182e8..7b2d822 100644 --- a/iscntc.s +++ b/iscntc.s @@ -20,4 +20,7 @@ .ifdef MICROTAN .include "microtan_iscntc.s" .endif +.ifdef AIM65 +.include "aim65_iscntc.s" +.endif ;!!! runs into "STOP" \ No newline at end of file diff --git a/loadsave.s b/loadsave.s index e897c7b..63607fd 100644 --- a/loadsave.s +++ b/loadsave.s @@ -9,3 +9,6 @@ .ifdef MICROTAN .include "microtan_loadsave.s" .endif +.ifdef AIM65 +.include "aim65_loadsave.s" +.endif \ No newline at end of file diff --git a/make.sh b/make.sh index f542d65..2ab6568 100644 --- a/make.sh +++ b/make.sh @@ -2,7 +2,7 @@ if [ ! -d tmp ]; then mkdir tmp fi -for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan; do +for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan aim65; do echo $i ca65 -D $i msbasic.s -o tmp/$i.o && diff --git a/message.s b/message.s index 5a36568..726b21f 100644 --- a/message.s +++ b/message.s @@ -30,6 +30,7 @@ OKPRT: rts nop .else + .ifndef AIM65 QT_OK: .ifdef CONFIG_CBM_ALL .byte CR,LF,"READY.",CR,LF @@ -42,15 +43,15 @@ QT_OK: .endif .endif .byte 0 + .endif .endif - QT_BREAK: .ifdef KBD .byte CR,LF," Brk" .byte 0 .byte $54,$D0 ; ??? -.elseif .def(MICROTAN) +.elseif .def(MICROTAN) || .def(AIM65) .byte CR,LF," BREAK" .byte 0 .else diff --git a/misc1.s b/misc1.s index 86bb5d1..6107f25 100644 --- a/misc1.s +++ b/misc1.s @@ -203,7 +203,17 @@ L2963: iny lda (DSCPTR),y sta (FORPNT),y +RET5: rts +.ifdef AIM65 +LB89D: + cmp #$21 + bne RET5 + lda #$80 + sta PRIFLG + jmp CHRGET +.endif + .ifdef CONFIG_FILE PRINTH: jsr CMD diff --git a/orig/aim65.bin b/orig/aim65.bin new file mode 100644 index 0000000..37742c4 Binary files /dev/null and b/orig/aim65.bin differ diff --git a/poke.s b/poke.s index 1a7e1ea..23b96d3 100644 --- a/poke.s +++ b/poke.s @@ -115,4 +115,4 @@ L362C: beq L362C RTS3: rts -.endif /* KBD */ +.endif diff --git a/print.s b/print.s index 864e52c..36c74f1 100644 --- a/print.s +++ b/print.s @@ -1,5 +1,16 @@ .segment "CODE" +.ifdef AIM65 +PRINT: + lda PRIFLG + sta ZBE + jsr L297E +LB8B1: + lda ZBE + sta PRIFLG + rts +.endif + PRSTRING: jsr STRPRT L297E: @@ -8,10 +19,16 @@ L297E: ; ---------------------------------------------------------------------------- ; "PRINT" STATEMENT ; ---------------------------------------------------------------------------- +.ifndef AIM65 PRINT: +.endif beq CRDO PRINT2: beq L29DD +.ifdef AIM65 + jsr LB89D + beq L29DD +.endif cmp #TOKEN_TAB beq L29F5 cmp #TOKEN_SPC @@ -119,6 +136,10 @@ PRINTNULLS: lda #$00 sta POSX eor #$FF +.elseif .def(AIM65) + lda #$00 + sta POSX + eor #$FF .else .if .def(CONFIG_NULL) || .def(CONFIG_PRINTNULLS) .ifdef CONFIG_FILE @@ -167,7 +188,7 @@ L29EA: .endif sec L29EB: -.ifdef CONFIG_CBM_ALL +.if .def(CONFIG_CBM_ALL) || .def(AIM65) sbc #$0A .else .ifdef KBD @@ -327,7 +348,10 @@ LCA6A: lda POSX cmp Z17 bne L2A4C - .ifdef APPLE + .ifdef AIM65 + lda #$00 + sta POSX + .elseif .def(APPLE) nop ; PATCH! nop ; don't print CR nop diff --git a/program.s b/program.s index 802c6fc..ca44cfd 100644 --- a/program.s +++ b/program.s @@ -32,12 +32,12 @@ LC366: jsr OUTQUES L2329: lda ERROR_MESSAGES,x -.ifndef CONFIG_SMALL +.ifndef CONFIG_SMALL_ERROR pha and #$7F .endif jsr OUTDO -.ifdef CONFIG_SMALL +.ifdef CONFIG_SMALL_ERROR lda ERROR_MESSAGES+1,x .ifdef KBD and #$7F @@ -79,6 +79,7 @@ LE28E: bpl RESTART .else lsr Z14 + .ifndef AIM65 lda #QT_OK .ifdef CONFIG_CBM_ALL @@ -86,6 +87,9 @@ LE28E: .else jsr GOSTROUT .endif + .else + jsr GORESTART + .endif L2351: jsr INLIN .endif @@ -639,9 +643,20 @@ LIST: L25A6: jsr CRDO .else + .ifdef AIM65 + pha + lda #$00 +LB4BF: + sta INPUTFLG + pla + .endif .ifdef MICROTAN php jmp LE21C ; patch +LC57E: + .elseif .def(AIM65) + php + jsr LINGET LC57E: .else bcc L2581 @@ -652,12 +667,12 @@ L2581: jsr LINGET .endif jsr FNDLIN - .ifdef MICROTAN + .if .def(MICROTAN) || .def(AIM65) plp beq L2598 .endif jsr CHRGOT - .ifdef MICROTAN + .if .def(MICROTAN) || .def(AIM65) beq L25A6 .else beq L2598 @@ -665,7 +680,7 @@ L2581: cmp #TOKEN_MINUS bne L2520 jsr CHRGET - .ifdef MICROTAN + .if .def(MICROTAN) || .def(AIM65) beq L2598 jsr LINGET beq L25A6 @@ -675,7 +690,7 @@ L2581: bne L2520 .endif L2598: - .ifndef MICROTAN + .if !(.def(MICROTAN) || .def(AIM65)) pla pla lda LINNUM @@ -686,7 +701,7 @@ L2598: sta LINNUM sta LINNUM+1 L25A6: - .ifdef MICROTAN + .if .def(MICROTAN) || .def(AIM65) pla pla .endif @@ -749,12 +764,22 @@ LA519: lda (LOWTRX),y stx LOWTRX sta LOWTRX+1 -.ifdef MICROTAN +.if .def(MICROTAN) || .def(AIM65) bne L25A6X .else bne L25A6 .endif L25E5: +.ifdef AIM65 + lda INPUTFLG + beq L25E5a + jsr CRDO + jsr CRDO + lda #$1a + jsr OUTDO + jsr $e50a +L25E5a: +.endif jmp RESTART L25E8: bpl L25CE diff --git a/regress.sh b/regress.sh index bbfcf00..2b81beb 100755 --- a/regress.sh +++ b/regress.sh @@ -5,7 +5,7 @@ if [ ! -d orig ]; then exit; fi -for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan; do +for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan aim65; do echo $i ca65 -D $i msbasic.s -o tmp/$i.o && diff --git a/string.s b/string.s index 499d4cd..ed49389 100644 --- a/string.s +++ b/string.s @@ -9,9 +9,13 @@ STR: pla pla LD353: - lda #$FF - ldy #$00 + lda #<(STACK2-1) + ldy #>(STACK2-1) +.if STACK2 > $0100 + bne STRLIT +.else beq STRLIT +.endif ; ---------------------------------------------------------------------------- ; GET SPACE AND MAKE DESCRIPTOR FOR STRING WHOSE @@ -85,6 +89,9 @@ L32B6: .ifdef CONFIG_NO_INPUTBUFFER_ZP beq LD399 cmp #>INPUTBUFFER +.elseif .def(AIM65) + beq LD399 + cmp #$01 .endif bne PUTNEW LD399: diff --git a/trig.s b/trig.s index 817a74a..12aa0fb 100644 --- a/trig.s +++ b/trig.s @@ -130,6 +130,7 @@ MICROSOFT: .endif .endif +.ifndef AIM65 ; ---------------------------------------------------------------------------- ; "ATN" FUNCTION ; ---------------------------------------------------------------------------- @@ -199,3 +200,4 @@ POLY_ATN: .if .def(CONFIG_11A) && (!.def(CONFIG_2)) .byte $00 ; XXX .endif +.endif \ No newline at end of file diff --git a/zeropage.s b/zeropage.s index cd30c91..4787d0d 100644 --- a/zeropage.s +++ b/zeropage.s @@ -180,6 +180,12 @@ SGNCPR = STRNG1 FACEXTENSION = STRNG1+1 STRNG2: .res 2 +.ifdef AIM65 +ATN: + .res 3 +ZBE: + .res 1 +.endif CHRGET: TXTPTR = <(GENERIC_TXTPTR-GENERIC_CHRGET + CHRGET) CHRGOT = <(GENERIC_CHRGOT-GENERIC_CHRGET + CHRGET)