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

⟦569843aec⟧ TextFile

    Length: 2674 (0xa72)
    Types: TextFile
    Names: »MS3500.S«

Derivation

└─⟦b5acf5c79⟧ Bits:30005104 8" CR80 Floppy CR80FD_0063 ( VOL: SCC.V MSS Directory: MS2.D )
    └─⟦f918199fd⟧ 
        └─ ⟦this⟧ »MS2.D!MS3500.S« 

TextFile

MESSAGE <:MS3500.S V810325:>
;-----------------------------------------------------------------------
; SUBROUTINE MS3500
; READ MSG_ID
;
; REGISTERS          CALL               EXIT
; R0,R1,R2,R3        -                  DEST
; R4                 LINK               -
; R5                                    NOT USED
; R6                 REF(IOCB)          REF(IOCB)
;
; INPUT:   IIDREF,FILE
; OUTPUT:  INPID
; EXIT TO: LINK+0 (NOT READ)
;          LINK+1 (OK)
;-----------------------------------------------------------------------
MS3500:                             ; READ MSG_ID:
        MOV   IOTYP. X6         R0  ;   GET IOCB TYPE
        MOV   IIDREF            R1  ;   AND MSG_ID REFERENCE
        SEQ          R1  0          ;   IF ZERO MSGID
        IBZ          R0  IOBFIX     ;   OR IF NICS RECORDS
        JMP              0.     X4  ;R  THEN EXIT(0)
        ADDC  1                 R4  ;   ELSE PREPARE EXIT(1)
        MOV          R4  RL3000     ;   SAVE RETURN LINK
MS3502:                             ; READ FIRST(NEXT) RECORD:
        JMPI         S4  MI1020     ;   READ A FIKS RECORD
        JMPI  &      S4  MIE100     ;E  FILE EMPTY-ERROR
        MOV   IOFNX. X6         R0  ;   GET CURRENT FILE INDEX
        MOV   IIDREF            R1  ;   AND CONSTANT MSGID REF
        IHS          R0         R1  ;   IF PAST MSGID
        JMPI         S4  MIE100     ;E  THEN FILE ERROR
        SUB          R0         R1  ;   GET RELATIVE MSGID REF
        MOV   IOBLT. X6         R0  ;   AND THIS BLOCK LENGTH
        IGE          R1         R0  ;   IF MSGID NOT IN THIS RECORD
        JMP              MS3502     ; THEN LOOPBACK TILL DONE
        ADDC  -6                R0  ;   GET BUFFER LENGTH MINUS 6 BYTES
        ILT          R0         R1  ;   IF MSG-ID OVERLAPS 2 LINES
        JMPI         S4  MIE100     ;E  THEN FILE ERROR
        MOV          R1         R4  ;   POSITION INPUT
        MOVC  INPID             R2  ;   AND OUTPUT
        MOVC  3                 R3  ;   SETUP TO COPY 3 WORDS
MS3504:                             ; COPY FIRST(NEXT) 2 BYTES:
        MOD   IOBUF. X6             ;   PROVIDE BUFFER ADDR
        MOVB  0.     X4         R0  ;   READ FIRST BYTE
        MOD   IOBUF. X6             ;   PROVIDE BUFFER ADDR
        MOVB  1.     X4         R1  ;   READ SECOND BYTE
        SWP          R1             ;   AS LEFT BYTE
        IOR          R1         R0  ;   MERGE 2 BYTES
        MOV          R0         X2  ;   SAVE IN INPID
        ADDC  2                 R4  ;   STEP POINTERS
        ADDC  1                 R2  ;
        SOB          R3  MS3504     ; LOOPBACK TILL DONE
        JMPI             RL3000     ;R  EXIT(1)