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 - download
Length: 4578 (0x11e2) Types: TextFile Names: »GENCTRLMSG«
└─⟦21011a92c⟧ Bits:30005095 8" CR80 Floppy CR80FD_0052 ( HMDIR 2 VOL: BACKUP MD: ISH.D From: HMDIR*ISH.D ) └─⟦777b1406f⟧ └─ ⟦this⟧ »ISH.D!GENCTRLMSG«
;---------------------------------------------------------------------- ; 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◀