|
|
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 - metrics - download
Length: 12172 (0x2f8c)
Types: TextFile
Names: »CPMBASE«
└─⟦80dc9b589⟧ Bits:30005096 8" CR80 Floppy CR80FD_0053 ( HMDIR 6 VOL: BACKUP MD: CPM.D From: HMDIR*CPM.D )
└─⟦08785f861⟧
└─⟦this⟧ »CPM.D!CPMBASE«
;----------------------------------------------------------------------
;
; C I P _ P R O T O C O L _ M A C H I N E D A T A B A S E.
;
;----------------------------------------------------------------------
;
;TUNING PARAMETERS:
;---------------------------------
CIPNID:=CIPP ;
OWNNID:IF CIPNID EQ CIPQ THEN <:Q:> ; CIP NODE ID
ELSE <:P:> FI ;
IF CIPNID EQ CIPQ THEN ; IF I AM CIP '▶11◀Q' THEN
SIPRMSK0:=RSIPZ0 ; COLLOCATED SIP IS 'Z'
SIPRMSK1:=RSIPZ1 ;
SIPNID:=<:Z:> ;
SIPMID:=ZMEDEID ; MEDE-ID Z
ELSE IF CIPNID EQ CIPP THEN ; ELSE (I AM CIP 'P')
SIPRMSK0:=RSIPS0 ; COLLOCATED SIP IS 'S'
SIPRMSK1:=RSIPS1 ;
SIPNID:=<:S:> ;
SIPMID:=SMEDEID ; MEDE-ID S
ELSE USE 16 FI FI ; ENDIF
;
;MAILBOX INDEX,ACK'S & AMSG'S.
;---------------------------------
AMAILX: ; ARRAY_AMAILX(CH#)
0*ASIZE ; OUTBOUND CHANNEL 0
1*ASIZE ; OUTBOUND CHANNEL 1
2*ASIZE ; OUTBOUND CHANNEL 2
0*ASIZE ; INBOUND CHANNEL 3
1*ASIZE ; INBOUND CHANNEL 4
2*ASIZE ; INBOUND CHANNEL 5
3*ASIZE ; INBOUND CHANNEL 6
;
;OUTBOUND ACK CONTROL TABLE:
;---------------------------------
LACKTAB: LOC=0 ; ENTRY DEFINITION
XFLAG: LOC=LOC+1 ; STATUS WORD
LX=0 ; FLAG DEFINITION:
FINTRNL= LX,LX=LX+1 ; INTERNAL ACK (I.E. TO MSS)
FEWAIT= LX,LX=LX+1 ; ENTRY WAITING (I.E. OUT-
; STANDING MSG WAITING ACK)
XINID: LOC=LOC+MSGIDL ; ACK ID AWAITED
XOUTID: LOC=LOC+MSGIDL ; ACK ID GENERATED
XOUTCH: LOC=LOC+1 ; DESTINATION CHAN.NO
XENTRYL: LOC=LACKTAB ;
;
XACKTAB: XL2,XL2,XL2,XL3,XL4,XL5,XL6 ; INDEX TABLE
; XACKTAB LAYUOT:
XL2:0<FINTRNL,0,REPEAT(XOUTCH-2),CH2 ; IN CH2 OUT CH2
XL3:0<FINTRNL,0,REPEAT(XOUTCH-2),CH0 ; IN CH3 OUT CH0
XL4:0<FINTRNL,0,REPEAT(XOUTCH-2),CH1 ; IN CH4 OUT CH1
XL5:1<FINTRNL,0,REPEAT(XOUTCH-2),CH5 ; IN CH5 OUT CH5
XL6:1<FINTRNL,0,REPEAT(XOUTCH-2),CH6 ; IN CH6 OUT CH6
;
CPMOPM: 0 ;CPM_OPERATIONAL_MODE PARAMETER:
;---------------------------------
CURLOC=LOC,LOC=0 ; FLAG DEFINITION:
FSTANDBY:LOC=LOC+1 ; STANDBY
FACTIV: LOC=LOC+1 ; ACTIVE
FSYNC: LOC=LOC+1 ; SYNC_MODE
FHUNT: LOC=LOC+1 ; HUNT MODE
FIACTIV: LOC=LOC+1 ; INPUT ACTIV
FOACTIV: LOC=LOC+1 ; OUTPUT ACTIV
LOC=CURLOC ;
;
;TEMPORARY STORAGE:
;---------------------------------
CCHNO: 0 ; CURRENT CHANNEL NO.
CPREC: 0 ; CURRENT ACTION PRECEDENCE *)
CMSGID: 0,REPEAT (MSGIDL-1) ; CURRENT MSGID *)
CMTCBX: 0 ; CURRENT MTCB INDEX *)
CDTG: 0,0 ; CURRENT DTG *)
; *)NOTE:SAME LAYOUT AS BUFFER.
CRMASK: 0,0 ; CURRENT ROUTING MASK
CMSGSTATUS:0 ; CURRENT MSG STATUS
CCATTYP: 0 ; CURRENT (CAT,TYPE)
CALISTR: 0 ; ADDRESS LIST REF.
CALISTL: 0 ; CURRENT ADDRES LIST LENGTH
CNTSPARM:0 ; NTS COMMAND/REPORT PARAMETER
CMSSPARM:0 ; MSS COMMAND/RESPONSE PARAMETER
;
;SEQUENCE NO.
;---------------------------------
OSYNCSN: 0 ; OUTBOUND SYNC_MSG SEQNO
QSEQNO: 0 ; QUEUE LENGTH STATUS SEQ_NO.
ACKSN: 0,REPEAT (ICHCNT+OCHCNT-1) ; LATEST INBOUND/OUTBOUND
; ACK_SEQNO(CH#)
IAMSGSN:=ACKSN ; DUMMY CONSTANT REQUIRED BY
; PROCEDURE GETACK
;
;TIMERS:
;---------------------------------
TIMERS: LOC=0 ; GENERAL LAYOUT
CTIMER:LOC=LOC+1 ; CURRENT TIMER VALUE
PTIMER:LOC=LOC+1 ; TIMER RESTART VALUE
TIMERL:LOC=0 ;
SYNTIM: 0,TIMSSYN ; SYNC_MSG_TIMER.
LOC=LOC+TIMERS ;
;
;AMOS MESSAGES & ANSWERS:
;---------------------------------
STATUSMSG: 0,REPEAT 4 ; STATUSMESSAGE SPM=>SWD
CMESBUF: ; BUFFER FOR INBOUND MESSAGE
CANSWER: 0,REPEAT 4 ; ANSWER COMPILATION BUFFER
AMOSEVENT:LOC=0, 0 ; CURRENT AMOS EVENT
EVTSKAM: 0 ; SIP KAM TO SWD
EVTRTC: 0 ; SIP-RTC ANSWER AWAITED
LOC=LOC+AMOSEVENT ;
RTCMESBUF:0,REPEAT 4 ; MESSAGE TO SIP RTC_PROCESS
;
;PROCESS & REGION NAMES:
;---------------------------------
SIPMAILBOX:<:SMAILB:>,0 ; NAME OF SIP MAILBOX
CWDNAME: <:CWD:>,0,0 ; NAME OF CWD PROCESS
CPMNAME: <:CPM:>,0,0 ; NAME OF CPM PROCESS
RTCNAME: <:ISHRTC:>,0 ; NAME OF CIP RTC-PROCESS
;
;RETURN LINKS:
;---------------------------------
RLA100: 0 ; CONVERTID
RLC100: 0 ; CPMTIM
RLH100: 0 ; GENCTRLMSG
RLI100: 0 ; XMITMSG
RLL100: 0 ; INNMSG
RLM100: 0 ; INCTRLMSG
RLN100: 0 ; INMP
RLO200: 0 ; NMACCNT
RLP100: 0 ; NMACKP
RLR100: 0 ; CPMMC
;
;QDCB'S LAYOUT:
;---------------------------------
QDMDQ: LOC=0 ; QDCB FOR QUEUE 'MDQ'.
TNMDQ,QNMDQ,ENMDQ ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDMDQ ;
QDNM: LOC=0 ; QDCB FOR QUEUE 'NM'.
TNNM,QNNM,ENNM ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDNM ;
QDNC: LOC=0 ; QDCB FOR QUEUE 'NC'.
TNNC,QNNC,ENNC ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDNC ;
QDMC: LOC=0 ; QDCB FOR QUEUE 'MC'.
TNMC,QNMC,ENMC ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDMC ;
QDCM: LOC=0 ; QDCB FOR QUEUE 'CM'.
TNCM,QNCM,ENCM ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDCM ;
QDTQ: LOC=0 ; QDCB FOR QUEUE 'TQ'.
TNTQ,QNTQ,ENTQ ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDTQ ;
QDIQ: LOC=0 ; QDCB FOR QUEUE 'IQ'
TNIQ,QNIQ,ENIQ ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDIQ ;
QDCQ2: LOC=0 ; QDCB FOR QUEUE 'CQ2'.
TNCQ2,QNCQ2,ENCQ2 ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDCQ2 ;
QDCQ3: LOC=0 ; QDCB FOR QUEUE 'CQ3'.
TNCQ3,QNCQ3,ENCQ3 ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDCQ3 ;
QDCQ4: LOC=0 ; QDCB FOR QUEUE 'CQ4'.
TNCQ4,QNCQ4,ENCQ4 ;
0,REPEAT(QDCBL-LOC) ;
LOC=LOC+QDCQ4 ;
XQDCQ: QDCQ2,QDCQ3,QDCQ4 ; INDEX XQDCB(CCHNO)
;
;MFDCB'S LAYOUT:
;---------------------------------
NMMFDCB: LOC=0 ; NARRMSG_MFDCB,LOADED BY:.
; 'INNMSG'
1 ; SIZECODE=1 (32 WORDS).
0,REPEAT (MFDDAT-LOC) ; MFDCB HEADER LAYOUT
0,REPEAT 31 ; MFDCB DATA BUFFER LAYOUT
NMMFDCBL:LOC=LOC+NMMFDCB ;
CMMFDCB: ; CTRL.MSG_MFDCB,LOADED BY:
; 'INCTRLMSG' & 'GENCTRLMSG'.
2 ; SIZECODE=2,48 WORDS
0,REPEAT (MFDDAT-2) ; MFDCB HEADER LAYOUT
CMCHEAD: 0,REPEAT (CHEADL-1) ; MFDCB DATA BUFFER LAYOUT
CMCDAT: 0,REPEAT(47-CHEADL) ;
CMMFDCBL:=LOC-CMMFDCB ;
;
;MTCB PARM.BLOCKS:
;---------------------------------
MPACK: LOC=0 ; MP FOR ACK PSEUDO MTCB:
0,0 ;
TYNC,NMA,CCPMAK ;
0,REPEAT(MSGIDL-1) ;
CATACK ;
0,REPEAT(MPCBL-LOC) ;
LOC=LOC+MPACK ;
MPMSS: LOC=0 ; MP FOR MSS STATUS PSEUDO MTCB:
0,0 ;
TYNC,NCR,CCPCMD ;
0,0,0 ;
CARSMS ;
0,REPEAT(MPCBL-LOC) ;
LOC=LOC+MPMSS ;
MPNMSG: LOC=0 ; MP FOR NARR.MSG'S,USED BY:
0,REPEAT(MPRAPR-1) ; 'XMITMSG'
NAPREC ;
NIPREC ;
NCLASS ;
NSPEC ;
TNMSG ;
0,REPEAT (MPCBL-LOC) ;
LOC=LOC+MPNMSG ;
MPCMSG: LOC=0 ; MP FOR CTRL.MSG'S,USED BY:
0,REPEAT(MPRAPR-1) ; 'XMITMSG'.
CAPREC ;
CIPREC ;
CCLASS ;
CSPEC ;
TCTRLMSG ;
0,REPEAT (MPCBL-LOC) ;
LOC=LOC+MPCMSG ;
MPMDQ: ; MP FOR INBOUND MSG'S,USED BY:
MPNM: ; 'CPMED'.
MPNC: 0,REPEAT(MPCBL-1) ;
MPMC: LOC=0 ; PREASSEMBLED MSS COMMAND
0,0 ;
TYNC,NCC,CCPCMD ;
0,0,0 ;
CATMSSC ;
0,REPEAT (MPCBL-LOC) ;
LOC=LOC+MPMC
;----------------------------------------------------------------------
0,REPEAT 31 ; **** PATCH AREA ****