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 - 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)