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

⟦72b84e1e8⟧ TextFile

    Length: 4578 (0x11e2)
    Types: TextFile
    Names: »GENCTRLMSG«

Derivation

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

TextFile

;----------------------------------------------------------------------
; PROCEDURE "GENERATE_CONTROL_MESSAGE"(GENCTRLMSG).
;
; NARRATIVE:
; IF A PDB FILE IS AVAILABLE THEN A CONTROL MESSAGE IS GENERATED AS
; SPECIFIED BY CALLER (DATA REF.,(CAT,TYPE)),AND RETURN IS MADE TO
; DONE (LINK+1).IF NO PDB FILE IS AVAILABLE,THEN RETURN IS MADE TO
; NONE (LINK+0).
;
; REGISTER USE:       ENTRY              EXIT
;        R0           CAT+TYP            MTCB INDEX
;        R1           DATASIZE(WORDS)    DESTROYED
;        R2-R3        -                  DESTROYED
;        R4           REF.DATA           DESTROYED
;        R5           LINK               DESTROYED
;        R6-R7        -                  DESTROYED
;
; CALLS TO:    MTCB,CREATEMTCB
;              MTCB,RESERVEMTCB
;              MTCB,RELEASEMTCB
;              MTCB,CREFILMTCB
;              MTCB,RELFILMTCB
;              IO,MODIFYBYTES
;
; WORK:        CMMFDCB
;
; RETURNS:     LINK+0:NO PDB'S
;              LINK+1:DONE
;              UREXXX:ERROR
;----------------------------------------------------------------------
GENCTRLMSG:                          ;BEGIN GENCTRLMSG
         MOV          R5  RLH100     ;   SAVE LINK
         MOV          R4         R5  ;   PUSH REF.TO DATA
         MOD          R1             ;
         MOD          R1             ;
         MOVC  2*CHEADL          R2  ;   R2=MSGLENGTH
         MOVC  CMCHEAD           R4  ;   R4=REF.TO MSG COMPILE AREA
         MOV   R0       BHCATTYP.X4  ;   WRITE CATTYP
         MOV   OWNNID            R0  ;
         MOV   R0          BHORG.X4  ;   ORIGINATOR
         MOV   R2         BHLGTH.X4  ;   AND MSG LENGTH
         MOVC  1<8+CAPREC        R0  ;   AND MAINTYPE,PREC
         MOV          R0 BHAPREC.X4  ;
         MOVC  CMMFDCB           R4  ;
         MOV   R2  XFADBC+MFDFAD.X4  ;   INIT. FILE ADDRESS
         CLR     1+XFADBC+MFDFAD.X4  ;
         ADDC  MFDBLE            R4  ;   INIT. BUF.LIST ELEMT
         MOV          R2  XBLEBS.X4  ;
         MOVC  XBTYLL            X4  ;
         CLR              XBLELK.X4  ;
         MOVC  CMCHEAD           R2  ;
         MOV          R2  XBLEBA.X4  ;
         JOZ          R1  H120       ; BEGIN GOPY DATA
         MOVC  CMCDAT            R2  ;   R2=REF.TO DESTINATION
H110:                                ;   R5=REF.TO SOURCE
         MOV          X5         X2  ;
         INCD         R5         R2  ;
         SOB          R1  H110       ; END COPY
H120:                                ;
         MOVC  MOPCWAIT          R0  ;
         MOVC  MMTYPREAL         R1  ;
         MON   MTCB,CREATEMTCB       ;   "CREATE_MTCB"(TYPE=REAL)
         JMPI  &      S4  URE002     ;E  X0:ERROR,REPORT ERROR
         MOV   R0     MFDMBX+CMMFDCB ;   X1:DONE,STORE MTCBX
         MOVC  MFDMBX+CMMFDCB    R0  ;   R0=REF.MTCBINDEX
         MOVC  MFDFAD+CMMFDCB    R1  ;   R1=FILE_ADDRESS
         MOVC  MFTYPPDB          R2  ;   R2=TYPE PDB_FILE
         MON   MTCB,CREFILMTCB       ;   "CREATE_FILE"
         JMP   &          H140       ;E  X0:ERROR,GOTO CHECKCAUSE:
                                     ;   X1:R1=FILEADDR,R4=FD
         MOVC  MFDBLE+CMMFDCB    R2  ;   R2=REF.BUF.LIST ELEMT
         MON   IO,MODIFYBYTES        ;   "MODIFYBYTES"
         JMPI  &      S4  URE003     ;E  X0:ERROR,REPORT ERROR
                                     ;   X1:R0=REF.MTCBX,R4=FD
         MOV   MFDMBX+CMMFDCB    R0  ;   R0:=MTCB INDEX
         MON   MTCB,RESERVEMTCB      ;   "RESERVE_MTCB"(R0=MTCBX)
         JMPI  &      S4  URE002     ;E  X0:ERROR,REPORT ERROR
         MOVC  MFDMBX+CMMFDCB    R0  ;   X1:DONE,R0:=REF.MTCBX
         MON   MTCB,RELFILMTCB       ;   "RELEASE_FILE"
         JMPI  &      S4  URE002     ;E  X0:ERROR,REPORT ERROR
                                     ;   X1:R0=REF.MTCBX
         MODN         R7             ;
         INC              RLH100.X7  ;   PREPARE RETURN LINK+1
         JMP              H180       ;   GOTO RELEASE MTCB:
H140:                                ; CHECKCAUSE:
         INE          R7  ECNOPDB    ;   IF CAUSE<>NOPDB THEN
         JMPI  &      S4  URE002     ;E    REPORT ERROR
H180:                                ; RELEASEMTCB:
         MOV          X0         R0  ;   GET MTCB INDEX
         MON   MTCB,RELEASEMTCB      ;   "RELEASE_MTCB"
         JMPI  &      S4  URE002     ;E  X0:ERROR,REPORT ERROR
                                     ;   X1:R0=MTCB INDEX
         JMPI             RLH100     ;   RETURN LINK+0/1
                                     ;END GENCTRLMSG
;---------------------------------------------------------------------- ▶1a◀