This commit is contained in:
Michael Steil 2008-10-14 09:23:44 +00:00
parent 25c9858c47
commit a5ba6d95f1
11 changed files with 78 additions and 63 deletions

View File

@ -21,6 +21,10 @@ L2FAF:
NEG32768: NEG32768:
.byte $90,$80,$00,$00 .byte $90,$80,$00,$00
.ifdef MICROTAN
.byte 0
.endif
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; EVALUATE NUMERIC FORMULA AT TXTPTR ; EVALUATE NUMERIC FORMULA AT TXTPTR
; CONVERTING RESULT TO INTEGER 0 <= X <= 32767 ; CONVERTING RESULT TO INTEGER 0 <= X <= 32767

View File

@ -5,6 +5,7 @@ CBM2_KIM_APPLE := 1 ; OUTDO difference
CBM1_APPLE := 1 CBM1_APPLE := 1
CBM_APPLE := 1 CBM_APPLE := 1
KIM_APPLE := 1 KIM_APPLE := 1
APPLE_MICROTAN := 1
CONFIG_SCRTCH_ORDER := 1 CONFIG_SCRTCH_ORDER := 1
CONFIG_PRINT_CR := 1 ; print CR when line end reached CONFIG_PRINT_CR := 1 ; print CR when line end reached
CONFIG_IO_MSB := 1 ; all I/O has bit #7 set CONFIG_IO_MSB := 1 ; all I/O has bit #7 set

View File

@ -7,6 +7,7 @@ KIM_APPLE := 1
CBM2_MICROTAN := 1 CBM2_MICROTAN := 1
KBD_MICROTAN := 1 KBD_MICROTAN := 1
KIM_MICROTAN := 1 KIM_MICROTAN := 1
APPLE_MICROTAN := 1
CONFIG_2 := 1 CONFIG_2 := 1
@ -21,12 +22,12 @@ ZP_START = $85
JMPADRS = DSCLEN + 1 JMPADRS = DSCLEN + 1
LOWTRX = LOWTR LOWTRX = LOWTR
Z00 := $0000 Z00 := $0017
L0001 := $0001 L0001 := $0001
L0002 := $0002 L0002 := $0002
GOWARM := $0003 GOWARM := $001A
GOSTROUT := $0006 GOSTROUT := $001D
GOGIVEAYF := $0008 GOGIVEAYF := $001F
CHARAC := $000A+$1A CHARAC := $000A+$1A
ENDCHR := $000B+$1A ENDCHR := $000B+$1A
@ -43,7 +44,7 @@ POSX := $0016+$1A
Z17 := $0017+$1A Z17 := $0017+$1A
Z18 := $0018+$1A Z18 := $0018+$1A
LINNUM := $0019+$1A LINNUM := $0019+$1A
TXPSV := $0019+$1A TXPSV := $00BA
INPUTBUFFER := $001B+$1A INPUTBUFFER := $001B+$1A
INPUTBUFFERX := $0000 INPUTBUFFERX := $0000
@ -63,7 +64,10 @@ SAVE := $AAAA
LOAD := $AAAA LOAD := $AAAA
LE21C := $AAAA LE21C := $AAAA
LC3F0 := $AAAA LC3F0 := $AAAA
LFE73 := $AAAA
LFE75 := $AAAA
LFDFA := $AAAA
LE219 := $AAAA LE219 := $AAAA
LE21F := $AAAA
LFDFA := $FDFA
LFE73 := $FE73
LFE75 := $FE75
L000A := $0A

12
eval.s
View File

