DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦fc38160ff⟧ TextFile

    Length: 2196 (0x894)
    Types: TextFile
    Names: »MS1000.S«, »~ORPHAN_0x002f«

Derivation

└─⟦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« 

TextFile

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)