Block device peripheral and SBFS file system implemented.
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
; A write protected disk.
|
||||
;
|
||||
; The bar is in the device, not in the filesystem. A flag in a superblock can be got
|
||||
; around by writing blocks directly; this cannot be got around at all. It is the tab on
|
||||
; the side of a floppy rather than a note asking politely.
|
||||
;
|
||||
; A disk is read only if it was attached that way, or if the host will not let its image
|
||||
; be written. The machine cannot tell the two apart and does not need to.
|
||||
;
|
||||
; Status bit 2 says the disk is protected. Unlike the busy and error bits it describes the
|
||||
; medium rather than the last operation, so it reads true before anything has been asked
|
||||
; of the disk at all.
|
||||
;
|
||||
; Correct output is:
|
||||
; 04 protected, before anything has been attempted
|
||||
; 04 a read is allowed and does not disturb the bit
|
||||
; 06 a write is barred: protected, and the operation failed
|
||||
|
||||
#Include print.asm
|
||||
|
||||
#Program
|
||||
|
||||
start:
|
||||
INA 0x23
|
||||
CALL printByteHex
|
||||
CALL lineFeed
|
||||
|
||||
RSTA
|
||||
OUTA 0x20
|
||||
OUTA 0x21 ; Block 0.
|
||||
INIA 0x01
|
||||
OUTA 0x22 ; Read. Reading a protected disk is ordinary.
|
||||
INA 0x23
|
||||
CALL printByteHex
|
||||
CALL lineFeed
|
||||
|
||||
INIA 0x02
|
||||
OUTA 0x22 ; Write. Barred by the device.
|
||||
INA 0x23
|
||||
CALL printByteHex
|
||||
CALL lineFeed
|
||||
HALT
|
||||
Reference in New Issue
Block a user