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

⟦bc3870c7c⟧ TextFile

    Length: 2230 (0x8b6)
    Types: TextFile
    Names: »GETACK«

Derivation

└─⟦21011a92c⟧ Bits:30005095 8" CR80 Floppy CR80FD_0052 ( HMDIR 2 VOL: BACKUP MD: ISH.D From: HMDIR*ISH.D )
    └─⟦777b1406f⟧ 
        └─ ⟦this⟧ »ISH.D!GETACK« 

TextFile

;----------------------------------------------------------------------
; PROCEDURE "GET_ACKNOWLEDGEMENT"(GETACK).
;
; PROCEDURE "GET_ANTIMESSAGE"(GETAMSG).
;
; NARRATIVE:
; THE ACKNOWLEDGEMENT/ANTIMESSAGE RECEIVED VIA A 'KAM' (STORED IN
; CMMFDCB) AND DESIGNATED BY CURRENT CHANNEL NO. (CCHNO),IS INSPECTED.
; IF THE ACK/AMSG_SEQNO IS VALID (NONZERO),AND UNEQUAL THE LATEST 
; SEQNO RETAINED ON THAT CHANNEL,THEN A TRUE ACK/AMSG IS RECEIVED.
; IT IS RETREIVED,AND STORED IN 'CMSGID' AND RETURN IS MADE TO LINK+1.
; OTHERWISE RETURN IS MADE TO LINK+0.
;
; REGISTER USE:       ENTRY              EXIT
;        R4           -                  DESTROYED
;        R5           LINK               KEPT
;        R7           -                  DESTROYED
;
; INPUT:       ACKSN/IAMSGSN
;              CMMFDCB
;
; OUTPUT:      ACKSN/IAMSGSN
;              CMSGID
;
; RETURNS:     LINK+0:NONE
;              LINK+1:GOT ACK/AMSG
;----------------------------------------------------------------------
GETACK:                              ;BEGIN GETACK
         MODC  ACKSN-IAMSGSN         ;
GETAMSG:                             ;BEGIN GETAMSG
         MODC  IAMSGSN               ;
         MOD   CCHNO                 ;   GET REF.TO OLD
         MOVC  0                 R7  ;   ACK/AMSG_SEQNO(CCHNO)
         MOV   CCHNO             R4  ;
         MOD   AMAILX.X4             ;   GET REF.TO INBOUND ACK/
         MOVC  KAMAX+CMCDAT      R4  ;   AMSG(CCHNO) FROM KEEP
                                     ;   ALIVE MESSAGE
         SOZ              ASEQNO.X4  ;   IF (ACK/AMSG_SEQNO=0) OR
         IEQ          X7  ASEQNO.X4  ;     (ACK/AMSG_SEQNO=OLD) THEN
         JMP              0.     X5  ;     NONE:RETURN LINK+0
                                     ;   ELSE
         MOV   ASEQNO.X4         X7  ;     OLDSEQNO=ACK/AMSG_SEQNO
         ADDC  AMSGID            R4  ;
         MOVC  CMSGID            R7  ;
         MODC  MSGIDL                ;     RETAINE MSGID
         MOVM         X4         X7  ;
         JMP              1.     X5  ;     RETURN LINK+1
                                     ;   ENDIF
                                     ;END GETACK/GETAMSG
;----------------------------------------------------------------------