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

⟦2150a1dc6⟧ TextFile

    Length: 4908 (0x132c)
    Types: TextFile
    Names: »NMACCNT«

Derivation

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

TextFile

;-----------------------------------------------------------------------
; PROCEDURE "NARRATIVE_MSG_ACCOUNTING"(NMACCNT).
;
; NARRATIVE:
; NMACCNT PERFORMES ALL ACCOUNTING REQUIRED FOR INBOUND MESSAGES/PSEU-
; DOMESSAGES RECIEVED FROM THE 'MSS' VIA THE 'NM'-QUEUE,OR OUTBOUND
; NICS-TARE MESSAGES RECIEVED FROM FIKS.
; 1.INBOUND NARRATIVE MESSAGES:
;   THE CHANNEL NO RETRIEVED FROM THE MSG-FILE HAS BEEN VALIDATED,
;   AND 'CCHNO' AND 'CMSGID' LOADED.'CMSGID' IS LOADED TO XINID.XACKTAB
;   AND THE MSGID RETRIVED FROM THE MTCB (MPNM) IS LOADED TO XOUT.
;   XACKTAB,EITHER IN ASCII OR DECIMAL FORM DEPENDING OF WHETHER IT
;   IS AN EXTERNAL OR INTERNAL CHANNEL.
; 2.INBOUND PSEUDO MESSAGE:
;   THE CHANNEL NO RETRIEVED FROM THE MTCB (MPNM) IS VALIDATED,AND IF
;   VALID THEN XOUTID.XACKTAB IS UPDATED AS DESCRIBED ABOVE.
;   IF AN ACK IS AWAITED(FEWAIT.ENTRY) NO FURTHER PROCESSING IS PER-
;   FORMED.OTHERWISE IS THE DEFAULT VALUE HELD IN 'CMSGID' COPIED TO
;   XINID.XACKTAB,AND A CALL IS MADE TO 'NMACKP' TO SIMULATE THE RE-
;   CEIPT OF AN ACK.
; 3.OUTBOUND NICS-TARE MESSAGES:
;   THE CHANNEL.NO (R0) IS VALIDATED,AND IF CH2 THEN 'CMSGID' IS LOADED
;   TO 'XINID.XACKTAB(CH2)',AND THE ENTRY IS FLAGED WAITING.
;
; REGISTER USE:       ENTRY              EXIT
;                     R0=CCHNO(ONMACCNT) KEPT
;                     R5=LINK            R0-R7 DESTROYED
;
; CALLS TO:    NMACKP
;              CBINARY
;
; INPUT:       CMSGID
;              CCHNO
;              MPNM
;              XACKTAB
;
; OUTPUT:      XACKTAB
;              CMSGID
;              CCHNO
;
; ENTRIES:     INMACCNT:  INBOUND NARRATIVE_MSG ACCOUNTING
;              IPMACCNT:  INBOUND PSEUDO MSG ACCOUNTING
;              ONMACCNT:  OUTBOUND NICS-TARE MSG ACCOUNTING
;
; RETURNS:     LINK+0:    DONE
;              UREXXX:    ERR0R
;-----------------------------------------------------------------------
INMACCNT:                            ;BEGIN INMACCNT
         MOV          R5         R6  ;   PUSH LINK
         MOD   CCHNO                 ;
         MOV   XACKTAB           R4  ;   ENTRY:=XACKTAB(CCHNO)
         SETS         X4  FEWAIT     ;   SETS ENTRY WAITING
O110:    MOD          R4             ;
         MOVC  XINID             R2  ;   OBJ=XINID.ENTRY
         MOVC  CMSGID            R7  ;   SOURCE=CMSGID
         MODC  MSGIDL                ;
         MOVM         X7         X2  ;   LOAD XINID.ENTRY
O120:    MOVC  MPRWD4+MPNM       R7  ;   REF.TO ID IN MTCB
         IBZ          X4  FINTRNL    ;   IF AN EXTERNAL CHANNEL THEN
         JMP          S5  CBINARY    ;     "CONVERT BINARY=>ASCII"
         MOD          R4             ;
         MOVC  XOUTID            R2  ;
         MODC  MSGIDL                ;
         MOVM         X7         X2  ;   LOAD XOUTID.ENTRY
         JMP              0.     X6  ;   RETURN LINK+0
                                     ;
IPMACCNT:                            ;BEGIN IPMACCNT
         MOV          R5  RLO200     ;
         MOV   MPPWD5+MPNM       R0  ;   RERIEVE CHANNO FORM MTCB
         SRL          R0  8          ;
         SLO          R0  CH2+1      ;
         SLO          R0  CH6+1      ;   IF NOT (CH2<CHNO<=CH6) THEN
         JMPI  &      S4  URE020     ;E    REPORT ERROR
         MOV          R0  CCHNO      ;   ELSE
         MOVC  MPPWD2+MPNM       R4  ;     POSITION MSGID AS STORED
         MOVC  MPRWD4+MPNM       R5  ;     IN REAL MTCB
         MODC  MSGIDL                ;
         MOVM         X4         X5  ;
         MOD          R0             ;
         MOV   XACKTAB           R4  ;   ENTRY=XACKTAB(CCHNO)
         SBNP         X4  FEWAIT     ;   IF ENTRY WAITING THEN
         JMP          S6  O120       ;     LOAD XOUTID
         JMP              O210       ;   ELSE
         JMP          S6  O110       ;     LOAD XINID AND XOUTID
         SETS         X4  FEWAIT     ;     FLAG ENTRY WAITING
                                     ;     'SIMULATE ACK',I.E.CALL
         JMP          S5  IMACKP     ;     "NARR.MSG_ACK_PROCESSING"
O210:                                ;   ENDIF
         JMPI             RLO200     ;   RETURN LINK+0
                                     ;
ONMACCNT:                            ;BEGIN ONMACCNT
         SEQ          R0  CH2        ;   IF (CCHNO<>CH2) THEN
         JMPI  &      S4  URE020     ;E    REPORT ERROR
         MOD          R0             ;   ELSE
         MOV   XACKTAB           R4  ;     GET ACKTAB(CCHNO)
         SETS         X4  FEWAIT     ;     FLAG ENTRY WAITING
         ADDC  XINID             R4  ;
         MOVC  CMSGID            R1  ;     COPY CMSGID TO
         MODC  MSGIDL                ;     XINID.ENTRY(CCHNO)
         MOVM         X1         X4  ;
         JMP              0.     X5  ;     RETURN LINK+0
                                     ;   ENDIF
                                     ;END NMACCNT
;----------------------------------------------------------------------- ▶1a◀