collapseos/kernel/blockdev_cmds.asm
Virgil Dupras 83e375936c shell: make seek cmd init DE to 0
So that blkdev not supporting 32-bit aren't messed up.
2019-05-30 14:54:28 -04:00

47 lines
782 B
NASM

; *** REQUIREMENTS ***
; blockdev
; stdio
blkBselCmd:
.db "bsel", 0b001, 0, 0
ld a, (hl) ; argument supplied
cp BLOCKDEV_COUNT
jr nc, .error ; if selection >= device count, error
push de
ld de, BLOCKDEV_GETC
call blkSel
pop de
xor a
ret
.error:
ld a, BLOCKDEV_ERR_OUT_OF_BOUNDS
ret
blkSeekCmd:
.db "seek", 0b001, 0b011, 0b001
; First, the mode
ld a, (hl)
inc hl
push af ; save mode for later
; HL points to two bytes that contain out address. Seek expects HL
; to directly contain that address.
ld a, (hl)
ex af, af'
inc hl
ld a, (hl)
ld l, a
ex af, af'
ld h, a
pop af ; bring mode back
ld de, 0 ; DE is used for seek > 64K which we don't support
call blkSeek
call blkTell
ld a, h
call printHex
ld a, l
call printHex
call printcrlf
xor a
ret