|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2196 (0x894)
Types: TextFile
Names: »MS1000.S«, »~ORPHAN_0x002f«
└─⟦93791531c⟧ Bits:30005105 8" CR80 Floppy CR80FD_0064 ( VOL:SCC.V MSS Directory: MS1.D )
└─⟦185cc4db7⟧
└─⟦this⟧ »~ORPHAN_0x002f«
└─⟦b5acf5c79⟧ Bits:30005104 8" CR80 Floppy CR80FD_0063 ( VOL: SCC.V MSS Directory: MS2.D )
└─⟦f918199fd⟧
└─⟦this⟧ »MS2.D!MS1000.S«
MESSAGE <:MS1000.S V810311:>
;-----------------------------------------------------------------------
; SUBROUTINE MS1000
; READ BLOCK FROM DISK.
;
; CALL TO: MON STREAM, INREC
;
; REGISTERS CALL EXIT
; R4 LINK DEST
; R6 REF(IOCB) REF(IOCB)
; R0,R1,R2,R7 - DEST
; R3,R5 - UNCHANGED
;
; INPUT: IOCB DATA, FILE
; OUTPUT: IOCB DATA, IOBUF.IOCB DATA
; EXIT TO: LINK+0 (FILE EMPTY)
; LINK+1 (DONE)
; MSE110 (ERROR)
;-----------------------------------------------------------------------
MS1000: ; READ BLOCK FROM DISK:
MOV IOFLT. X6 R0 ; GET FILE LENGTH
MOV IOFNX. X6 R1 ; AND CURRENT INDEX TO 1ST BYTE
ADD IOBLT. X6 R1 ; COMPUTE NEW INDEX
IEQ R0 R1 ; IF FILE EMPTY
JMP 0. X4 ;R THEN RETURN(0)
ADDC 1 R4 ; PREPARE EXIT(1)
MOV R4 RL1000 ; SAVE RETURN LINK
MOV R3 WK1000 ; SAVE R3
MOV R1 IOFNX. X6 ; SAVE NEW FILE INDEX
IHS R1 R0 ; IF NEW INDEX PAST FILE LENGTH
JMPI S4 MIE200 ;E THEN MSC ERROR
MOV IOST. X6 R4 ; GET STREAM HANDLE
MOV BLKSIZ R2 ; GET MAX. BLOCK SIZE
SUB R1 R0 ; CALCULATE REMAINING IN FILE
ILT R0 R2 ; IF LESS REMAIN THAN SIZE
MOV R0 R2 ; THEN USE SMALLER NUMBER
MOV R2 IOBLT. X6 ; SAVE BLOCK LENGTH
MOV IOBUF. X6 R1 ; GET BUFFER ADDR
MON STREAM, INREC ; READ BLOCK
JMPI & S4 MIE110 ;E (NOT READ)
MOD IOBLT. X6 ; IF NOT GOT WHAT REQUESTED
INE R2 0 ;
JMPI S4 MIE100 ;E THEN FILE ERROR
CLR IOBNX. X6 ; CLEAR BUFFER INDEX
MOV WK1000 R3 ; RESTORE R3
JMPI RL1000 ;R RETURN(1)