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