implemented CIOUT routine
This commit is contained in:
1 parent
cfadaf2684
commit
6d521967e5
4 files changed
+46
-1
No files matched your search
@@ -57,6 +57,8 @@
|
||||
; Keys down clears bits. STOP=bit 7, C= bit 6, SPACE bit 4, CTRL bit 2
|
||||
.alias BUCKYSTATUS $91
|
||||
.alias load_or_verify_flag $93
|
||||
.alias C3PO $94 ; flag - is BSOUR content valid
|
||||
.alias BSOUR $95 ; serial bus buffered output byte
|
||||
.alias current_file_num $98
|
||||
.alias LDTND $98 ; number of entries in LAT / FAT / SAT tables
|
||||
.alias DFLTN $99
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
; Keys down clears bits. STOP=bit 7, C= bit 6, SPACE bit 4, CTRL bit 2
|
||||
.alias BUCKYSTATUS $91
|
||||
.alias kernal_load_or_verify_flag $93
|
||||
.alias C3PO $94 ; flag - is BSOUR content valid
|
||||
.alias BSOUR $95 ; serial bus buffered output byte
|
||||
.alias current_file_num $98
|
||||
.alias LDTND $98 ; number of entries in LAT / FAT / SAT tables
|
||||
.alias DFLTN $99
|
||||
|
||||
@@ -1,3 +1,31 @@
|
||||
; Function defined on pp272-273 of C64 Programmers Reference Guide
|
||||
ciout:
|
||||
|
||||
;; This routine is documented in 'Compute's Mapping the Commodore 64', page 224
|
||||
|
||||
pha
|
||||
lda C3PO
|
||||
bne ciout_send_byte
|
||||
|
||||
;; Nothing to send - set buffer as valid, store byte there
|
||||
inc
|
||||
sta C3PO
|
||||
|
||||
;; Clear carry flag to indicate success
|
||||
clc
|
||||
|
||||
ciout_store_in_buffer:
|
||||
|
||||
;; Store in the buffer data to be sent next, return
|
||||
pla
|
||||
sta BSOUR
|
||||
rts
|
||||
|
||||
ciout_send_byte:
|
||||
|
||||
;; Send previous data
|
||||
lda BSOUR
|
||||
clc ; don't send with EOI
|
||||
jsr iec_tx_byte
|
||||
jmp ciout_store_in_buffer
|
||||
|
||||
+14
-1
@@ -2,7 +2,20 @@
|
||||
|
||||
unlsn:
|
||||
|
||||
;; This trivial routine is documented in 'Compute's Mapping the Commodore 64', page 224
|
||||
;; This routine is documented in 'Compute's Mapping the Commodore 64', page 224
|
||||
|
||||
;; First check whether we have something to be sent in the buffer
|
||||
lda C3PO
|
||||
beq +
|
||||
lda BSOUR
|
||||
sec ; send it with EOI
|
||||
jsr iec_tx_byte ; XXX what about the status of this operation?
|
||||
;; Mark the buffer as invalid
|
||||
lda #$00
|
||||
sta C3PO
|
||||
*
|
||||
;; Buffer empty send the command
|
||||
lda #$3F
|
||||
jmp iec_tx_command
|
||||
|
||||
|
||||
Reference in new issue
Block a user