diff --git a/c64/basic/,aliases.s b/c64/basic/,aliases.s index 2e1fee26..8a4733fc 100644 --- a/c64/basic/,aliases.s +++ b/c64/basic/,aliases.s @@ -168,6 +168,47 @@ .alias ILOAD $0330 .alias ISAVE $0331 + ;; Kernal jump table + .alias JCINT $FF81 + .alias JIOINIT $FF84 + .alias JRAMTAS $FF87 + .alias JRESTOR $FF8A + .alias JVECTOR $FF8D + .alias JSETMSG $FF90 + .alias JSECOND $FF93 + .alias JTKSA $FF96 + .alias JMEMTOP $FF99 + .alias JMEMBOT $FF9C + .alias JSCNKEY $FF9F + .alias JSETTMO $FFA2 + .alias JACPTR $FFA5 + .alias JCIOUT $FFA8 + .alias JUNTLK $FFAB + .alias JUNLSN $FFAE + .alias JLISTEN $FFB1 + .alias JTALK $FFB4 + .alias JREADST $FFB7 + .alias JSETFLS $FFBA + .alias JSETNAM $FFBD + .alias JOPEN $FFC0 + .alias JCLOSE $FFC3 + .alias JCHKIN $FFC6 + .alias JCHKOUT $FFC9 + .alias JCLRCHN $FFCC + .alias JCHRIN $FFCF + .alias JCHROUT $FFD2 + .alias JLOAD $FFD5 + .alias JSAVE $FFD8 + .alias JSETTIM $FFDB + .alias JRDTIM $FFDE + .alias JSTOP $FFE1 + .alias JGETIN $FFE4 + .alias JCLALL $FFE7 + .alias JUDTIM $FFEA + .alias JSCREEN $FFED + .alias JPLOT $FFF0 + .alias JIOBASE $FFF3 + ;; BASIC uses some extra bytes for memory access under ROMs located at $2A7 onwards ;; IRQs are disabled when doing such accesses, and a default NMI handler only increments ;; a counter, so that if an NMI occurs, it doesn't crash the machine, but can be captured. diff --git a/c64/basic/ab1e.print_string.s b/c64/basic/ab1e.print_string.s index 9ca8a586..0ea252a3 100644 --- a/c64/basic/ab1e.print_string.s +++ b/c64/basic/ab1e.print_string.s @@ -20,7 +20,7 @@ print_string_loop: lda (temp_string_ptr),y beq print_string_end - jsr $FFD2 ; KERNAL CHROUT + jsr JCHROUT txa tay diff --git a/c64/basic/basic_cold_start.s b/c64/basic/basic_cold_start.s index 7ffb94f6..6e231458 100644 --- a/c64/basic/basic_cold_start.s +++ b/c64/basic/basic_cold_start.s @@ -64,7 +64,7 @@ startup_banner: jsr print_integer lda #$20 - jsr $ffd2 + jsr JCHROUT ;; Print the rest of the start up message ldx #34 diff --git a/c64/basic/basic_do_error.s b/c64/basic/basic_do_error.s index 584bfe19..731f99c2 100644 --- a/c64/basic/basic_do_error.s +++ b/c64/basic/basic_do_error.s @@ -7,9 +7,9 @@ basic_do_error: ;; Print ? at start lda #$0d - jsr $ffd2 + jsr JCHROUT lda #$3f - jsr $ffd2 + jsr JCHROUT ;; Print main part of error message pla @@ -18,7 +18,7 @@ basic_do_error: ;; Print ERROR at end lda #$20 - jsr $ffd2 + jsr JCHROUT ldx #33 jsr print_packed_message @@ -27,9 +27,9 @@ basic_do_error: ;; XXX print line number if not in direct mode lda #$0d - jsr $ffd2 + jsr JCHROUT lda #$0d - jsr $ffd2 + jsr JCHROUT ;; Reset stack, and go back to main loop ldx #$fe diff --git a/c64/basic/basic_main_loop.s b/c64/basic/basic_main_loop.s index 233bd60c..69e12c9d 100644 --- a/c64/basic/basic_main_loop.s +++ b/c64/basic/basic_main_loop.s @@ -52,7 +52,7 @@ rsl_l1: lda $0200,x * ;; Do printing of the new line lda #$0d - jsr $ffd2 + jsr JCHROUT ;; Ignore empty lines lda tokenise_work1 diff --git a/c64/basic/cmd_break.s b/c64/basic/cmd_break.s index 38c7bd3d..36128422 100644 --- a/c64/basic/cmd_break.s +++ b/c64/basic/cmd_break.s @@ -17,7 +17,7 @@ basic_do_break: * lda #$0d - jsr $ffd2 + jsr JCHROUT cmd_end: jmp basic_main_loop diff --git a/c64/basic/cmd_list.s b/c64/basic/cmd_list.s index ba02f675..f93ee033 100644 --- a/c64/basic/cmd_list.s +++ b/c64/basic/cmd_list.s @@ -36,7 +36,7 @@ list_more_lines: pla jsr print_integer lda #$20 - jsr $ffd2 + jsr JCHROUT ;; Iterate through printing out the line ;; contents @@ -105,17 +105,17 @@ list_not_rem: bne list_print_loop list_is_literal: - jsr $ffd2 + jsr JCHROUT iny bne list_print_loop list_end_of_line: ;; Clear reverse flag lda #$92 - jsr $ffd2 + jsr JCHROUT ;; Print end of line lda #$0d - jsr $ffd2 + jsr JCHROUT ;; Now link to the next line jsr basic_find_next_line diff --git a/c64/basic/cmd_load.s b/c64/basic/cmd_load.s index 30cc57b0..9713a41b 100644 --- a/c64/basic/cmd_load.s +++ b/c64/basic/cmd_load.s @@ -18,7 +18,7 @@ cmd_load: beq + lda #$00 ; direct mode - don't display anything * - jsr $FF90 ; SETMSG + jsr JSETMSG ;; XXX temporary, to set valid device number lda #$08 @@ -69,7 +69,7 @@ got_filename: ldx #<$0801 ; LOAD address = $0801 ldy #>$0801 - jsr $ffd5 + jsr JLOAD bcc + ;; A = KERNAL error code, which also almost match diff --git a/c64/basic/cmd_new.s b/c64/basic/cmd_new.s index ce355946..9d5f9d94 100644 --- a/c64/basic/cmd_new.s +++ b/c64/basic/cmd_new.s @@ -41,7 +41,7 @@ basic_do_new: ;; (same story), expression value cache? sec ; Read, not write value - jsr $ff99 ; KERNAL MEMTOP routine + jsr JMEMTOP cpx #$80 beq + lda #>$f7ff diff --git a/c64/basic/print_integer.s b/c64/basic/print_integer.s index 739f8b8b..f5d93fa7 100644 --- a/c64/basic/print_integer.s +++ b/c64/basic/print_integer.s @@ -58,7 +58,7 @@ hi_loop: pha ldx #4 clc -hi_add_loop: +hi_add_loop: lda $0100,x adc number_table_hi,y sta $0100,x @@ -115,7 +115,7 @@ found_start_of_number: ;; Print digits * lda $0100,y ora #$30 - jsr $ffd2 + jsr JCHROUT iny cpy #5 bne - diff --git a/c64/basic/print_packed_message.s b/c64/basic/print_packed_message.s index 58481e82..006bf70e 100644 --- a/c64/basic/print_packed_message.s +++ b/c64/basic/print_packed_message.s @@ -38,7 +38,7 @@ found_message_in_token_stream: beq + jsr print_packed_word lda #$20 - jsr $ffd2 + jsr JCHROUT pla tay iny @@ -47,7 +47,7 @@ found_message_in_token_stream: pla ;; Rub out space at the end lda #$14 - jsr $ffd2 + jsr JCHROUT rts print_packed_word: @@ -138,13 +138,13 @@ next_packed_word_char: lsr tax - ;; Save Y so it doesn't get clobbered by $FFD2 + ;; Save Y so it doesn't get clobbered by CHROUT tya pha ;; X=1-14 = first 14 chars, so subtract one lda packed_message_chars-1,x - jsr $FFD2 + jsr JCHROUT ;; See if there is a char in the low nybl to print pla @@ -171,7 +171,7 @@ has_nybl: ;; X=1-14 = first 14 chars, so subtract one lda packed_message_chars-1,x - jsr $FFD2 + jsr JCHROUT * pla tay @@ -207,7 +207,7 @@ unpack_literal_char: tya pha lda (temp_string_ptr),y - jsr $ffd2 + jsr JCHROUT pla tay rts diff --git a/c64/basic/printf.s b/c64/basic/printf.s index c1edc71c..ceb4337b 100644 --- a/c64/basic/printf.s +++ b/c64/basic/printf.s @@ -112,7 +112,7 @@ not_hexword: not_pointer: ;; Print character - jsr $ffd2 + jsr JCHROUT printf_nextchar: jsr printf_advance @@ -148,11 +148,11 @@ printf_printhexbyte: cmp #$3A bcc + adc #6 -* jsr $ffd2 +* jsr JCHROUT pla and #$0f ora #$30 cmp #$3A bcc + adc #6 -* jmp $ffd2 +* jmp JCHROUT diff --git a/c64/basic/wedge_dos.s b/c64/basic/wedge_dos.s index d01967ca..5914c280 100644 --- a/c64/basic/wedge_dos.s +++ b/c64/basic/wedge_dos.s @@ -17,7 +17,7 @@ wedge_dos: ;; Set remaining file parameters; channel 15 is a typical one for commands lda #$0F ldy #$0F - jsr $FFBA ; SETLFS + jsr JSETFLS ;; Now we have to check what the user wants us to do diff --git a/c64/kernal/,aliases.s b/c64/kernal/,aliases.s index e4dd19ca..3f6150db 100644 --- a/c64/kernal/,aliases.s +++ b/c64/kernal/,aliases.s @@ -108,6 +108,47 @@ .alias ILOAD $0330 .alias ISAVE $0331 + ;; Kernal jump table + .alias JCINT $FF81 + .alias JIOINIT $FF84 + .alias JRAMTAS $FF87 + .alias JRESTOR $FF8A + .alias JVECTOR $FF8D + .alias JSETMSG $FF90 + .alias JSECOND $FF93 + .alias JTKSA $FF96 + .alias JMEMTOP $FF99 + .alias JMEMBOT $FF9C + .alias JSCNKEY $FF9F + .alias JSETTMO $FFA2 + .alias JACPTR $FFA5 + .alias JCIOUT $FFA8 + .alias JUNTLK $FFAB + .alias JUNLSN $FFAE + .alias JLISTEN $FFB1 + .alias JTALK $FFB4 + .alias JREADST $FFB7 + .alias JSETFLS $FFBA + .alias JSETNAM $FFBD + .alias JOPEN $FFC0 + .alias JCLOSE $FFC3 + .alias JCHKIN $FFC6 + .alias JCHKOUT $FFC9 + .alias JCLRCHN $FFCC + .alias JCHRIN $FFCF + .alias JCHROUT $FFD2 + .alias JLOAD $FFD5 + .alias JSAVE $FFD8 + .alias JSETTIM $FFDB + .alias JRDTIM $FFDE + .alias JSTOP $FFE1 + .alias JGETIN $FFE4 + .alias JCLALL $FFE7 + .alias JUDTIM $FFEA + .alias JSCREEN $FFED + .alias JPLOT $FFF0 + .alias JIOBASE $FFF3 + ;; Under-ROM routines ;; (BASIC also includes them. XXX - We should de-duplicate them in a safe manner) .alias missed_nmi_flag $2A7 diff --git a/c64/kernal/ff81.s b/c64/kernal/ff81.jcint.s similarity index 100% rename from c64/kernal/ff81.s rename to c64/kernal/ff81.jcint.s diff --git a/c64/kernal/ff84.s b/c64/kernal/ff84.jioinit.s similarity index 100% rename from c64/kernal/ff84.s rename to c64/kernal/ff84.jioinit.s diff --git a/c64/kernal/ff87.s b/c64/kernal/ff87.jramtas.s similarity index 100% rename from c64/kernal/ff87.s rename to c64/kernal/ff87.jramtas.s diff --git a/c64/kernal/ff8a.s b/c64/kernal/ff8a.jrestor.s similarity index 100% rename from c64/kernal/ff8a.s rename to c64/kernal/ff8a.jrestor.s diff --git a/c64/kernal/ff8d.s b/c64/kernal/ff8d.jvector.s similarity index 100% rename from c64/kernal/ff8d.s rename to c64/kernal/ff8d.jvector.s diff --git a/c64/kernal/ff90.s b/c64/kernal/ff90.jsetmsg.s similarity index 100% rename from c64/kernal/ff90.s rename to c64/kernal/ff90.jsetmsg.s diff --git a/c64/kernal/ff93.s b/c64/kernal/ff93.jsecond.s similarity index 100% rename from c64/kernal/ff93.s rename to c64/kernal/ff93.jsecond.s diff --git a/c64/kernal/ff96.s b/c64/kernal/ff96.jtksa.s similarity index 100% rename from c64/kernal/ff96.s rename to c64/kernal/ff96.jtksa.s diff --git a/c64/kernal/ff99.s b/c64/kernal/ff99.jmemtop.s similarity index 100% rename from c64/kernal/ff99.s rename to c64/kernal/ff99.jmemtop.s diff --git a/c64/kernal/ff9c.s b/c64/kernal/ff9c.jmembot.s similarity index 100% rename from c64/kernal/ff9c.s rename to c64/kernal/ff9c.jmembot.s diff --git a/c64/kernal/ff9f.s b/c64/kernal/ff9f.jscnkey.s similarity index 100% rename from c64/kernal/ff9f.s rename to c64/kernal/ff9f.jscnkey.s diff --git a/c64/kernal/ffa2.s b/c64/kernal/ffa2.jsettmo.s similarity index 100% rename from c64/kernal/ffa2.s rename to c64/kernal/ffa2.jsettmo.s diff --git a/c64/kernal/ffa5.s b/c64/kernal/ffa5.jacptr.s similarity index 100% rename from c64/kernal/ffa5.s rename to c64/kernal/ffa5.jacptr.s diff --git a/c64/kernal/ffa8.s b/c64/kernal/ffa8.jciout.s similarity index 100% rename from c64/kernal/ffa8.s rename to c64/kernal/ffa8.jciout.s diff --git a/c64/kernal/ffab.s b/c64/kernal/ffab.juntlk.s similarity index 100% rename from c64/kernal/ffab.s rename to c64/kernal/ffab.juntlk.s diff --git a/c64/kernal/ffae.s b/c64/kernal/ffae.junlsn.s similarity index 100% rename from c64/kernal/ffae.s rename to c64/kernal/ffae.junlsn.s diff --git a/c64/kernal/ffb1.s b/c64/kernal/ffb1.jlisten.s similarity index 100% rename from c64/kernal/ffb1.s rename to c64/kernal/ffb1.jlisten.s diff --git a/c64/kernal/ffb4.s b/c64/kernal/ffb4.jtalk.s similarity index 100% rename from c64/kernal/ffb4.s rename to c64/kernal/ffb4.jtalk.s diff --git a/c64/kernal/ffb7.s b/c64/kernal/ffb7.jreadst.s similarity index 100% rename from c64/kernal/ffb7.s rename to c64/kernal/ffb7.jreadst.s diff --git a/c64/kernal/ffba.s b/c64/kernal/ffba.jsetfls.s similarity index 87% rename from c64/kernal/ffba.s rename to c64/kernal/ffba.jsetfls.s index 4e68df53..6ad1fe44 100644 --- a/c64/kernal/ffba.s +++ b/c64/kernal/ffba.jsetfls.s @@ -1,3 +1,3 @@ ; Set logical, first and second addresses ; C64 Programmer's Reference Guide Page 273 - jmp setlfs + jmp setfls diff --git a/c64/kernal/ffbd.s b/c64/kernal/ffbd.setnam.s similarity index 100% rename from c64/kernal/ffbd.s rename to c64/kernal/ffbd.setnam.s diff --git a/c64/kernal/ffc0.s b/c64/kernal/ffc0.jopen.s similarity index 100% rename from c64/kernal/ffc0.s rename to c64/kernal/ffc0.jopen.s diff --git a/c64/kernal/ffc3.s b/c64/kernal/ffc3.jclose.s similarity index 100% rename from c64/kernal/ffc3.s rename to c64/kernal/ffc3.jclose.s diff --git a/c64/kernal/ffc6.s b/c64/kernal/ffc6.jchkin.s similarity index 100% rename from c64/kernal/ffc6.s rename to c64/kernal/ffc6.jchkin.s diff --git a/c64/kernal/ffc9.s b/c64/kernal/ffc9.jchkout.s similarity index 100% rename from c64/kernal/ffc9.s rename to c64/kernal/ffc9.jchkout.s diff --git a/c64/kernal/ffcc.s b/c64/kernal/ffcc.jclrchn.s similarity index 100% rename from c64/kernal/ffcc.s rename to c64/kernal/ffcc.jclrchn.s diff --git a/c64/kernal/ffcf.s b/c64/kernal/ffcf.jchrin.s similarity index 100% rename from c64/kernal/ffcf.s rename to c64/kernal/ffcf.jchrin.s diff --git a/c64/kernal/ffd2.s b/c64/kernal/ffd2.jchrout.s similarity index 100% rename from c64/kernal/ffd2.s rename to c64/kernal/ffd2.jchrout.s diff --git a/c64/kernal/ffd5.s b/c64/kernal/ffd5.jload.s similarity index 100% rename from c64/kernal/ffd5.s rename to c64/kernal/ffd5.jload.s diff --git a/c64/kernal/ffd8.s b/c64/kernal/ffd8.jsave.s similarity index 100% rename from c64/kernal/ffd8.s rename to c64/kernal/ffd8.jsave.s diff --git a/c64/kernal/ffdb.s b/c64/kernal/ffdb.jsettim.s similarity index 100% rename from c64/kernal/ffdb.s rename to c64/kernal/ffdb.jsettim.s diff --git a/c64/kernal/ffde.s b/c64/kernal/ffde.jrdtim.s similarity index 100% rename from c64/kernal/ffde.s rename to c64/kernal/ffde.jrdtim.s diff --git a/c64/kernal/ffe1.s b/c64/kernal/ffe1.jstop.s similarity index 100% rename from c64/kernal/ffe1.s rename to c64/kernal/ffe1.jstop.s diff --git a/c64/kernal/ffe4.s b/c64/kernal/ffe4.jgetin.s similarity index 100% rename from c64/kernal/ffe4.s rename to c64/kernal/ffe4.jgetin.s diff --git a/c64/kernal/ffe7.s b/c64/kernal/ffe7.jclall.s similarity index 100% rename from c64/kernal/ffe7.s rename to c64/kernal/ffe7.jclall.s diff --git a/c64/kernal/ffea.s b/c64/kernal/ffea.judtim.s similarity index 100% rename from c64/kernal/ffea.s rename to c64/kernal/ffea.judtim.s diff --git a/c64/kernal/ffed.s b/c64/kernal/ffed.jscreen.s similarity index 100% rename from c64/kernal/ffed.s rename to c64/kernal/ffed.jscreen.s diff --git a/c64/kernal/fff0.s b/c64/kernal/fff0.jplot.s similarity index 100% rename from c64/kernal/fff0.s rename to c64/kernal/fff0.jplot.s diff --git a/c64/kernal/fff3.s b/c64/kernal/fff3.jiobase.s similarity index 85% rename from c64/kernal/fff3.s rename to c64/kernal/fff3.jiobase.s index 4870c7ba..ee3a1730 100644 --- a/c64/kernal/fff3.s +++ b/c64/kernal/fff3.jiobase.s @@ -3,7 +3,7 @@ ; (http://codebase64.org/doku.php?id=base:kernalreference) ; ; As there is nothing between here and $FFFA, we can just hard code this in place. -LDY #$DC -LDX #$00 -RTS + ldy #$DC + ldx #$00 + rts diff --git a/c64/kernal/load.s b/c64/kernal/load.s index 1a853b95..7068cc72 100644 --- a/c64/kernal/load.s +++ b/c64/kernal/load.s @@ -44,12 +44,12 @@ print_filename_loop: beq + ldx #