various character handling fixes
This commit is contained in:
1 parent
15021939ce
commit
f4db0f31c6
15 files changed
+43
-34
No files matched your search
@@ -79,7 +79,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
|
|||||||
| $FF9C | MEMBOT | DONE | |
|
| $FF9C | MEMBOT | DONE | |
|
||||||
| $FF9F | SCNKEY | DONE | could be better integrated with ROM |
|
| $FF9F | SCNKEY | DONE | could be better integrated with ROM |
|
||||||
| $FFA2 | SETTMO | NOT DONE | |
|
| $FFA2 | SETTMO | NOT DONE | |
|
||||||
| $FFA5 | ACPTR | NOT DONE | * work in progress |
|
| $FFA5 | ACPTR | PARTIAL | * work in progress |
|
||||||
| $FFA8 | CIOUT | DONE | |
|
| $FFA8 | CIOUT | DONE | |
|
||||||
| $FFAB | UNTLK | PARITAL | * work in progress |
|
| $FFAB | UNTLK | PARITAL | * work in progress |
|
||||||
| $FFAE | UNLSN | DONE | |
|
| $FFAE | UNLSN | DONE | |
|
||||||
@@ -93,8 +93,8 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
|
|||||||
| $FFC6 | CHKIN | PARTIAL | * work in progress |
|
| $FFC6 | CHKIN | PARTIAL | * work in progress |
|
||||||
| $FFC9 | CHKOUT | PARTIAL | * work in progress |
|
| $FFC9 | CHKOUT | PARTIAL | * work in progress |
|
||||||
| $FFCC | CLRCHN | PARTIAL | * work in progress |
|
| $FFCC | CLRCHN | PARTIAL | * work in progress |
|
||||||
| $FFCF | CHRIN | NOT DONE | * work in progress |
|
| $FFCF | CHRIN | PARTIAL | |
|
||||||
| $FFD2 | CHROUT | NOT DONE | * work in progress |
|
| $FFD2 | CHROUT | PARTIAL | |
|
||||||
| $FFD5 | LOAD | PARTIAL | no VERIFY support yet |
|
| $FFD5 | LOAD | PARTIAL | no VERIFY support yet |
|
||||||
| $FFD8 | SAVE | NOT DONE | * work in progress |
|
| $FFD8 | SAVE | NOT DONE | * work in progress |
|
||||||
| $FFDB | SETTIM | NOT DONE | |
|
| $FFDB | SETTIM | NOT DONE | |
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
.alias ICKOUT $320
|
.alias ICKOUT $320
|
||||||
.alias ICLRCH $322
|
.alias ICLRCH $322
|
||||||
.alias IBASIN $324
|
.alias IBASIN $324
|
||||||
.alias IBASOUT $326
|
.alias IBSOUT $326
|
||||||
.alias ISTOP $328
|
.alias ISTOP $328
|
||||||
.alias IGETIN $32A
|
.alias IGETIN $32A
|
||||||
.alias ICLALL $32C
|
.alias ICLALL $32C
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ print_string_loop:
|
|||||||
lda (temp_string_ptr),y
|
lda (temp_string_ptr),y
|
||||||
beq print_string_end
|
beq print_string_end
|
||||||
|
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
txa
|
txa
|
||||||
tay
|
tay
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ startup_banner:
|
|||||||
jsr print_integer
|
jsr print_integer
|
||||||
|
|
||||||
lda #$20
|
lda #$20
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Print the rest of the start up message
|
;; Print the rest of the start up message
|
||||||
ldx #34
|
ldx #34
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ basic_do_error:
|
|||||||
|
|
||||||
;; Print ? at start
|
;; Print ? at start
|
||||||
lda #$0d
|
lda #$0d
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
lda #$3f
|
lda #$3f
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Print main part of error message
|
;; Print main part of error message
|
||||||
pla
|
pla
|
||||||
@@ -18,7 +18,7 @@ basic_do_error:
|
|||||||
|
|
||||||
;; Print ERROR at end
|
;; Print ERROR at end
|
||||||
lda #$20
|
lda #$20
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
ldx #33
|
ldx #33
|
||||||
jsr print_packed_message
|
jsr print_packed_message
|
||||||
|
|
||||||
@@ -27,9 +27,9 @@ basic_do_error:
|
|||||||
;; XXX print line number if not in direct mode
|
;; XXX print line number if not in direct mode
|
||||||
|
|
||||||
lda #$0d
|
lda #$0d
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
lda #$0d
|
lda #$0d
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Reset stack, and go back to main loop
|
;; Reset stack, and go back to main loop
|
||||||
ldx #$fe
|
ldx #$fe
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ rsl_l1: lda $0200,x
|
|||||||
*
|
*
|
||||||
;; Do printing of the new line
|
;; Do printing of the new line
|
||||||
lda #$0d
|
lda #$0d
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Ignore empty lines
|
;; Ignore empty lines
|
||||||
lda tokenise_work1
|
lda tokenise_work1
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ basic_do_break:
|
|||||||
|
|
||||||
*
|
*
|
||||||
lda #$0d
|
lda #$0d
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
cmd_end:
|
cmd_end:
|
||||||
jmp basic_main_loop
|
jmp basic_main_loop
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ list_more_lines:
|
|||||||
pla
|
pla
|
||||||
jsr print_integer
|
jsr print_integer
|
||||||
lda #$20
|
lda #$20
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Iterate through printing out the line
|
;; Iterate through printing out the line
|
||||||
;; contents
|
;; contents
|
||||||
@@ -105,17 +105,17 @@ list_not_rem:
|
|||||||
bne list_print_loop
|
bne list_print_loop
|
||||||
|
|
||||||
list_is_literal:
|
list_is_literal:
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
iny
|
iny
|
||||||
bne list_print_loop
|
bne list_print_loop
|
||||||
|
|
||||||
list_end_of_line:
|
list_end_of_line:
|
||||||
;; Clear reverse flag
|
;; Clear reverse flag
|
||||||
lda #$92
|
lda #$92
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
;; Print end of line
|
;; Print end of line
|
||||||
lda #$0d
|
lda #$0d
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Now link to the next line
|
;; Now link to the next line
|
||||||
jsr basic_find_next_line
|
jsr basic_find_next_line
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ found_start_of_number:
|
|||||||
;; Print digits
|
;; Print digits
|
||||||
* lda $0100,y
|
* lda $0100,y
|
||||||
ora #$30
|
ora #$30
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
iny
|
iny
|
||||||
cpy #5
|
cpy #5
|
||||||
bne -
|
bne -
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ found_message_in_token_stream:
|
|||||||
beq +
|
beq +
|
||||||
jsr print_packed_word
|
jsr print_packed_word
|
||||||
lda #$20
|
lda #$20
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
iny
|
iny
|
||||||
@@ -47,7 +47,7 @@ found_message_in_token_stream:
|
|||||||
pla
|
pla
|
||||||
;; Rub out space at the end
|
;; Rub out space at the end
|
||||||
lda #$14
|
lda #$14
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
rts
|
rts
|
||||||
|
|
||||||
print_packed_word:
|
print_packed_word:
|
||||||
@@ -144,7 +144,7 @@ next_packed_word_char:
|
|||||||
|
|
||||||
;; X=1-14 = first 14 chars, so subtract one
|
;; X=1-14 = first 14 chars, so subtract one
|
||||||
lda packed_message_chars-1,x
|
lda packed_message_chars-1,x
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; See if there is a char in the low nybl to print
|
;; See if there is a char in the low nybl to print
|
||||||
pla
|
pla
|
||||||
@@ -171,7 +171,7 @@ has_nybl:
|
|||||||
|
|
||||||
;; X=1-14 = first 14 chars, so subtract one
|
;; X=1-14 = first 14 chars, so subtract one
|
||||||
lda packed_message_chars-1,x
|
lda packed_message_chars-1,x
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
*
|
*
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
@@ -207,7 +207,7 @@ unpack_literal_char:
|
|||||||
tya
|
tya
|
||||||
pha
|
pha
|
||||||
lda (temp_string_ptr),y
|
lda (temp_string_ptr),y
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
pla
|
pla
|
||||||
tay
|
tay
|
||||||
rts
|
rts
|
||||||
|
|||||||
+3
-3
@@ -112,7 +112,7 @@ not_hexword:
|
|||||||
|
|
||||||
not_pointer:
|
not_pointer:
|
||||||
;; Print character
|
;; Print character
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
|
|
||||||
printf_nextchar:
|
printf_nextchar:
|
||||||
jsr printf_advance
|
jsr printf_advance
|
||||||
@@ -148,11 +148,11 @@ printf_printhexbyte:
|
|||||||
cmp #$3A
|
cmp #$3A
|
||||||
bcc +
|
bcc +
|
||||||
adc #6
|
adc #6
|
||||||
* jsr JCHROUT
|
* jsr via_IBSOUT
|
||||||
pla
|
pla
|
||||||
and #$0f
|
and #$0f
|
||||||
ora #$30
|
ora #$30
|
||||||
cmp #$3A
|
cmp #$3A
|
||||||
bcc +
|
bcc +
|
||||||
adc #6
|
adc #6
|
||||||
* jmp JCHROUT
|
* jmp via_IBSOUT
|
||||||
@@ -21,8 +21,8 @@ via_ICLRCH:
|
|||||||
via_IBASIN:
|
via_IBASIN:
|
||||||
jmp (IBASIN)
|
jmp (IBASIN)
|
||||||
|
|
||||||
via_IBASOUT:
|
via_IBSOUT:
|
||||||
jmp (IBASOUT)
|
jmp (IBSOUT)
|
||||||
|
|
||||||
via_ISTOP:
|
via_ISTOP:
|
||||||
jmp (ISTOP)
|
jmp (ISTOP)
|
||||||
|
|||||||
@@ -55,9 +55,10 @@ wedge_dos_command:
|
|||||||
jsr JREADST ; retrieve errors
|
jsr JREADST ; retrieve errors
|
||||||
;; XXX error in case of status != 0
|
;; XXX error in case of status != 0
|
||||||
*
|
*
|
||||||
|
;; XXX this loop does not seem to work, check it
|
||||||
jsr basic_fetch_and_consume_character
|
jsr basic_fetch_and_consume_character
|
||||||
beq +
|
beq +
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
;; XXX check errors here
|
;; XXX check errors here
|
||||||
jmp -
|
jmp -
|
||||||
*
|
*
|
||||||
@@ -100,13 +101,16 @@ wedge_dos_status:
|
|||||||
*
|
*
|
||||||
jsr JREADST ; retrieve errors
|
jsr JREADST ; retrieve errors
|
||||||
;; XXX error in case of status != 0
|
;; XXX error in case of status != 0
|
||||||
*
|
|
||||||
;; Print out everything retrieved from the drive
|
;; Print out everything retrieved from the drive
|
||||||
bne +
|
bne +
|
||||||
jsr JCHRIN
|
jsr via_IBASIN
|
||||||
jsr JCHROUT
|
jsr via_IBSOUT
|
||||||
jmp -
|
jmp -
|
||||||
*
|
*
|
||||||
|
;; Print new line
|
||||||
|
lda #$0D
|
||||||
|
jsr via_IBSOUT
|
||||||
|
|
||||||
;; Clean-up and exit
|
;; Clean-up and exit
|
||||||
jmp wedge_dos_clean_exit
|
jmp wedge_dos_clean_exit
|
||||||
|
|
||||||
|
|||||||
+6
-1
@@ -8,5 +8,10 @@
|
|||||||
;; CPU registers that has to be preserved (see [RG64]): .Y
|
;; CPU registers that has to be preserved (see [RG64]): .Y
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
;; XXX preserve register Y!
|
||||||
|
|
||||||
acptr:
|
acptr:
|
||||||
rts
|
;; XXX temporary implementation
|
||||||
|
jsr kernalstatus_reset
|
||||||
|
jmp iec_rx_byte
|
||||||
|
|
||||||
+1
-1
@@ -79,7 +79,7 @@ vector_defaults:
|
|||||||
.word ckout ;; ICKOUT
|
.word ckout ;; ICKOUT
|
||||||
.word clrchn ;; ICLRCH
|
.word clrchn ;; ICLRCH
|
||||||
.word chrin ;; IBASIN
|
.word chrin ;; IBASIN
|
||||||
.word chrout ;; IBASOUT
|
.word chrout ;; IBSOUT
|
||||||
.word stop ;; ISTOP
|
.word stop ;; ISTOP
|
||||||
.word getin ;; IGETIN
|
.word getin ;; IGETIN
|
||||||
.word clall ;; ICLALL
|
.word clall ;; ICLALL
|
||||||
|
|||||||
Reference in new issue
Block a user