fixed byte sending (TX) via DolphinDOS

This commit is contained in:
FeralChild64 committed 2019-12-27 21:48:31 +01:00
1 parent 733f9aba1d
commit 4735677eb9
14 files changed
+27 -21

No files matched your search

+7 -7
View File
@@ -9,7 +9,7 @@ Here are the features of the Open ROMs not found in the original ROMs from the 8
* pre-defined function keys
* JiffyDOS protocol support
* partial DolphinDOS protocol support (for now only LOAD is accelerated)
* partial DolphinDOS protocol support
* DOS wedge (direct mode only) - `@<drive_number>`, `@<command>`, `@$`, `@$<params>`, `@`
* turbo tape load support (as device 7, or using `←L`), up to 250 blocks (can store bytes under I/O)
@@ -61,30 +61,30 @@ The following ROM features are currently missing:
| VIC-II | PARTIAL | 80 chars in logical line support is very buggy |
| VDC 80 col. | NOT DONE | |
## Tape storage (LOAD only!)
## Tape port (Tapuino, Datasette - LOAD only!)
| Driver | Status | Remarks |
| :-----------: | :------: | :------------------------------------------------: |
| normal | PARITAL | no error correction, no tape speed calibratrion |
| normal | PARTIAL | no error correction, no tape speed calibratrion |
| turbo | PARTIAL | up to 250 blocks, no tape speed calibratrion yet |
## IEC bus (disk drives, printers, some hard drives)
## IEC bus (SD2IEC, petSD+, µIEC, Pi1541, Ultimate II, most disk drives and printers, some hard drives)
| Driver | Status | Remarks |
| :-----------: | :------: | :------------------------------------------------: |
| standard | DONE | |
| JiffyDOS | DONE | |
| DolphinDOS | PARTIAL | for now only LOAD is accelerated |
| DolphinDOS | DONE | |
| CIA burst mod | NOT DONE | |
| Mega65 burst | NOT DONE | pure software implementation should be feasible |
## IEEE-488 bus (scientific equipment, PET era disk drives and printers)
## IEEE-488 bus (petSD+, PET era disk drives and printers, various scientific equipment)
| Driver | Status | Remarks |
| :-----------: | :------: | :------------------------------------------------: |
| CBM cartridge | NOT DONE | |
## RS-232
## RS-232 (modems, parallel port printers)
| Driver | Status | Remarks |
| :-----------: | :------: | :------------------------------------------------: |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+2 -2
View File
@@ -18,14 +18,14 @@ iec_cmd_open: // similar to TKSA, but without turnaround
ora #$F0
#if CONFIG_IEC_DOLPHINDOS
/* XXX does not work yet
sta TBTCNT
jsr iec_tx_command
bcs !+ // branch if error
jsr dolphindos_detect
jmp iec_tx_command_finalize
*/
#else
// FALLTROUGH
+1 -1
View File
@@ -129,7 +129,7 @@ iec_rx_clk_wait2:
iec_rx_acknowledge:
// Then we must within 1000 usec acknowledge the frame by
// Then we must within 1000 usec acknowledge the byte by
// pulling DATA. At this point, CLK is pulled by the
// talker and DATA by us, i.e., we are ready to receive
// the next byte. (p11).
+8 -8
View File
@@ -64,12 +64,6 @@ iec_tx_common:
jsr iec_wait_for_data_pull
jsr iec_wait_for_data_release
!:
// Pull CLK back to indicate that DATA is not valid, keep it for 60us
// We can use this routine as we don't hold DATA anyway (and its state doesn't even matter)
jsr iec_pull_clk_release_data_oneshot
jsr iec_wait60us
#if CONFIG_IEC_DOLPHINDOS
// Check if DolphinDOS was detected
@@ -83,8 +77,8 @@ iec_tx_common:
lda TBTCNT
sta CIA2_PRB
// Release CLK to indicate data is now valid (we should not hold DATA nevertheless)
jsr iec_release_clk_data
// Pull CLK to indicate data is now valid (we should not hold DATA nevertheless)
jsr iec_pull_clk_release_data_oneshot
// Finish the flow
jmp iec_tx_common_finalize
@@ -93,6 +87,12 @@ iec_tx_no_dolphindos:
#endif // CONFIG_IEC_DOLPHINDOS
// Pull CLK back to indicate that DATA is not valid, keep it for 60us
// We can use this routine as we don't hold DATA anyway (and its state doesn't even matter)
jsr iec_pull_clk_release_data_oneshot
jsr iec_wait60us
// Now, we can start transmission of 8 bits of data
ldx #7
+6
View File
@@ -44,6 +44,12 @@ save_iec:
jsr iec_tx_command
bcs save_iec_dev_not_found
#if CONFIG_IEC_DOLPHINDOS
jsr dolphindos_detect
#endif
// Save start address
lda STAL+0
sta TBTCNT
+2 -2
View File
@@ -43,8 +43,8 @@ dolphindos_detect:
dolphindos_detect_loop:
lda CIA2_ICR
and #$10
bne dolphindos_detect_success
cmp #$10
beq dolphindos_detect_success
lda CIA2_PRB // XXX do we need this read?
dex
+1 -1
View File
@@ -35,7 +35,7 @@ Turnover (both to listener and to back to talker) is performed as usual.
## Sending a byte
XXX TODO
XXX TODO - not fully clear yet
## Receiving a byte