More cleanup of ASM
This commit is contained in:
1 parent
25236f542d
commit
deef96a6bc
7 files changed
+42
-90
No files matched your search
+15
-20
@@ -1,27 +1,22 @@
|
|||||||
; 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
|
||||||
BYTES_PER_ELEMENT := BYTES_FP
|
BYTES_PER_ELEMENT := BYTES_FP
|
||||||
BYTES_PER_VARIABLE := BYTES_FP+2
|
BYTES_PER_VARIABLE := BYTES_FP+2
|
||||||
MANTISSA_BYTES := BYTES_FP-1
|
MANTISSA_BYTES := BYTES_FP-1
|
||||||
BYTES_PER_FRAME := 2*BYTES_FP+8
|
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
|
||||||
|
|
||||||
|
STACK := $0100
|
||||||
|
STACK2 := STACK
|
||||||
|
|
||||||
|
|
||||||
MAX_EXPON = 10
|
MAX_EXPON = 10
|
||||||
|
CR = 13
|
||||||
STACK := $0100
|
LF = 10
|
||||||
STACK2 := STACK
|
|
||||||
|
|
||||||
INPUTBUFFERX = INPUTBUFFER & $FF00
|
|
||||||
|
|
||||||
CR=13
|
|
||||||
LF=10
|
|
||||||
+1
-6
@@ -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
|
||||||
|
|||||||
+18
-56
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
; ----------------------------------------------------------------------------
|
; ----------------------------------------------------------------------------
|
||||||
PR_WRITTEN_BY:
|
PR_WRITTEN_BY:
|
||||||
lda #<QT_WRITTEN_BY
|
lda #<QT_WRITTEN_BY
|
||||||
ldy #>QT_WRITTEN_BY
|
ldy #>QT_WRITTEN_BY
|
||||||
jsr STROUT
|
jsr STROUT
|
||||||
|
|
||||||
COLD_START:
|
COLD_START:
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user