started separating 'printf' as debug-only routine
This commit is contained in:
1 parent
c3cbfcebfb
commit
c173540fac
13 files changed
+86
-74
No files matched your search
@@ -23,4 +23,5 @@
|
||||
#define CONFIG_DOS_WEDGE
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
// #define CONFIG_STUBS_BRK
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
#define CONFIG_DBG_PRINTF
|
||||
@@ -23,4 +23,5 @@
|
||||
#define CONFIG_DOS_WEDGE
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
// #define CONFIG_STUBS_BRK
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
#define CONFIG_DBG_PRINTF
|
||||
@@ -23,4 +23,5 @@
|
||||
#define CONFIG_DOS_WEDGE
|
||||
#define CONFIG_BCD_SAFE_INTERRUPTS
|
||||
|
||||
// #define CONFIG_STUBS_BRK
|
||||
// #define CONFIG_DBG_STUBS_BRK
|
||||
#define CONFIG_DBG_PRINTF
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
.macro STUB_IMPLEMENTATION()
|
||||
{
|
||||
#if CONFIG_STUBS_BRK
|
||||
#if CONFIG_DBG_STUBS_BRK
|
||||
STUB_IMPLEMENTATION_BRK()
|
||||
#else
|
||||
STUB_IMPLEMENTATION_RTS()
|
||||
|
||||
@@ -3,5 +3,9 @@
|
||||
|
||||
#import "KERNAL_combined.sym"
|
||||
|
||||
|
||||
#if CONFIG_DBG_PRINTF
|
||||
.label printf = KERNAL.printf
|
||||
.label printf_printhexbyte = KERNAL.printf_printhexbyte
|
||||
#endif
|
||||
|
||||
.label print_hex_byte = KERNAL.print_hex_byte
|
||||
@@ -16,12 +16,11 @@ basic_warm_start:
|
||||
jsr print_packed_message
|
||||
|
||||
lda CMP0+1
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
lda CMP0+0
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
lda #$0D
|
||||
jsr JCHROUT
|
||||
|
||||
!:
|
||||
jmp basic_main_loop
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
cmd_stop:
|
||||
jsr printf // XXX don't use printf, use packed messages!
|
||||
.text "BREAK"
|
||||
.byte 0
|
||||
ldx #38 // "BREAK"
|
||||
jsr print_packed_message
|
||||
|
||||
// Check for direct mode
|
||||
// Are we in direct mode
|
||||
lda CURLIN+1
|
||||
cmp #$FF
|
||||
beq !+
|
||||
|
||||
// Not direct mode
|
||||
jsr printf // XXX don't use printf, use packed messages!
|
||||
.text " IN "
|
||||
.byte 0
|
||||
ldx #37
|
||||
jsr print_packed_message
|
||||
|
||||
lda CURLIN+1
|
||||
ldx CURLIN+0
|
||||
jsr print_integer
|
||||
|
||||
@@ -152,9 +152,8 @@ do_basic_error:
|
||||
beq !+
|
||||
|
||||
// We were in a program, so show IN <line>
|
||||
jsr printf // XXX don't use printf, use packed messages
|
||||
.text " IN "
|
||||
.byte 0
|
||||
ldx #37
|
||||
jsr print_packed_message
|
||||
|
||||
lda CURLIN+1
|
||||
ldx CURLIN+0
|
||||
|
||||
@@ -117,9 +117,9 @@ lvs_display_start_addr:
|
||||
.text " FROM $"
|
||||
.byte 0
|
||||
lda STAL+1
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
lda STAL+0
|
||||
jmp printf_printhexbyte
|
||||
jmp print_hex_byte
|
||||
|
||||
lvs_display_done:
|
||||
// Display end address
|
||||
@@ -129,9 +129,9 @@ lvs_display_done:
|
||||
.text " TO $"
|
||||
.byte 0
|
||||
lda STAL+1
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
lda STAL+0
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
lda #$0D
|
||||
jmp JCHROUT
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
//
|
||||
// Print the hex value in .A as two digits
|
||||
//
|
||||
|
||||
print_hex_byte:
|
||||
|
||||
#if HAS_BCD_SAFE_INTERRUPTS
|
||||
|
||||
// Idea by Haubitze
|
||||
|
||||
sed
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
cmp #$0A
|
||||
adc #$30
|
||||
jsr JCHROUT
|
||||
pla
|
||||
and #$0F
|
||||
cmp #$0A
|
||||
adc #$30
|
||||
cld
|
||||
jmp JCHROUT
|
||||
|
||||
#else
|
||||
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$30
|
||||
cmp #$3A
|
||||
bcc !+
|
||||
adc #6
|
||||
!: jsr JCHROUT
|
||||
pla
|
||||
and #$0f
|
||||
ora #$30
|
||||
cmp #$3A
|
||||
bcc !+
|
||||
adc #6
|
||||
!: jmp JCHROUT
|
||||
|
||||
#endif
|
||||
+7
-49
@@ -9,6 +9,8 @@
|
||||
// .byte 2,$low,$hi = display word as hex
|
||||
// .byte $f0+n,$low,$hi = display byte at $hi$lo+n as hex
|
||||
|
||||
#if CONFIG_DBG_PRINTF
|
||||
|
||||
printf:
|
||||
// Temporary storage is between end of screen at $0400
|
||||
// and the sprite pointers at $7f8
|
||||
@@ -63,7 +65,7 @@ printf_continues:
|
||||
// Read the low byte
|
||||
jsr $7f4
|
||||
// Print as hex
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
jmp printf_nextchar
|
||||
|
||||
not_hexbyte:
|
||||
@@ -77,13 +79,13 @@ not_hexbyte:
|
||||
// Read the high byte
|
||||
jsr $7f4
|
||||
// Print as hex
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
// Skip the token
|
||||
jsr printf_retreat
|
||||
// Read the low byte
|
||||
jsr $7f4
|
||||
// Print as hex
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
jsr printf_advance
|
||||
jmp printf_nextchar
|
||||
|
||||
@@ -107,7 +109,7 @@ not_hexword:
|
||||
sta $fe
|
||||
|
||||
lda ($fd),y
|
||||
jsr printf_printhexbyte
|
||||
jsr print_hex_byte
|
||||
jmp printf_nextchar
|
||||
|
||||
not_pointer:
|
||||
@@ -118,7 +120,6 @@ printf_nextchar:
|
||||
jsr printf_advance
|
||||
jmp printf_loop
|
||||
|
||||
|
||||
printf_advance:
|
||||
// Advance pointer to next character
|
||||
inc $7f5
|
||||
@@ -138,48 +139,5 @@ printf_retreat:
|
||||
sta $7f6
|
||||
rts
|
||||
|
||||
printf_printhexbyte:
|
||||
#endif // CONFIG_DBG_PRINTF
|
||||
|
||||
// Print the hex value in .A as two digits
|
||||
|
||||
#if HAS_BCD_SAFE_INTERRUPTS
|
||||
|
||||
// Idea by Haubitze
|
||||
|
||||
sed
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
cmp #$0A
|
||||
adc #$30
|
||||
jsr JCHROUT
|
||||
pla
|
||||
and #$0F
|
||||
cmp #$0A
|
||||
adc #$30
|
||||
cld
|
||||
jmp JCHROUT
|
||||
|
||||
#else
|
||||
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$30
|
||||
cmp #$3A
|
||||
bcc !+
|
||||
adc #6
|
||||
!: jsr JCHROUT
|
||||
pla
|
||||
and #$0f
|
||||
ora #$30
|
||||
cmp #$3A
|
||||
bcc !+
|
||||
adc #6
|
||||
!: jmp JCHROUT
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user