From 560815ec481e2cd6bc52378752db91f8e5df4e5c Mon Sep 17 00:00:00 2001 From: Michael Steil Date: Mon, 13 Oct 2008 20:26:42 +0000 Subject: [PATCH] microtan work --- NOTES.txt | 2 +- array.s | 4 +-- defines.s | 3 ++ defines_cbm.s | 4 +++ defines_kbd.s | 1 + defines_microtan.s | 62 ++++++++++++++++++++++++++++++++++++++++ eval.s | 4 +-- float.s | 2 +- flow.s | 14 ++++----- init.s | 22 +++++++-------- input.s | 2 +- make.sh | 2 +- message.s | 3 ++ microtan.cfg | 19 +++++++++++++ misc2.s | 8 +++--- orig/microtan.bin | Bin 0 -> 6144 bytes print.s | 8 +++--- program.s | 69 +++++++++++++++++++++++++++++++++++---------- string.s | 10 +++---- token.s | 2 +- var.s | 2 +- 21 files changed, 187 insertions(+), 56 deletions(-) create mode 100644 defines_microtan.s create mode 100644 microtan.cfg create mode 100644 orig/microtan.bin diff --git a/NOTES.txt b/NOTES.txt index 28ef36f..823c8fd 100644 --- a/NOTES.txt +++ b/NOTES.txt @@ -3,5 +3,5 @@ Commodore BASIC 1 1977 Y Y CBM OSI BASIC 1977 1.0 REV 3.2 Y N - AppleSoft I 1977 1.1 N Y Apple CONFIG_11 KIM BASIC 1977 1.1 N Y - CONFIG_11A -Commodore BASIC 2 1979 Y Y CBM +Commodore BASIC 2 1979 Y Y CBM CONFIG_2 KBD BASIC 1980 Y N KBD diff --git a/array.s b/array.s index 93c0296..ed1d846 100644 --- a/array.s +++ b/array.s @@ -28,7 +28,7 @@ NEG32768: ; ---------------------------------------------------------------------------- MAKINT: jsr CHRGET -.ifdef CBM2_KBD +.ifdef CONFIG_2 jsr FRMEVL .else jsr FRMNUM @@ -39,7 +39,7 @@ MAKINT: ; MUST BE POSITIVE AND LESS THAN 32768 ; ---------------------------------------------------------------------------- MKINT: -.ifdef CBM2_KBD +.ifdef CONFIG_2 jsr CHKNUM .endif lda FACSIGN diff --git a/defines.s b/defines.s index fa2b9be..822d38e 100644 --- a/defines.s +++ b/defines.s @@ -16,6 +16,9 @@ CBM2 := 1 .elseif .def(kbdbasic) KBD := 1 .include "defines_kbd.s" +.elseif .def(microtan) +MICROTAN := 1 +.include "defines_microtan.s" .endif .ifdef CONFIG_SMALL diff --git a/defines_cbm.s b/defines_cbm.s index 6ec7664..b601978 100644 --- a/defines_cbm.s +++ b/defines_cbm.s @@ -13,7 +13,9 @@ CONFIG_INPUTBUFFER_ORDER := 1 ; ldx/ldy or ldy/ldx CONFIG_CBM_ALL := 1 CONFIG_11 := 1 CONFIG_11A := 1 +CONFIG_2 := 1 CBM2_KBD := 1 +CBM2_MICROTAN := 1 CBM2_KIM := 1 CBM2_APPLE := 1 CBM2_KIM_APPLE := 1 ; OUTDO difference @@ -25,6 +27,7 @@ CONFIG_DATAFLAG := 1 ; common: CONFIG_FILE := 1; support PRINT#, INPUT#, GET#, CMD CONFIG_NO_CR := 1; terminal doesn't need explicit CRs on line ends +CONFIG_NO_LINE_EDITING := 1; support for "@", "_", BEL etc. CRLF_1 := $0D CRLF_2 := $0A @@ -94,6 +97,7 @@ Z18 := $0007 GOGIVEAYF := $0008 Z03 := $000E;3 ; same LINNUM := $0011;0008 + Z96 := $00E8-82 POSX := $0118-82 TXPSV = LASTOP diff --git a/defines_kbd.s b/defines_kbd.s index 10264ab..ffee7b9 100644 --- a/defines_kbd.s +++ b/defines_kbd.s @@ -1,5 +1,6 @@ CONFIG_SCRTCH_ORDER := 1 CONFIG_SMALL := 1 +CONFIG_2 := 1 CBM2_KBD := 1 KIM_KBD := 1 CONFIG_11 := 1 diff --git a/defines_microtan.s b/defines_microtan.s new file mode 100644 index 0000000..554803e --- /dev/null +++ b/defines_microtan.s @@ -0,0 +1,62 @@ +KIM_KBD := 1 +CONFIG_11 := 1 +CONFIG_11A := 1 +CONFIG_SAFE_NAMENOTFOUND := 1 +CBM2_KIM_APPLE := 1 ; OUTDO difference +KIM_APPLE := 1 +CBM2_MICROTAN := 1 + +CONFIG_2 := 1 + +CONFIG_NULL := 1 +CONFIG_PRINT_CR := 1 ; print CR when line end reached + +CRLF_1 := $0D +CRLF_2 := $0A + +ZP_START = $85 + +JMPADRS = DSCLEN + 1 +LOWTRX = LOWTR + +Z00 := $0000 +L0001 := $0001 +L0002 := $0002 +GOWARM := $0003 +GOSTROUT := $0006 +GOGIVEAYF := $0008 + +CHARAC := $000A+$1A +ENDCHR := $000B+$1A +EOLPNTR := $000C+$1A +DIMFLG := $000D+$1A +VALTYP := $000E+$1A +DATAFLG := $0010+$1A +SUBFLG := $0011+$1A +INPUTFLG := $0012+$1A +CPRMASK := $0013+$1A +Z14 := $0014+$1A ; Ctrl+O flag +Z15 := $0015+$1A +POSX := $0016+$1A +Z17 := $0017+$1A +Z18 := $0018+$1A +LINNUM := $0019+$1A +TXPSV := $0019+$1A +INPUTBUFFER := $001B+$1A +INPUTBUFFERX := $0000 + +L1800 := $1800 +L1873 := $1873 +MONRDKEY := $1E5A +MONCOUT := $1EA0 + +STACK_TOP := $FE +SPACE_FOR_GOSUB := $3E +NULL_MAX := $F2 ; probably different in original version; the image I have seems to be modified; see PDF + + +RAMSTART2 := $AAAA +USR := $AAAA +SAVE := $AAAA +LOAD := $AAAA +LE21C := $AAAA \ No newline at end of file diff --git a/eval.s b/eval.s index 44f87f1..8123cc7 100644 --- a/eval.s +++ b/eval.s @@ -19,14 +19,14 @@ GERR: beq JERROR NEXT3: txs -.ifndef CBM2_KBD +.ifndef CONFIG_2 inx inx inx inx .endif txa -.ifdef CBM2_KBD +.ifdef CONFIG_2 clc adc #$04 pha diff --git a/float.s b/float.s index 6dca3e9..b4ed01b 100644 --- a/float.s +++ b/float.s @@ -1683,7 +1683,7 @@ DECTBL_END: .byte $FF,$FF,$FD,$A8 .byte $00,$00,$00,$3C .endif -.ifdef CBM2_KBD +.ifdef CONFIG_2 C_ZERO = CON_HALF + 2 .endif diff --git a/flow.s b/flow.s index 31e62a2..20d8d6e 100644 --- a/flow.s +++ b/flow.s @@ -82,13 +82,13 @@ NEWSTT: jsr ISCNTC lda TXTPTR ldy TXTPTR+1 -.ifdef CBM2_KBD +.ifdef CONFIG_2 cpy #>INPUTBUFFER .endif .ifdef CBM2 nop .endif -.ifdef CBM2_KBD +.ifdef CONFIG_2 beq LC6D4 .else beq L2683 @@ -112,7 +112,7 @@ LA5DC: ldy #$02 lda (TXTPTR),y clc -.ifdef CBM2_KBD +.ifdef CONFIG_2 jeq L2701 .else beq L2701 @@ -156,7 +156,7 @@ EXECUTE_STATEMENT1: bcc LET1 .endif cmp #NUM_TOKENS -.ifdef CBM2_KBD +.ifdef CONFIG_2 bcs LC721 .else bcs SYNERR1 @@ -177,7 +177,7 @@ COLON: SYNERR1: jmp SYNERR .endif -.ifdef CBM2_KBD +.ifdef CONFIG_2 LC721: .ifdef KBD cmp #$45 @@ -267,7 +267,7 @@ END2: bne RET1 lda TXTPTR ldy TXTPTR+1 -.ifdef CBM2_KBD +.ifdef CONFIG_2 ldx CURLIN+1 inx .endif @@ -444,7 +444,7 @@ L281E: POP: bne L281E lda #$FF -.ifdef CBM2_KBD +.ifdef CONFIG_2 sta FORPNT+1 ; bugfix, wrong in AppleSoft .else sta FORPNT diff --git a/init.s b/init.s index fe482c7..97f9d6c 100644 --- a/init.s +++ b/init.s @@ -95,7 +95,7 @@ COLD_START2: .endif sta Z18 .endif -.ifdef CBM2_KBD +.ifdef CONFIG_2 lda #$28 sta $0F lda #$1E @@ -116,7 +116,7 @@ L4098: sta STRNG2+1,x dex bne L4098 -.ifdef CBM2_KBD +.ifdef CONFIG_2 lda #$03 sta DSCLEN .endif @@ -135,7 +135,7 @@ L4098: .endif pha sta Z14 -.ifdef CBM2_KBD +.ifdef CONFIG_2 inx stx $01FD stx $01FC @@ -172,17 +172,17 @@ L4098: tay bne L40EE .endif -.ifndef CBM2_KBD +.ifndef CONFIG_2 lda #RAMSTART2 -.ifdef CBM2_KBD +.ifdef CONFIG_2 sta $28 sty $29 .endif sta LINNUM sty LINNUM+1 -.ifdef CBM2_KBD +.ifdef CONFIG_2 tay .else ldy #$00 @@ -196,11 +196,11 @@ L40D7: cmp #$80 beq L40FA .endif -.ifdef CBM2_KBD +.ifdef CONFIG_2 bmi L40FA .endif L40DD: -.ifdef CBM2_KBD +.ifdef CONFIG_2 lda #$55 .else lda #$92 @@ -317,7 +317,7 @@ L4183: tya sta (TXTTAB),y inc TXTTAB -.ifndef CBM2_KBD +.ifndef CONFIG_2 bne L4192 inc TXTTAB+1 L4192: @@ -325,7 +325,7 @@ L4192: lda TXTTAB ldy TXTTAB+1 jsr REASON -.ifdef CBM2_KBD +.ifdef CONFIG_2 lda #QT_BASIC jsr STROUT @@ -392,7 +392,7 @@ QT_BYTES_FREE: .ifndef CBM_APPLE .byte $0D,$0A,$0D,$0A .endif -.ifdef CBM2_KBD +.ifdef CONFIG_2 .byte $0D,$00 .endif .ifdef APPLE diff --git a/input.s b/input.s index b214830..dd33323 100644 --- a/input.s +++ b/input.s @@ -186,7 +186,7 @@ GETC: READ: ldx DATPTR ldy DATPTR+1 -.ifdef CBM2_KBD +.ifdef CONFIG_2 lda #$98 ; AppleSoft, too .byte $2C L2ABE: diff --git a/make.sh b/make.sh index 8722365..2bfff4b 100755 --- a/make.sh +++ b/make.sh @@ -1,5 +1,5 @@ # 1.0 -for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft; do +for i in cbmbasic1 cbmbasic2 kbdbasic osi kb9 applesoft microtan; do echo $i ca65 -D $i msbasic.s -o tmp/$i.o && diff --git a/message.s b/message.s index 90d1354..20c5085 100644 --- a/message.s +++ b/message.s @@ -47,6 +47,9 @@ QT_BREAK: .byte $54,$D0 ; ??? .else .byte $0D,$0A +.ifdef MICROTAN + .byte " " +.endif .byte "BREAK" .byte $00 .endif diff --git a/microtan.cfg b/microtan.cfg new file mode 100644 index 0000000..9ff8c96 --- /dev/null +++ b/microtan.cfg @@ -0,0 +1,19 @@ +MEMORY { + ZP: start = $0000, size = $0100, type = rw; + BASROM: start = $C000, size = $3F00, 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/misc2.s b/misc2.s index 6afdd8a..cd924db 100644 --- a/misc2.s +++ b/misc2.s @@ -49,7 +49,7 @@ ERRDIR: inx bne RTS9 ldx #ERR_ILLDIR -.ifdef CBM2_KBD +.ifdef CONFIG_2 .byte $2C LD288: ldx #ERR_UNDEFFN @@ -102,18 +102,18 @@ L31F3: pla sta FNCNAM+1 ldy #$02 -.ifndef CBM2_KBD +.ifndef CONFIG_2 ldx #ERR_UNDEFFN .endif lda (FNCNAM),y -.ifndef CBM2_KBD +.ifndef CONFIG_2 beq L31AF .endif sta VARPNT tax iny lda (FNCNAM),y -.ifdef CBM2_KBD +.ifdef CONFIG_2 beq LD288 .endif sta VARPNT+1 diff --git a/orig/microtan.bin b/orig/microtan.bin new file mode 100644 index 0000000000000000000000000000000000000000..f36c395cd0238e234dee0e49ea6250bbff8c9141 GIT binary patch literal 6144 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 Ta048|Myt`HZz@Xvf1m#bdoszn literal 0 HcmV?d00001 diff --git a/print.s b/print.s index 8a86469..aca67b3 100644 --- a/print.s +++ b/print.s @@ -15,7 +15,7 @@ PRINT2: cmp #TOKEN_TAB beq L29F5 cmp #TOKEN_SPC -.ifdef CBM2_KBD +.ifdef CONFIG_2 clc ; also AppleSoft II .endif beq L29F5 @@ -185,7 +185,7 @@ L29F5: jsr GTBYTC cmp #')' .ifdef CONFIG_11A - .ifdef CBM2_KBD + .ifdef CONFIG_2 bne SYNERR4 .else jne SYNERR @@ -289,7 +289,7 @@ OUTDO: bit Z14 bmi L2A56 .endif -.ifndef CBM2_KBD +.ifndef CONFIG_2 pha .endif .ifdef CBM1 @@ -335,7 +335,7 @@ L2A4C: inc POSX .endif L2A4E: -.ifndef CBM2_KBD +.ifndef CONFIG_2 pla .endif .ifdef KIM diff --git a/program.s b/program.s index 9d07ae6..87b4f22 100644 --- a/program.s +++ b/program.s @@ -202,7 +202,7 @@ L23AD: .endif ; ---------------------------------------------------------------------------- PUT_NEW_LINE: -.ifdef CBM2 +.ifdef CBM2_MICROTAN jsr SETPTRS jsr LE33D lda INPUTBUFFER @@ -254,7 +254,7 @@ L23E6: ; ---------------------------------------------------------------------------- FIX_LINKS: jsr SETPTRS -.ifdef CBM2_KBD +.ifdef CONFIG_2 jsr LE33D jmp L2351 LE33D: @@ -267,7 +267,7 @@ LE33D: L23FA: ldy #$01 lda (INDEX),y -.ifdef CBM2_KBD +.ifdef CONFIG_2 beq RET3 .else bne L2403 @@ -334,12 +334,12 @@ RET3: rts .endif -.ifdef CBM2 +.ifdef CBM2_MICROTAN RET3: rts .endif -.if .def(CBM1) || .def(OSI) || .def(KIM) +.if .def(CBM1) || .def(OSI) || .def(KIM) || .def(MICROTAN) L2420: .ifdef OSI jsr OUTDO @@ -380,23 +380,35 @@ L0C32: ldx #$00 INLIN2: jsr GETLN - .ifndef CONFIG_CBM_ALL + .ifndef CONFIG_NO_LINE_EDITING cmp #$07 beq L2443 .endif cmp #$0D beq L2453 - .ifndef CONFIG_CBM_ALL + .ifndef CONFIG_NO_LINE_EDITING cmp #$20 ; line editing bcc INLIN2 +.ifdef MICROTAN + cmp #$80 +.else cmp #$7D +.endif bcs INLIN2 cmp #$40 ; @ beq L2423 +.ifdef MICROTAN + cmp #$7F ; _ +.else cmp #$5F ; _ +.endif beq L2420 L2443: +.ifdef MICROTAN + cpx #$4F +.else cpx #$47 +.endif bcs L244C .endif sta INPUTBUFFER,x @@ -407,7 +419,7 @@ L2443: bne INLIN2 .endif L244C: - .ifndef CONFIG_CBM_ALL + .ifndef CONFIG_NO_LINE_EDITING lda #$07 jsr OUTDO bne INLIN2 @@ -420,7 +432,7 @@ L2453: .ifndef KBD .ifndef APPLE GETLN: - .ifdef CONFIG_CBM_ALL + .ifdef CONFIG_FILE jsr CHRIN ldy Z03 bne L2465 @@ -514,7 +526,7 @@ L2498: jsr GET_UPPER .else lda INPUTBUFFERX,x - .ifndef CBM2 + .ifndef CBM2_MICROTAN cmp #$20 beq L2497 .endif @@ -669,7 +681,7 @@ SCRTCH: iny sta (TXTTAB),y lda TXTTAB -.ifdef CBM2_KBD +.ifdef CONFIG_2 clc .endif adc #$02 @@ -716,7 +728,7 @@ STKINI: ldx #TEMPST stx TEMPPT pla -.ifdef CBM2_KBD +.ifdef CONFIG_2 tay .else .ifdef APPLE @@ -726,7 +738,7 @@ STKINI: .endif .endif pla -.ifndef CBM2_KBD +.ifndef CONFIG_2 .ifdef APPLE sta STACK+250 .else @@ -735,7 +747,7 @@ STKINI: .endif ldx #STACK_TOP txs -.ifdef CBM2_KBD +.ifdef CONFIG_2 pha tya pha @@ -758,6 +770,8 @@ STXTPT: adc #$FF sta TXTPTR+1 rts + +; ---------------------------------------------------------------------------- .ifdef KBD LE4C0: ldy #