small DOS Wedge improvement

This commit is contained in:
FeralChild64 committed 2020-09-22 18:08:49 +02:00
1 parent faf520dec7
commit 4907a146da
3 files changed
+36 -16

No files matched your search

+1 -1
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 and DolphinDOS protocols support
* DOS wedge (direct mode only) - `@<drive_number>`, `@<command>`, `@$`, `@$<params>`, `@`
* DOS wedge (direct mode only) - `@<unit_number>`, `@<command>`, `@$[mask]`, `@<unit_number>$`, `@<unit_number>$[mask]` `@`
* BASIC extensions, see the [documentation](doc/Extended-BASIC.md)
* extended / tweaked `LOAD` / `VERIFY` commands
* start/end addresses are displayed, in the Final cartridge style
+10 -6
View File
@@ -9,19 +9,23 @@ The DOS Wedge commands are only available in direct mode, and they have to start
### `@` (all)
Displays the error/status read from the current drive. Current drive is either the last device used by any I/O command, the one set by DOS Wedge command, or 8 as a fallback.
Displays the error/status read from the current unit. Current unit is either the last device used by any I/O command, the one set by DOS Wedge command, or a default one for the given build.
### `@$` (all)
### `@$[mask]` (all)
Displays the directory of the current drive. Does not destroy BASIC program in memory.
Displays the directory of the current unit. Can be followed by mask, like in `LOAD "$mask"`. Does not destroy BASIC program in memory.
### `@device_number` (all)
### `@<unit_number>` (all)
Changes the current drive number.
Changes the current unit number.
### `@<unit_number>$[mask]` (all)
Combines the two above - displays the directory of the selected driove, in one command.
### `@command` (all)
Sends the DOS command to the current drive.
Sends the DOS command to the current unit.
## Tape Wedge
+25 -9
View File
@@ -136,22 +136,27 @@ wedge_dos_command_confirmed:
wedge_dos_change_drive:
; Fetch new drive number, make sure this is the last part of the command
; Fetch new drive number, make sure it is sane
jsr fetch_uint8
pha
jsr fetch_character_skip_spaces
cmp #$00
+bne do_SYNTAX_error
pla
; Check if device number is valid for IEC drive
cmp #$08
+bcc do_ILLEGAL_DEVICE_NUMBER_error
; Check if this is end of command, or directory request
pha
jsr fetch_character_skip_spaces
cmp #$24
beq wedge_dos_change_drive_directory
; Make sure this is end of command
cmp #$00
+bne do_SYNTAX_error
; Store new device number and return to shell
pla
sta FA
jmp shell_main_loop
@@ -245,6 +250,17 @@ wedge_dos_status_print_no_new_line:
+bra wedge_dos_clean_exit
wedge_dos_change_drive_directory:
; Store new device number, display directory
pla
sta FA
dec TXTPTR+0 ; in direct mode we do not have to care about TXTPTR+1
; FALLTROUGH
wedge_dos_directory:
; First change the secondary address to the one suitable for directory loading