@ -240,12 +240,12 @@ FRM_STACK2:
tay tay
pla pla
sta INDEX sta INDEX
.ifndef KBD .ifndef KBD_MICROTAN
inc INDEX ; bug: assumes not on page boundary inc INDEX ; bug: assumes not on page boundary
.endif .endif
pla pla
sta INDEX+1 sta INDEX+1
.ifdef KBD .ifdef KBD_MICROTAN
inc INDEX inc INDEX
bne LEB69 bne LEB69
inc INDEX+1 inc INDEX+1
@ -448,18 +448,18 @@ FRM_VARIABLE_CALL = *-1
ldx VALTYP ldx VALTYP
beq L2DB1 beq L2DB1
.ifdef CONFIG_CBM_ALL .ifdef CONFIG_CBM_ALL
.ifdef CONFIG_CBM1_PATCHES .ifdef CONFIG_CBM1_PATCHES
jmp PATCH2 jmp PATCH2
clc clc
LCE3B: LCE3B:
.else .else
ldx #$00 ldx #$00
stx $6D stx $6D
bit $62 bit $62
bpl LCE53 bpl LCE53
cmp #$54 cmp #$54
bne LCE53 bne LCE53
.endif .endif
cpy #$C9 cpy #$C9
bne LCE53 bne LCE53
jsr LCE76 jsr LCE76
@ -473,7 +473,7 @@ LCE3B:
jmp LD353 jmp LD353
LCE53: LCE53:
.endif .endif
.ifdef KBD .ifdef KBD_MICROTAN
ldx #$00 ldx #$00
stx STRNG1+1 stx STRNG1+1
.endif .endif

34
float.s
View File

@ -131,8 +131,8 @@ L369B:
sbc 4,x sbc 4,x
sta FAC+4 sta FAC+4
.endif .endif
lda GOWARM,y lda 3,y
sbc GOWARM,x sbc 3,x
sta FAC+3 sta FAC+3
lda 2,y lda 2,y
sbc 2,x sbc 2,x
@ -169,8 +169,8 @@ L36C7:
.endif .endif
sty FACEXTENSION sty FACEXTENSION
adc #$08 adc #$08
.ifdef KBD .ifdef KBD_MICROTAN
cmp #$20 cmp #(MANTISSA_BYTES+1)*8
.else .else
cmp #MANTISSA_BYTES*8 cmp #MANTISSA_BYTES*8
.endif .endif
@ -235,7 +235,7 @@ NORMALIZE_FAC5:
NORMALIZE_FAC6: NORMALIZE_FAC6:
inc FAC inc FAC
beq OVERFLOW beq OVERFLOW
.ifndef KIM .ifndef KIM_MICROTAN
ror FAC+1 ror FAC+1
ror FAC+2 ror FAC+2
ror FAC+3 ror FAC+3
@ -372,7 +372,7 @@ SHIFT_RIGHT:
tay tay
lda FACEXTENSION lda FACEXTENSION
bcs SHIFT_RIGHT5 bcs SHIFT_RIGHT5
.ifndef KIM .ifndef KIM_MICROTAN
LB588: LB588:
asl 1,x asl 1,x
bcc LB58E bcc LB58E
@ -387,9 +387,9 @@ LB58E:
SHIFT_RIGHT4: SHIFT_RIGHT4:
ror 2,x ror 2,x
ror 3,x ror 3,x
.ifndef CONFIG_SMALL .ifndef CONFIG_SMALL
ror 4,x ror 4,x
.endif .endif
ror a ror a
iny iny
bne LB588 bne LB588
@ -577,7 +577,7 @@ L38A7:
adc ARG+1 adc ARG+1
sta RESULT sta RESULT
L38C3: L38C3:
.ifndef KIM .ifndef KIM_MICROTAN
ror RESULT ror RESULT
ror RESULT+1 ror RESULT+1
.ifdef APPLE .ifdef APPLE
@ -1224,7 +1224,7 @@ FIN3:
beq FIN4 beq FIN4
bne FIN6 bne FIN6
L3BA6: L3BA6:
.ifndef KIM .ifndef KIM_MICROTAN
ror EXPSGN ror EXPSGN
.else .else
lda #$00 lda #$00
@ -1251,7 +1251,7 @@ FIN6:
; FOUND A DECIMAL POINT ; FOUND A DECIMAL POINT
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
FIN10: FIN10:
.ifndef KIM .ifndef KIM_MICROTAN
ror LOWTR ror LOWTR
.else .else
lda #$00 lda #$00
@ -1488,17 +1488,9 @@ L3CBE:
ldx #$01 ldx #$01
lda INDX lda INDX
clc clc
.ifdef CONFIG_SMALL adc #3*BYTES_FP-5
adc #$07
.else
adc #$0A
.endif
bmi L3CD3 bmi L3CD3
.ifdef CONFIG_SMALL cmp #3*BYTES_FP-4
cmp #$08
.else
cmp #$0B
.endif
bcs L3CD4 bcs L3CD4
adc #$FF adc #$FF
tax tax

