From a5ba6d95f1d8c4fb40e8d764a3b5a7245ac11c06 Mon Sep 17 00:00:00 2001 From: Michael Steil Date: Tue, 14 Oct 2008 09:23:44 +0000 Subject: [PATCH] ... --- array.s | 4 ++++ defines_apple.s | 1 + defines_microtan.s | 20 ++++++++++++-------- eval.s | 12 ++++++------ float.s | 34 +++++++++++++--------------------- init.s | 14 +++++++++----- input.s | 6 ++++++ orig/microtan.bin | Bin 6144 -> 10240 bytes poke.s | 4 ++-- program.s | 32 ++++++++++++++++++-------------- trig.s | 14 +++++++------- 11 files changed, 78 insertions(+), 63 deletions(-) diff --git a/array.s b/array.s index ed1d846..5c1045c 100644 --- a/array.s +++ b/array.s @@ -21,6 +21,10 @@ L2FAF: NEG32768: .byte $90,$80,$00,$00 +.ifdef MICROTAN + .byte 0 +.endif + ; ---------------------------------------------------------------------------- ; EVALUATE NUMERIC FORMULA AT TXTPTR ; CONVERTING RESULT TO INTEGER 0 <= X <= 32767 diff --git a/defines_apple.s b/defines_apple.s index ab5ae1d..60b3d09 100644 --- a/defines_apple.s +++ b/defines_apple.s @@ -5,6 +5,7 @@ CBM2_KIM_APPLE := 1 ; OUTDO difference CBM1_APPLE := 1 CBM_APPLE := 1 KIM_APPLE := 1 +APPLE_MICROTAN := 1 CONFIG_SCRTCH_ORDER := 1 CONFIG_PRINT_CR := 1 ; print CR when line end reached CONFIG_IO_MSB := 1 ; all I/O has bit #7 set diff --git a/defines_microtan.s b/defines_microtan.s index af4bb7e..e94bbc5 100644 --- a/defines_microtan.s +++ b/defines_microtan.s @@ -7,6 +7,7 @@ KIM_APPLE := 1 CBM2_MICROTAN := 1 KBD_MICROTAN := 1 KIM_MICROTAN := 1 +APPLE_MICROTAN := 1 CONFIG_2 := 1 @@ -21,12 +22,12 @@ ZP_START = $85 JMPADRS = DSCLEN + 1 LOWTRX = LOWTR -Z00 := $0000 +Z00 := $0017 L0001 := $0001 L0002 := $0002 -GOWARM := $0003 -GOSTROUT := $0006 -GOGIVEAYF := $0008 +GOWARM := $001A +GOSTROUT := $001D +GOGIVEAYF := $001F CHARAC := $000A+$1A ENDCHR := $000B+$1A @@ -43,7 +44,7 @@ POSX := $0016+$1A Z17 := $0017+$1A Z18 := $0018+$1A LINNUM := $0019+$1A -TXPSV := $0019+$1A +TXPSV := $00BA INPUTBUFFER := $001B+$1A INPUTBUFFERX := $0000 @@ -63,7 +64,10 @@ SAVE := $AAAA LOAD := $AAAA LE21C := $AAAA LC3F0 := $AAAA -LFE73 := $AAAA -LFE75 := $AAAA -LFDFA := $AAAA LE219 := $AAAA +LE21F := $AAAA + +LFDFA := $FDFA +LFE73 := $FE73 +LFE75 := $FE75 +L000A := $0A \ No newline at end of file diff --git a/eval.s b/eval.s index 8123cc7..21b02f3 100644 --- a/eval.s +++ b/eval.s @@ -240,12 +240,12 @@ FRM_STACK2: tay pla sta INDEX -.ifndef KBD +.ifndef KBD_MICROTAN inc INDEX ; bug: assumes not on page boundary .endif pla sta INDEX+1 -.ifdef KBD +.ifdef KBD_MICROTAN inc INDEX bne LEB69 inc INDEX+1 @@ -448,18 +448,18 @@ FRM_VARIABLE_CALL = *-1 ldx VALTYP beq L2DB1 .ifdef CONFIG_CBM_ALL -.ifdef CONFIG_CBM1_PATCHES + .ifdef CONFIG_CBM1_PATCHES jmp PATCH2 clc LCE3B: -.else + .else ldx #$00 stx $6D bit $62 bpl LCE53 cmp #$54 bne LCE53 -.endif + .endif cpy #$C9 bne LCE53 jsr LCE76 @@ -473,7 +473,7 @@ LCE3B: jmp LD353 LCE53: .endif -.ifdef KBD +.ifdef KBD_MICROTAN ldx #$00 stx STRNG1+1 .endif diff --git a/float.s b/float.s index b4ed01b..4250cfc 100644 --- a/float.s +++ b/float.s @@ -131,8 +131,8 @@ L369B: sbc 4,x sta FAC+4 .endif - lda GOWARM,y - sbc GOWARM,x + lda 3,y + sbc 3,x sta FAC+3 lda 2,y sbc 2,x @@ -169,8 +169,8 @@ L36C7: .endif sty FACEXTENSION adc #$08 -.ifdef KBD - cmp #$20 +.ifdef KBD_MICROTAN + cmp #(MANTISSA_BYTES+1)*8 .else cmp #MANTISSA_BYTES*8 .endif @@ -235,7 +235,7 @@ NORMALIZE_FAC5: NORMALIZE_FAC6: inc FAC beq OVERFLOW -.ifndef KIM +.ifndef KIM_MICROTAN ror FAC+1 ror FAC+2 ror FAC+3 @@ -372,7 +372,7 @@ SHIFT_RIGHT: tay lda FACEXTENSION bcs SHIFT_RIGHT5 -.ifndef KIM +.ifndef KIM_MICROTAN LB588: asl 1,x bcc LB58E @@ -387,9 +387,9 @@ LB58E: SHIFT_RIGHT4: ror 2,x ror 3,x -.ifndef CONFIG_SMALL + .ifndef CONFIG_SMALL ror 4,x -.endif + .endif ror a iny bne LB588 @@ -577,7 +577,7 @@ L38A7: adc ARG+1 sta RESULT L38C3: -.ifndef KIM +.ifndef KIM_MICROTAN ror RESULT ror RESULT+1 .ifdef APPLE @@ -1224,7 +1224,7 @@ FIN3: beq FIN4 bne FIN6 L3BA6: -.ifndef KIM +.ifndef KIM_MICROTAN ror EXPSGN .else lda #$00 @@ -1251,7 +1251,7 @@ FIN6: ; FOUND A DECIMAL POINT ; ---------------------------------------------------------------------------- FIN10: -.ifndef KIM +.ifndef KIM_MICROTAN ror LOWTR .else lda #$00 @@ -1488,17 +1488,9 @@ L3CBE: ldx #$01 lda INDX clc -.ifdef CONFIG_SMALL - adc #$07 -.else - adc #$0A -.endif + adc #3*BYTES_FP-5 bmi L3CD3 -.ifdef CONFIG_SMALL - cmp #$08 -.else - cmp #$0B -.endif + cmp #3*BYTES_FP-4 bcs L3CD4 adc #$FF tax diff --git a/init.s b/init.s index 97f9d6c..c7888a1 100644 --- a/init.s +++ b/init.s @@ -59,7 +59,7 @@ COLD_START2: sta GOWARM sta JMPADRS .endif -.ifdef APPLE +.ifdef APPLE_MICROTAN sta L000A .endif .ifdef CONFIG_SMALL @@ -135,13 +135,15 @@ L4098: .endif pha sta Z14 -.ifdef CONFIG_2 +.ifdef CBM2_KBD inx stx $01FD stx $01FC .else + .ifndef MICROTAN lda #$03 sta DSCLEN + .endif .ifndef KIM_APPLE lda #$2C sta LINNUM+1 @@ -172,7 +174,7 @@ L4098: tay bne L40EE .endif -.ifndef CONFIG_2 +.ifndef CBM2_KBD lda #RAMSTART2 @@ -182,7 +184,7 @@ L4098: .endif sta LINNUM sty LINNUM+1 -.ifdef CONFIG_2 +.ifdef CBM2_KBD tay .else ldy #$00 @@ -196,7 +198,7 @@ L40D7: cmp #$80 beq L40FA .endif -.ifdef CONFIG_2 +.ifdef CBM2_KBD bmi L40FA .endif L40DD: @@ -233,8 +235,10 @@ L40FA: ldy LINNUM+1 sta MEMSIZ sty MEMSIZ+1 +.ifndef MICROTAN sta FRETOP sty FRETOP+1 +.endif L4106: .ifndef CONFIG_CBM_ALL .ifdef APPLE diff --git a/input.s b/input.s index b214830..d5d820b 100644 --- a/input.s +++ b/input.s @@ -232,13 +232,19 @@ PROCESS_INPUT_ITEM: .endif sta INPUTBUFFER .ifdef CONFIG_INPUTBUFFER_ORDER +; the order is about whether +; the beq/bne is taken or not ldy #>(INPUTBUFFER-1) ldx #<(INPUTBUFFER-1) .else ldx #<(INPUTBUFFER-1) ldy #>(INPUTBUFFER-1) .endif + .ifdef MICROTAN + beq L2AF8 + .else bne L2AF8 + .endif L2AF0: .endif bmi FINDATA diff --git a/orig/microtan.bin b/orig/microtan.bin index f36c395cd0238e234dee0e49ea6250bbff8c9141..82c02a9cac7eee7cd9e3177ea9037b66225b3417 100644 GIT binary patch delta 4138 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 P3}~3syObJIoz4FTVknpx delta 9 QcmZn&XfRkHut