Merge branch 'devel'

This commit is contained in:
FeralChild64 committed 2019-08-06 17:37:54 +02:00
commit 87b6a3f19a
64 files changed
+267 -160

No files matched your search

+1 -1
View File
@@ -30,7 +30,7 @@ The following ROM features are currently missing:
Features currently being worked on:
* IEC support needs more testing ang bugfixing; alternative drive ROMs (JiffyDOS, DolphinDOS, etc) usually don't work with current implementation, `@$` leaves the drive led on, most likely other problems can be found
* IEC support needs more work; alternative drive ROMs (JiffyDOS, DolphinDOS, etc) usually don't work with current implementation, SAVE / VERIFY are not implemented, etc.
# API status
+1 -1
View File
@@ -20,7 +20,7 @@ print_string_loop:
lda (temp_string_ptr),y
beq print_string_end
jsr via_IBSOUT
jsr JCHROUT
txa
tay
+1 -1
View File
@@ -29,7 +29,7 @@ startup_banner:
jsr print_integer
lda #$20
jsr via_IBSOUT
jsr JCHROUT
;; Print the rest of the start up message
ldx #34
+5 -5
View File
@@ -7,9 +7,9 @@ basic_do_error:
;; Print ? at start
lda #$0d
jsr via_IBSOUT
jsr JCHROUT
lda #$3f
jsr via_IBSOUT
jsr JCHROUT
;; Print main part of error message
pla
@@ -18,7 +18,7 @@ basic_do_error:
;; Print ERROR at end
lda #$20
jsr via_IBSOUT
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 via_IBSOUT
jsr JCHROUT
lda #$0d
jsr via_IBSOUT
jsr JCHROUT
;; Reset stack, and go back to main loop
ldx #$fe
+1 -1
View File
@@ -52,7 +52,7 @@ rsl_l1: lda $0200,x
*
;; Do printing of the new line
lda #$0d
jsr via_IBSOUT
jsr JCHROUT
;; Ignore empty lines
lda tokenise_work1
+1 -1
View File
@@ -17,7 +17,7 @@ basic_do_break:
*
lda #$0d
jsr via_IBSOUT
jsr JCHROUT
cmd_end:
jmp basic_main_loop
+4 -4
View File
@@ -42,7 +42,7 @@ list_single_line: ; entry point needed by DOS wedge
pla
jsr print_integer
lda #$20
jsr via_IBSOUT
jsr JCHROUT
;; Iterate through printing out the line
;; contents
@@ -111,16 +111,16 @@ list_not_rem:
bne list_print_loop
list_is_literal:
jsr via_IBSOUT
jsr JCHROUT
iny
bne list_print_loop
list_end_of_line:
;; Clear reverse flag
lda #$92
jsr via_IBSOUT
jsr JCHROUT
;; Print end of line
lda #$0d
jsr via_IBSOUT
jsr JCHROUT
rts
+3 -2
View File
@@ -191,6 +191,7 @@ end_of_line_search:
pla
sta basic_current_line_ptr+0
jmp basic_relink_loop
via_ILOAD:
jmp (ILOAD)
+1 -1
View File
@@ -115,7 +115,7 @@ found_start_of_number:
;; Print digits
* lda $0100,y
ora #$30
jsr via_IBSOUT
jsr JCHROUT
iny
cpy #5
bne -
+5 -5
View File
@@ -38,7 +38,7 @@ found_message_in_token_stream:
beq +
jsr print_packed_word
lda #$20
jsr via_IBSOUT
jsr JCHROUT
pla
tay
iny
@@ -47,7 +47,7 @@ found_message_in_token_stream:
pla
;; Rub out space at the end
lda #$14
jsr via_IBSOUT
jsr JCHROUT
rts
print_packed_word:
@@ -144,7 +144,7 @@ next_packed_word_char:
;; X=1-14 = first 14 chars, so subtract one
lda packed_message_chars-1,x
jsr via_IBSOUT
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 via_IBSOUT
jsr JCHROUT
*
pla
tay
@@ -207,7 +207,7 @@ unpack_literal_char:
tya
pha
lda (temp_string_ptr),y
jsr via_IBSOUT
jsr JCHROUT
pla
tay
rts
+3 -3
View File
@@ -112,7 +112,7 @@ not_hexword:
not_pointer:
;; Print character
jsr via_IBSOUT
jsr JCHROUT
printf_nextchar:
jsr printf_advance
@@ -148,11 +148,11 @@ printf_printhexbyte:
cmp #$3A
bcc +
adc #6
* jsr via_IBSOUT
* jsr JCHROUT
pla
and #$0f
ora #$30
cmp #$3A
bcc +
adc #6
* jmp via_IBSOUT
* jmp JCHROUT
-42
View File
@@ -1,42 +0,0 @@
;;
;; Helper routines for jumping via vectors, to be used with JSR
;;
;; Note: they are not in the order of low memory vectors, to avoid
;; similarity with the original ROMs
via_ISAVE:
jmp (ISAVE)
via_ILOAD:
jmp (ILOAD)
via_ICLOSE:
jmp (ICLOSE)
via_IOPEN:
jmp (IOPEN)
via_ICHKIN:
jmp (ICHKIN)
via_IBASIN:
jmp (IBASIN)
via_IGETIN:
jmp (IGETIN)
via_ICKOUT:
jmp (ICKOUT)
via_IBSOUT:
jmp (IBSOUT)
via_ICLRCH:
jmp (ICLRCH)
via_ICLALL:
jmp (ICLALL)
via_ISTOP:
jmp (ISTOP)
+15 -15
View File
@@ -4,7 +4,7 @@
wedge_dos:
;; Close all the channels, so that wedge has full control
jsr via_ICLALL
jsr JCLALL
;; Set file parameters, channel 15 is a typical one for commands
jsr select_device ; sets X register
@@ -41,11 +41,11 @@ wedge_dos_command:
jsr wedge_dos_setnam
jsr JSETNAM
jsr via_IOPEN
jsr JOPEN
bcs wedge_dos_basic_error
;; Retrieve status, print it if not OK
jsr via_ICLALL
jsr JCLALL
jsr wedge_dos_status_get
lda BUF+0
cmp #$30 ; '0'
@@ -82,12 +82,12 @@ wedge_dos_status_get:
;; Set remaining file parameters, open the channel
lda #$00 ; empty file name
jsr JSETNAM
jsr via_IOPEN
jsr JOPEN
bcs wedge_dos_basic_error
;; Set channel for input
ldx #$0F
jsr via_ICHKIN
jsr JCHKIN
bcs wedge_dos_basic_error
ldy #$00
@@ -98,7 +98,7 @@ wedge_dos_status_get:
;; XXX error in case of status != EOF
;; Print out everything retrieved from the drive
bne +
jsr via_IBASIN
jsr JCHRIN
bcs wedge_dos_basic_error
sta BUF, y
iny
@@ -118,7 +118,7 @@ wedge_dos_status_print:
dey
bmi +
lda BUF, x
jsr via_IBSOUT
jsr JCHROUT
inx
bne -
*
@@ -139,18 +139,18 @@ wedge_dos_directory:
jsr wedge_dos_setnam
;; Open the file
jsr via_IOPEN
jsr JOPEN
bcs wedge_dos_basic_error
;; Set channel for file reading
ldx #$00
jsr via_ICHKIN
jsr JCHKIN
bcs wedge_dos_basic_error
;; Ignore start address (2 first bytes) - XXX check for errors
jsr via_IBASIN
jsr JCHRIN
bcs wedge_dos_basic_error
jsr via_IBASIN
jsr JCHRIN
bcs wedge_dos_basic_error
wedge_dos_directory_line:
@@ -159,7 +159,7 @@ wedge_dos_directory_line:
ldy #$FF
*
iny
jsr via_IBASIN
jsr JCHRIN
bcs wedge_dos_basic_error
sta BUF, y
cpy #$50
@@ -199,15 +199,15 @@ wedge_dos_directory_display:
;; FALLTROUGH
wedge_dos_clean_exit:
jsr via_ICLALL
jsr JCLALL
;; Print new line
lda #$0D
jsr via_IBSOUT
jsr JCHROUT
jmp basic_end_of_line
wedge_dos_basic_error:
pha
jsr via_ICLALL
jsr JCLALL
pla
tax
dex
@@ -14,7 +14,7 @@
;; If from keyboard, then it gets a whole line of input, and returns the first char.
;; Repeated calls after that read out the successive bytes of the line of input.
chrin:
chrin_real:
;; Determine the device number
lda DFLTN
@@ -9,7 +9,7 @@
;;
chrout:
chrout_real:
sta last_printed_character_ascii
@@ -9,7 +9,7 @@
;;
clall:
clall_real:
;; Store .Y register
tya
@@ -23,7 +23,7 @@ clall:
beq +
dey
lda LAT, y
jsr close ; XXX jump through ICLOSE?
jsr JCLOSE
jmp -
*
;; Restore .Y register
+23
View File
@@ -0,0 +1,23 @@
;; Common ppart of CLOSE and LOAD routines
close_load:
tax
;; Command drive to stop talking and to close the file
jsr untlk
txa
jsr listen
lda #$E0 ; CLOSE command
sta IEC_TMP2
jsr iec_tx_command
jsr iec_tx_command_finalize
;; Tell drive to unlisten
jsr unlsn
rts
@@ -9,7 +9,7 @@
;;
clrchn:
clrchn_real:
;; Handle IEC input device
lda DFLTN
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
File renamed without changes.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+6
View File
@@ -0,0 +1,6 @@
;; Our implementation is longer than the original one,
;; placing it here would cause a collision with CHROUT
chrin:
jmp chrin_real
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+6
View File
@@ -0,0 +1,6 @@
;; Our implementation is longer than the original one,
;; placing it here would cause a collision with CHKIN
chrout:
jmp chrout_real
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
@@ -26,14 +26,19 @@ close:
;; IEC device
jsr iec_tx_flush ; make sure no byte is awaiting
*
lda SAT, y ; get secondary address
cmp #$60
bne +
;; workaround for using CLOSE on reading executable - XXX is this a proper way?
jsr close_load
jmp close_remove_from_table
*
ora $E0 ; CLOSE command
sta IEC_TMP2
jsr iec_tx_command
bcs close_remove_from_table
jsr iec_tx_command_finalize
close_remove_from_table:
;; Remove channel from the table
iny
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+6
View File
@@ -0,0 +1,6 @@
;; Our implementation is longer than the original one,
;; placing it here would cause a collision with CLRCHN
clall:
jmp clall_real
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+6
View File
@@ -0,0 +1,6 @@
;; Our implementation is longer than the original one,
;; placing it here would cause a collision with OPEN
clrchn:
jmp clrchn_real
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
File renamed without changes.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+1 -12
View File
@@ -125,19 +125,8 @@ load_loop:
;; Close file on drive
;; Command drive to stop talking and to close the file
jsr untlk
lda current_device_number
jsr listen
lda #$E0
sta IEC_TMP2
jsr iec_tx_command
jsr iec_tx_command_finalize
;; Tell drive to unlisten
jsr unlsn
jsr close_load
;; Return last address
jmp lvs_return_last_address
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
File renamed without changes.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
File renamed without changes.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+8
View File
@@ -0,0 +1,8 @@
All the Kernal routines, for which there are vectors in $0314-$0333, have to be available at their original addresses.
Reason: some autostart software (https://codebase64.org/doku.php?id=base:autostarting_disk_files) override these vectors, so that some point
to new locations (custom IRQ routine, custom STOP routine, etc.), while others points the original Kernal routines. Different techniques modify
different vectors (while resetting others to original C64 locations), some don't change the vectors at all, but might still put the original
C64 Kernal addresses there (for example, if the file overrides keyboard input buffer and screeen memory).
For various cartridges (like IDE64) this just means disabling their extensions; for us that would mean improperly functionning Kernal.
+2 -1
View File
@@ -1,3 +1,4 @@
; open a logical file
; C64 Programmer's Reference Guide Page 272
jmp open
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (IOPEN)
+2 -1
View File
@@ -1,3 +1,4 @@
; close a specified logical file
; C64 Programmer's Reference Guide Page 272
jmp close
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (ICLOSE)
+2 -1
View File
@@ -1,3 +1,4 @@
; Open channel for input
; C64 Programmer's Reference Guide Page 272
jmp chkin
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (ICHKIN)
+2 -1
View File
@@ -1,3 +1,4 @@
; Open channel for output
; C64 Programmer's Reference Guide Page 272
jmp ckout
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (ICKOUT)
+2 -1
View File
@@ -1,3 +1,4 @@
; close input and output channels
; C64 Programmer's Reference Guide Page 272
jmp clrchn
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (ICLRCH)
+2 -1
View File
@@ -1,3 +1,4 @@
; Input character from channel
; C64 Programmer's Reference Guide Page 272
jmp chrin
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (IBASIN)
+2 -1
View File
@@ -1,3 +1,4 @@
; Output character to channel
; C64 Programmer's Reference Guide Page 272
jmp chrout
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (IBSOUT)
+2 -1
View File
@@ -1,3 +1,4 @@
; Scan stop key
; C64 Programmer's Reference Guide Page 273
jmp stop
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (ISTOP)
+2 -1
View File
@@ -1,3 +1,4 @@
; Get character from keyboard queue (keyboard buffer)
; C64 Programmer's Reference Guide Page 272
jmp getin
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (IGETIN)
+2 -1
View File
@@ -1,3 +1,4 @@
; $FFE7 - Close all files vector
; (http://codebase64.org/doku.php?id=base:kernalreference)
jmp clall
; According to Compute's Mapping the Commodore 64 (pages 74/75), this jump is indirect
jmp (ICLALL)
-21
View File
@@ -65,24 +65,3 @@ vector_restore:
rts
.scend
;; XXX below we have quite a lot of data... should we decouple them?
vector_defaults:
.word default_irq_handler ;; CINV
.word $0000 ;; CBINV XXX implement this
.word $0000 ;; NMINV XXX implement this
.word open ;; IOPEN
.word close ;; ICLOSE
.word chkin ;; ICHKIN
.word ckout ;; ICKOUT
.word clrchn ;; ICLRCH
.word chrin ;; IBASIN
.word chrout ;; IBSOUT
.word stop ;; ISTOP
.word getin ;; IGETIN
.word clall ;; ICLALL
.word $0000 ;; USRCMD XXX implement this
.word load ;; ILOAD
.word save ;; ISAVE
+26
View File
@@ -0,0 +1,26 @@
;;
;; Default values for Kernal vectors - described in:
;;
;; - [RG64] C64 Programmer's Reference Guide - page 293 (RESTOR), 304 (VECTOR)
;; - [CM64] Compute's Mapping the Commodore 64 - page 237
;;
vector_defaults:
.word default_irq_handler ;; CINV
.word $0000 ;; CBINV XXX implement this, has to be $FE66 for autostart support
.word $0000 ;; NMINV XXX implement this, has to be $FE47 for autostart support
.word open ;; IOPEN
.word close ;; ICLOSE
.word chkin ;; ICHKIN XXX move routine to $F20E - for autostart support
.word ckout ;; ICKOUT XXX move routine to $F250 - for autostart support
.word clrchn ;; ICLRCH
.word chrin ;; IBASIN
.word chrout ;; IBSOUT
.word stop ;; ISTOP
.word getin ;; IGETIN
.word clall ;; ICLALL
.word $0000 ;; USRCMD XXX implement this, has to be $FE66 for autostart support
.word load ;; ILOAD
.word save ;; ISAVE
-3
View File
@@ -1,3 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($031C) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($031E) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($0320) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($0322) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
03 (most likely adddress higher byte) + JMP ($0324) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($0326) (via public, documented vector)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-4
View File
@@ -1,4 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($032A) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
$03 (most likely adddress higher byte) + JMP ($032C) (via public, documented vector)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.
-3
View File
@@ -1,3 +0,0 @@
JMP ($031A) (via public, documented vector) + JMP (address does not match)
Code similarity due to Kernal API usage convention. Since 6510 CPU does not have indirect JSR, the only sane possibility to use Kernal API vectors in RAM ($0314-$0333) is to have JMP ($address) hardcoded somewhere. The jump table has intentionally strange order (to avoid code similarity as much as possible), but some small similarities can't be avoided in any reasonable way.