14
init.s
View File

@ -59,7 +59,7 @@ COLD_START2:
sta GOWARM sta GOWARM
sta JMPADRS sta JMPADRS
.endif .endif
.ifdef APPLE .ifdef APPLE_MICROTAN
sta L000A sta L000A
.endif .endif
.ifdef CONFIG_SMALL .ifdef CONFIG_SMALL
@ -135,13 +135,15 @@ L4098:
.endif .endif
pha pha
sta Z14 sta Z14
.ifdef CONFIG_2 .ifdef CBM2_KBD
inx inx
stx $01FD stx $01FD
stx $01FC stx $01FC
.else .else
.ifndef MICROTAN
lda #$03 lda #$03
sta DSCLEN sta DSCLEN
.endif
.ifndef KIM_APPLE .ifndef KIM_APPLE
lda #$2C lda #$2C
sta LINNUM+1 sta LINNUM+1
@ -172,7 +174,7 @@ L4098:
tay tay
bne L40EE bne L40EE
.endif .endif
.ifndef CONFIG_2 .ifndef CBM2_KBD
lda #<RAMSTART2 lda #<RAMSTART2
.endif .endif
ldy #>RAMSTART2 ldy #>RAMSTART2
@ -182,7 +184,7 @@ L4098:
.endif .endif
sta LINNUM sta LINNUM
sty LINNUM+1 sty LINNUM+1
.ifdef CONFIG_2 .ifdef CBM2_KBD
tay tay
.else .else
ldy #$00 ldy #$00
@ -196,7 +198,7 @@ L40D7:
cmp #$80 cmp #$80
beq L40FA beq L40FA
.endif .endif
.ifdef CONFIG_2 .ifdef CBM2_KBD
bmi L40FA bmi L40FA
.endif .endif
L40DD: L40DD:
@ -233,8 +235,10 @@ L40FA:
ldy LINNUM+1 ldy LINNUM+1
sta MEMSIZ sta MEMSIZ
sty MEMSIZ+1 sty MEMSIZ+1
.ifndef MICROTAN
sta FRETOP sta FRETOP
sty FRETOP+1 sty FRETOP+1
.endif
L4106: L4106:
.ifndef CONFIG_CBM_ALL .ifndef CONFIG_CBM_ALL
.ifdef APPLE .ifdef APPLE

View File

@ -232,13 +232,19 @@ PROCESS_INPUT_ITEM:
.endif .endif
sta INPUTBUFFER sta INPUTBUFFER
.ifdef CONFIG_INPUTBUFFER_ORDER .ifdef CONFIG_INPUTBUFFER_ORDER
; the order is about whether
; the beq/bne is taken or not
ldy #>(INPUTBUFFER-1) ldy #>(INPUTBUFFER-1)
ldx #<(INPUTBUFFER-1) ldx #<(INPUTBUFFER-1)
.else .else
ldx #<(INPUTBUFFER-1) ldx #<(INPUTBUFFER-1)
ldy #>(INPUTBUFFER-1) ldy #>(INPUTBUFFER-1)
.endif .endif
.ifdef MICROTAN
beq L2AF8
.else
bne L2AF8 bne L2AF8
.endif
L2AF0: L2AF0:
.endif .endif
bmi FINDATA bmi FINDATA

Binary file not shown.

4
poke.s
View File

