deduplicated some print character routines
This commit is contained in:
1 parent
c173540fac
commit
2608e1b153
18 files changed
+68
-45
No files matched your search
@@ -3,7 +3,7 @@
|
||||
|
||||
SRCDIR_COMMON = c64/aliases
|
||||
SRCDIR_BASIC_COMMON = $(SRCDIR_COMMON) c64/basic
|
||||
SRCDIR_KERNAL_COMMON = $(SRCDIR_COMMON) c64/kernal c64/kernal/assets c64/kernal/jumptable c64/kernal/iec c64/kernal/interrupts
|
||||
SRCDIR_KERNAL_COMMON = $(SRCDIR_COMMON) c64/kernal c64/kernal/assets c64/kernal/jumptable c64/kernal/iec c64/kernal/interrupts c64/kernal/print
|
||||
|
||||
SRCDIR_BASIC_generic = $(SRCDIR_BASIC_COMMON) c64/basic/,target_generic
|
||||
SRCDIR_BASIC_mega65 = $(SRCDIR_BASIC_COMMON) c64/basic/,target_mega65
|
||||
|
||||
@@ -65,7 +65,6 @@ Note: vectors at `$0300` are not supported yet - for now only the locations belo
|
||||
| `($A000)` | | cold start | PARTIAL | |
|
||||
| `($A002)` | | warm start | PARTIAL | |
|
||||
|
||||
|
||||
<br />
|
||||
|
||||
### Unofficial BASIC routines/locations
|
||||
@@ -82,7 +81,7 @@ Not all of them - only these we want to have implemented.
|
||||
| `$AB1E` | STROUT | DONE | |
|
||||
| `$BDCD` | LINPRT | NOT DONE | |
|
||||
| `$E3BF` | INIT | NOT DONE | |
|
||||
| `$E422` | INITMSG | NOT DONE | |
|
||||
| `$E422` | INITMSG | PARTIAL | banner printed outside |
|
||||
| `$E453` | RVECT | NOT DONE | |
|
||||
|
||||
<br />
|
||||
|
||||
@@ -9,3 +9,5 @@
|
||||
#endif
|
||||
|
||||
.label print_hex_byte = KERNAL.print_hex_byte
|
||||
.label print_return = KERNAL.print_return
|
||||
.label print_space = KERNAL.print_space
|
||||
@@ -49,10 +49,8 @@ basic_cold_start:
|
||||
sbc TXTTAB+1
|
||||
|
||||
jsr print_integer
|
||||
jsr print_space
|
||||
|
||||
lda #$20
|
||||
jsr JCHROUT
|
||||
|
||||
// Print the rest of the start up message
|
||||
ldx #34
|
||||
jsr print_packed_message
|
||||
|
||||
@@ -6,8 +6,7 @@ basic_do_error:
|
||||
pha
|
||||
|
||||
// Print ? at start
|
||||
lda #$0D
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
lda #$3F
|
||||
jsr JCHROUT
|
||||
|
||||
@@ -17,8 +16,7 @@ basic_do_error:
|
||||
jsr print_packed_message
|
||||
|
||||
// Print ERROR at end
|
||||
lda #$20
|
||||
jsr JCHROUT
|
||||
jsr print_space
|
||||
ldx #33
|
||||
jsr print_packed_message
|
||||
|
||||
@@ -26,10 +24,8 @@ basic_do_error:
|
||||
|
||||
// XXX print line number if not in direct mode
|
||||
|
||||
lda #$0D
|
||||
jsr JCHROUT
|
||||
lda #$0D // XXX do we need this?
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
jsr print_return
|
||||
|
||||
// Reset stack, and go back to main loop
|
||||
ldx #$FE
|
||||
|
||||
@@ -34,7 +34,7 @@ got_line_of_input:
|
||||
stx __tokenise_work1
|
||||
|
||||
// Strip leading spaces from the line
|
||||
remove_leading_spaces:
|
||||
remove_leading_spaces:
|
||||
lda $0200
|
||||
cmp #$20
|
||||
bne !+
|
||||
@@ -51,15 +51,14 @@ rsl_l1: lda $0200,x
|
||||
bne remove_leading_spaces
|
||||
!:
|
||||
// Do printing of the new line
|
||||
lda #$0d
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
|
||||
// Ignore empty lines
|
||||
lda __tokenise_work1
|
||||
beq basic_read_next_line
|
||||
|
||||
// Else, tokenise the line
|
||||
jsr tokenise_line
|
||||
jsr tokenise_line
|
||||
|
||||
// Has the user entered a line of BASIC beginning with a number?
|
||||
lda $0200
|
||||
|
||||
@@ -19,8 +19,7 @@ basic_warm_start:
|
||||
jsr print_hex_byte
|
||||
lda CMP0+0
|
||||
jsr print_hex_byte
|
||||
lda #$0D
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
|
||||
!:
|
||||
jmp basic_main_loop
|
||||
@@ -16,7 +16,7 @@ cmd_stop:
|
||||
jsr print_integer
|
||||
|
||||
!:
|
||||
lda #$0D
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
|
||||
cmd_end:
|
||||
jmp basic_main_loop
|
||||
@@ -60,8 +60,7 @@ list_single_line: // entry point needed by DOS wedge
|
||||
tax
|
||||
pla
|
||||
jsr print_integer
|
||||
lda #$20
|
||||
jsr JCHROUT
|
||||
jsr print_space
|
||||
|
||||
// Iterate through printing out the line
|
||||
// contents
|
||||
@@ -69,7 +68,7 @@ list_single_line: // entry point needed by DOS wedge
|
||||
sta QTSW
|
||||
|
||||
ldy #4
|
||||
list_print_loop:
|
||||
list_print_loop:
|
||||
|
||||
#if CONFIG_MEMORY_MODEL_60K
|
||||
ldx #<OLDTXT
|
||||
@@ -145,7 +144,6 @@ list_end_of_line:
|
||||
lda #$92
|
||||
jsr JCHROUT
|
||||
// Print end of line
|
||||
lda #$0d
|
||||
jsr JCHROUT
|
||||
rts
|
||||
jmp print_return
|
||||
|
||||
|
||||
@@ -125,12 +125,11 @@ do_TO_MANY_FILES_error:
|
||||
|
||||
// Error # in X
|
||||
|
||||
do_basic_error:
|
||||
do_basic_error:
|
||||
// "?"
|
||||
txa
|
||||
pha
|
||||
lda #$0d
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
lda #$3f
|
||||
jsr JCHROUT
|
||||
pla
|
||||
@@ -140,8 +139,7 @@ do_basic_error:
|
||||
jsr print_packed_message
|
||||
|
||||
// A space between error name and word error
|
||||
lda #$20
|
||||
jsr $ffd2
|
||||
jsr print_space
|
||||
|
||||
// "ERROR"
|
||||
ldx #33
|
||||
@@ -160,12 +158,10 @@ do_basic_error:
|
||||
jsr print_integer
|
||||
!:
|
||||
// New lines
|
||||
lda #$0d
|
||||
jsr $ffd2
|
||||
jsr print_return
|
||||
lda #$00
|
||||
jsr $ffd2
|
||||
jsr JCHROUT
|
||||
|
||||
// XXX - Restore stack depth first?
|
||||
|
||||
jmp basic_main_loop
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
|
||||
// XXX provide documentation and implementation
|
||||
// XXX provide documentation and finish the implementation
|
||||
|
||||
INITMSG:
|
||||
STUB_IMPLEMENTATION()
|
||||
|
||||
// Print PAL/NTSC
|
||||
ldx #30 // NTSC
|
||||
lda TVSFLG
|
||||
beq !+
|
||||
ldx #31 // PAL
|
||||
!:
|
||||
jsr print_packed_message
|
||||
|
||||
// Work out free bytes, display them
|
||||
jsr basic_do_new
|
||||
lda MEMSIZ+0
|
||||
sec
|
||||
sbc TXTTAB+0
|
||||
tax
|
||||
lda MEMSIZ+1
|
||||
sbc TXTTAB+1
|
||||
|
||||
jsr print_integer
|
||||
jsr print_space
|
||||
|
||||
// Print the rest of the start up message
|
||||
ldx #34
|
||||
jmp print_packed_message
|
||||
@@ -38,8 +38,7 @@ found_message_in_token_stream:
|
||||
cmp #$ff
|
||||
beq !+
|
||||
jsr print_packed_word
|
||||
lda #$20
|
||||
jsr JCHROUT
|
||||
jsr print_space
|
||||
pla
|
||||
tay
|
||||
iny
|
||||
|
||||
@@ -209,8 +209,7 @@ wedge_dos_directory_display:
|
||||
wedge_dos_clean_exit:
|
||||
jsr JCLALL
|
||||
// Print new line
|
||||
lda #$0D
|
||||
jsr JCHROUT
|
||||
jsr print_return
|
||||
jmp basic_end_of_line
|
||||
|
||||
wedge_dos_basic_error:
|
||||
|
||||
@@ -132,8 +132,7 @@ lvs_display_done:
|
||||
jsr print_hex_byte
|
||||
lda STAL+0
|
||||
jsr print_hex_byte
|
||||
lda #$0D
|
||||
jmp JCHROUT
|
||||
jmp print_return
|
||||
|
||||
lvs_wrap_around_error:
|
||||
// This error is probably not even detected by C64 Kernal;
|
||||
|
||||
File renamed without changes.
@@ -0,0 +1,8 @@
|
||||
|
||||
//
|
||||
// Print the carriage return
|
||||
//
|
||||
|
||||
print_return:
|
||||
lda #$0D // carriage return code
|
||||
jmp JCHROUT
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
//
|
||||
// Print the space character
|
||||
//
|
||||
|
||||
print_space:
|
||||
lda #$20 // space code
|
||||
jmp JCHROUT
|
||||
File renamed without changes.
Reference in new issue
Block a user