|
|
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: 3618 (0xe22)
Types: TextFile
Names: »TRANSMSG«
└─⟦80dc9b589⟧ Bits:30005096 8" CR80 Floppy CR80FD_0053 ( HMDIR 6 VOL: BACKUP MD: CPM.D From: HMDIR*CPM.D )
└─⟦08785f861⟧
└─⟦this⟧ »CPM.D!TRANSMSG«
;-----------------------------------------------------------------------
; PROCEDURE "TRANSMIT_MESSAGE"(TRANSMSG).
;
; NARRATIVE:
; TRANSMSG HAS TREE ENTRIES,ONE FOR CONTROL_MESSAGES RECIEVED VIA 'NC'
; FOR OUTBOUND DELIVERY,ONE FOR NARRATIVE_MESSAGES RETRIEVED FROM 'NM'-
; QUEUE,AND ONE FOR TRANSMISSION OF LOCAL GENERATED MESSAGE (SYNCMSG).
; THE ROUTING MASK IS RETRIEVED FROM THE ROUTING_HEADER,AND LOADED
; TO THE MTCB (CMTCBX).NARRATIVE MESSAGES ARE IN ADDITION ROUTED TO
; COLLOCATED SIP FOR ACCOUNTING PURPOSES,AND THE ROUTING MASK UPDATED
; ACCORDINGLY.THE MTCB IS SUBSEQUENTLY ENQUEUED IN 'TQ' FOR TRANSMIS-
; SION TO FIKS NETWORK.
;
; REGISTER USE: ENTRY EXIT
; R0=MTCB_INDEX (ENTRY TRANSMSG)
; R2,R3=ROUTING_MASK (ENTRY TRANSMSG)
; R4=MPCB (ENTRY TRANSMSG)
; R5=LINK R0-R7 DESTROYED
;
; INPUT: MPNMSG
; CMTCBX
;
; OUTPUT: TQ
; MPCMSG
;
; CALLS T0: INCTRLMSG
; MON MIO,MPUTMTCB/MENQQE
; MON MTCB,RELEASEMTCB
;
; RETURNS: LINK+0:DONE
; UREXXX:ERROR
;-----------------------------------------------------------------------
CMTRANS: ;BEGIN TRANSCM:
MOV R5 RLI100 ; SAVE LINK
JMP S5 INCTRLMSG ; "IN_CTRL_MSG"(CMTCBX)
MOVC CMCDAT R4 ; (CTRLMSG IS LOADED TO CMMFDCB)
MOVL BHRMSK0.X4 R23 ; RETRIEVE ROUTING MASK
MOV CMTCBX R0 ; GET MTCB INDEX
MOVC MPCMSG R4 ; GET REF.TO PRE.ASS. MTCB
JMP I130 ; GOTO ENQUEUE_MTCB:
;
NMTRANS: ;BEGIN TRANS_NARR_MSG:
MOV R5 RLI100 ; SAVE LINK
MOV CRMASK+0 R2 ;
MOV CRMASK+1 R3 ; RETRIEVE ROUTING MASK
MOVC SIPRMSK0 R0 ;
MOVC SIPRMSK1 R1 ;
IOR R0 R2 ; UPDATE ROUTING MASK TO IN-
IOR R1 R3 ; CLUDE COLLOCATED SIP.
MOV CMTCBX R0 ; GET MTCB INDEX
MOVC MPNMSG R4 ; GET REF.TO PRE.ASS. MTCB
JMP I130 ; GOTO ENQUEUE_MTCB
;
TRANSMSG: ;BEGIN TRANSMSG
MOV R5 RLI100 ; SAVE LINK
I130: ; ENQUEUE_MTCB:
; BEGIN WRITE MTCB
MOVL R23 MPRWD4.X4 ; ROUTING MASK
MON MIO,MPUTMTCB ; "PUT_MTCB"
JMPI & S4 URE001 ;E X0:ERROR,REPORT ERROR
; X1:DONE,R0=MTCB INDEX
; END WRITE MTCB
MOV MPRAPR.X4 R2 ; READ QUEUE NO.(PREC)
MOVC QDTQ R4 ; QUEUE=TQ
MOV R2 QDQN. X4 ; LOAD QUEUE NO.
MON MIO,MENQQE ; "ENQQUE"(R0=MTCB,R4=QUEUE)
JMPI & S4 URE001 ;E X0:ERROR,REPORT ERROR
; X1:DONE
MON MTCB,RELEASEMTCB ; "RELEASE_MTCB"(R0)
JMPI & S4 URE002 ;E X0:ERROR,REPORT ERROR
; X1:DONE
JMPI RLI100 ; RETURN LINK+0
;END TRANSMSG
;----------------------------------------------------------------------- ▶1a◀