@ -44,7 +44,7 @@ GETADR:
; "PEEK" FUNCTION ; "PEEK" FUNCTION
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
PEEK: PEEK:
.ifdef CBM2 .ifdef CBM2_MICROTAN
lda LINNUM+1 lda LINNUM+1
pha pha
lda LINNUM lda LINNUM
@ -71,7 +71,7 @@ LD6F3:
.endif .endif
lda (LINNUM),y lda (LINNUM),y
tay tay
.ifdef CBM2 .ifdef CBM2_MICROTAN
pla pla
sta LINNUM sta LINNUM
pla pla

View File

@ -806,54 +806,54 @@ LIST:
L25A6: L25A6:
jsr CRDO jsr CRDO
.else .else
.ifdef MICROTAN .ifdef MICROTAN
php php
jmp LE21C jmp LE21C
LC57E: LC57E:
.else .else
bcc L2581 bcc L2581
beq L2581 beq L2581
cmp #TOKEN_MINUS cmp #TOKEN_MINUS
bne L256A bne L256A
L2581: L2581:
jsr LINGET jsr LINGET
.endif .endif
jsr FNDLIN jsr FNDLIN
.ifdef MICROTAN .ifdef MICROTAN
plp plp
beq LC598 beq LC598
.endif .endif
jsr CHRGOT jsr CHRGOT
beq L2598 beq L2598
cmp #TOKEN_MINUS cmp #TOKEN_MINUS
bne L2520 bne L2520
jsr CHRGET jsr CHRGET
.ifdef MICROTAN .ifdef MICROTAN
beq LC598 beq LC598
jsr LINGET jsr LINGET
beq L25A6 beq L25A6
rts rts
LC598: LC598:
.else .else
jsr LINGET jsr LINGET
bne L2520 bne L2520
.endif .endif
L2598: L2598:
.ifndef MICROTAN .ifndef MICROTAN
pla pla
pla pla
lda LINNUM lda LINNUM
ora LINNUM+1 ora LINNUM+1
bne L25A6 bne L25A6
.endif .endif
lda #$FF lda #$FF
sta LINNUM sta LINNUM
sta LINNUM+1 sta LINNUM+1
.ifdef MICROTAN
pla
pla
.endif
L25A6: L25A6:
.ifdef MICROTAN
pla
pla
.endif
.endif .endif
ldy #$01 ldy #$01
.ifdef CONFIG_DATAFLAG .ifdef CONFIG_DATAFLAG
@ -861,7 +861,11 @@ L25A6:
.endif .endif
lda (LOWTRX),y lda (LOWTRX),y
beq L25E5 beq L25E5
.ifdef MICROTAN
jmp LE21F ; C5A6 4C 1F E2 L..
.else
jsr ISCNTC jsr ISCNTC
.endif
.ifndef KBD .ifndef KBD
jsr CRDO jsr CRDO
.endif .endif

14
trig.s
View File

@ -115,16 +115,16 @@ POLY_SIN:
.byte $07,$FB,$F8,$87,$99,$68,$89,$01 .byte $07,$FB,$F8,$87,$99,$68,$89,$01
.byte $87,$23,$35,$DF,$E1,$86,$A5,$5D .byte $87,$23,$35,$DF,$E1,$86,$A5,$5D
.byte $E7,$28,$83,$49,$0F,$DA,$A2 .byte $E7,$28,$83,$49,$0F,$DA,$A2
.ifndef CONFIG_CBM_ALL .ifdef CBM2_MICROTAN
MICROSOFT:
.byte $A6,$D3,$C1,$C8,$D4,$C8,$D5,$C4
.byte $CE,$CA
.endif
.ifdef CBM2
MICROSOFT: MICROSOFT:
.byte $A1,$54,$46,$8F,$13,$8F,$52,$43 .byte $A1,$54,$46,$8F,$13,$8F,$52,$43
.byte $89,$CD .byte $89,$CD
.endif .elseif .def(CONFIG_CBM_ALL)
.else
MICROSOFT:
.byte $A6,$D3,$C1,$C8,$D4,$C8,$D5,$C4
.byte $CE,$CA
.endif
.endif .endif
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------