More cleanup of ASM

This commit is contained in:
Kilian committed 2026-09-27 23:22:55 +02:00
1 parent 25236f542d
commit deef96a6bc
7 files changed
+27 -75

No files matched your search

+3 -8
View File
@@ -1,11 +1,8 @@
; extra/override ZP variables
USR := GORESTART ; XXX
; constants ; constants
SPACE_FOR_GOSUB := $3E SPACE_FOR_GOSUB := $3E
STACK_TOP := $FA STACK_TOP := $FA
WIDTH := 80 WIDTH := 80 ; Default terminal width
WIDTH2 := 30 WIDTH2 := 70 ; mac column for zoned print
RAMSTART2 := $0400 RAMSTART2 := $0400
BYTES_FP := 5 BYTES_FP := 5
@@ -16,12 +13,10 @@ BYTES_PER_FRAME := 2*BYTES_FP+8
FOR_STACK1 := 2*BYTES_FP+5 FOR_STACK1 := 2*BYTES_FP+5
FOR_STACK2 := BYTES_FP+4 FOR_STACK2 := BYTES_FP+4
MAX_EXPON = 10
STACK := $0100 STACK := $0100
STACK2 := STACK STACK2 := STACK
INPUTBUFFERX = INPUTBUFFER & $FF00
MAX_EXPON = 10
CR = 13 CR = 13
LF = 10 LF = 10
+1 -6
View File
@@ -46,12 +46,7 @@ LD758:
ldx #$0A ldx #$0A
LD75A: LD75A:
lda MICROSOFT-1,x lda MICROSOFT-1,x
and #$3F jsr MONCOUT
sta (LINNUM),y
iny
bne LD766
inc LINNUM+1
LD766:
dex dex
bne LD75A bne LD75A
dec FORPNT dec FORPNT
+15 -53
View File
@@ -29,12 +29,12 @@ COLD_START:
sta GORESTART sta GORESTART
sta GOSTROUT sta GOSTROUT
sta JMPADRS sta JMPADRS
sta USR sta GORESTART
lda #<IQERR lda #<IQERR
ldy #>IQERR ldy #>IQERR
sta USR+1 sta GORESTART+1
sty USR+2 sty GORESTART+2
lda #WIDTH lda #WIDTH
sta Z17 sta Z17
lda #WIDTH2 lda #WIDTH2
@@ -81,49 +81,6 @@ L4098:
sta MEMSIZ sta MEMSIZ
lda #>$BC00 lda #>$BC00
sta MEMSIZ+1 sta MEMSIZ+1
jmp L4106
jsr NXIN
stx TXTPTR
sty TXTPTR+1
jsr CHRGET
cmp #$41
bne SKIPPED
jmp PR_WRITTEN_BY
SKIPPED:
tay
bne L40EE
lda #<RAMSTART2
ldy #>RAMSTART2
sta TXTTAB
sty TXTTAB+1
sta LINNUM
sty LINNUM+1
ldy #$00
L40D7:
inc LINNUM
bne L40DD
inc LINNUM+1
L40DD:
lda #$55 ; 01010101 / 10101010
sta (LINNUM),y
cmp (LINNUM),y
bne L40FA
asl a
sta (LINNUM),y
cmp (LINNUM),y
bne L40FA; new: slower
beq L40D7
L40EE:
jsr CHRGOT
jsr LINGET
tay
beq L40FA
jmp SYNERR
L40FA:
lda LINNUM
ldy LINNUM+1
sta MEMSIZ
sty MEMSIZ+1
sta FRETOP sta FRETOP
sty FRETOP+1 sty FRETOP+1
L4106: L4106:
@@ -134,6 +91,10 @@ L4106:
stx TXTPTR stx TXTPTR
sty TXTPTR+1 sty TXTPTR+1
jsr CHRGET jsr CHRGET
cmp #'A'
bne :+
jmp PR_WRITTEN_BY
:
tay tay
beq L4136 beq L4136
jsr LINGET jsr LINGET
@@ -178,6 +139,9 @@ L4192:
lda #<QT_BYTES_FREE lda #<QT_BYTES_FREE
ldy #>QT_BYTES_FREE ldy #>QT_BYTES_FREE
jsr STROUT jsr STROUT
lda #<QT_BASIC
ldy #>QT_BASIC
jsr STROUT
jsr SCRTCH jsr SCRTCH
lda #<STROUT lda #<STROUT
ldy #>STROUT ldy #>STROUT
@@ -190,20 +154,18 @@ L4192:
jmp (GORESTART+1) jmp (GORESTART+1)
QT_WRITTEN_BY: QT_WRITTEN_BY:
.byte CR,LF,$0C ; FORM FEED .byte CR,LF
.byte "WRITTEN BY WEILAND & GATES" .byte "WRITTEN BY WEILAND & GATES"
.byte CR,LF
.byte "PORTED BY KILIAN KURT HOFMANN"
.byte CR,LF,0 .byte CR,LF,0
QT_MEMORY_SIZE:
.byte "MEMORY SIZE"
.byte 0
QT_TERMINAL_WIDTH: QT_TERMINAL_WIDTH:
.byte "TERMINAL " .byte "TERMINAL "
.byte "WIDTH" .byte "WIDTH"
.byte 0 .byte 0
QT_BYTES_FREE: QT_BYTES_FREE:
.byte " BYTES FREE" .byte " BYTES FREE"
.byte CR,LF,CR,LF .byte CR,LF,0
QT_BASIC: QT_BASIC:
.byte CR,LF
.byte "COPYRIGHT 1977 BY MICROSOFT CO." .byte "COPYRIGHT 1977 BY MICROSOFT CO."
.byte CR,LF .byte CR,LF,CR,LF,0
+4 -4
View File
@@ -215,7 +215,7 @@ PARSE_INPUT_LINE:
ldy #$04 ldy #$04
sty DATAFLG sty DATAFLG
L246C: L246C:
lda INPUTBUFFERX,x lda $200,x
cmp #$20 cmp #$20
beq L24AC beq L24AC
sta ENDCHR sta ENDCHR
@@ -248,7 +248,7 @@ L2496:
L2497: L2497:
inx inx
L2498: L2498:
lda INPUTBUFFERX,x lda $200,x
sec sec
sbc TOKEN_NAME_TABLE,y sbc TOKEN_NAME_TABLE,y
beq L2496 beq L2496
@@ -283,7 +283,7 @@ L24C1:
; BY COPYING CHARS UP TO ENDCHR. ; BY COPYING CHARS UP TO ENDCHR.
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
L24C8: L24C8:
lda INPUTBUFFERX,x lda $200,x
beq L24AC beq L24AC
cmp ENDCHR cmp ENDCHR
beq L24AC beq L24AC
@@ -304,7 +304,7 @@ L24DB:
bpl L24DB bpl L24DB
lda TOKEN_NAME_TABLE,y lda TOKEN_NAME_TABLE,y
bne L2498 bne L2498
lda INPUTBUFFERX,x lda $200,x
bpl L24AA bpl L24AA
; ---END OF LINE------------------ ; ---END OF LINE------------------
L24EA: L24EA:
+1 -1
View File
@@ -65,7 +65,7 @@ UNFNC:
keyword_addr "SGN", SGN, TOKEN_SGN keyword_addr "SGN", SGN, TOKEN_SGN
keyword_addr "INT", INT keyword_addr "INT", INT
keyword_addr "ABS", ABS keyword_addr "ABS", ABS
keyword_addr "USR", USR, TOKEN_USR keyword_addr "USR", GORESTART, TOKEN_USR
keyword_addr "FRE", FRE keyword_addr "FRE", FRE
keyword_addr "POS", POS keyword_addr "POS", POS
keyword_addr "SQR", SQR keyword_addr "SQR", SQR
+2 -2
View File
@@ -105,8 +105,8 @@ POLY_SIN:
.byte $E7,$28,$83,$49,$0F,$DA,$A2 .byte $E7,$28,$83,$49,$0F,$DA,$A2
; PET encoded easter egg text since CBM2 ; PET encoded easter egg text since CBM2
MICROSOFT: MICROSOFT:
.byte $A1,$54,$46,$8F,$13,$8F,$52,$43 .byte "!TFOSORCIM"
.byte $89,$CD .byte 0
; ---------------------------------------------------------------------------- ; ----------------------------------------------------------------------------
; "ATN" FUNCTION ; "ATN" FUNCTION
+1 -1
View File
@@ -46,7 +46,7 @@ int main(void) {
printf("6502PC Emulator with MS Basic\n"); printf("6502PC Emulator with MS Basic\n");
printf("CTRL + G to exit\n"); printf("CTRL + G to exit\n");
printf("DF6FR to jump to BASIC\n"); printf("DF6AR to jump to BASIC\n");
clock_gettime(CLOCK_MONOTONIC, &emulationStart); clock_gettime(CLOCK_MONOTONIC, &emulationStart);