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

⟦f947767c2⟧ TextFile

    Length: 3618 (0xe22)
    Types: TextFile
    Names: »TRANSMSG«

Derivation

└─⟦80dc9b589⟧ Bits:30005096 8" CR80 Floppy CR80FD_0053 ( HMDIR 6 VOL: BACKUP MD: CPM.D From: HMDIR*CPM.D )
    └─⟦08785f861⟧ 
        └─ ⟦this⟧ »CPM.D!TRANSMSG« 

TextFile

;-----------------------------------------------------------------------
; 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◀