|
|
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: 2674 (0xa72)
Types: TextFile
Names: »MS3500.S«
└─⟦b5acf5c79⟧ Bits:30005104 8" CR80 Floppy CR80FD_0063 ( VOL: SCC.V MSS Directory: MS2.D )
└─⟦f918199fd⟧
└─⟦this⟧ »MS2.D!MS3500.S«
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)