|
|
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: 12882 (0x3252)
Types: TextFile
Names: »TYPE.I«
└─⟦8c095a7f3⟧ Bits:30005798 CR80 Disc Pack ( Vol ILS systemdisk XAMOS TOS 10:01 hard boot #43c 19-7-87/JFJ )
└─⟦this⟧ »PREFIXES.D!XAMOS.D!BCS.D!V0201.D!ASM.D!TYPE.I«
└─⟦this⟧ »PREFIXES.D!XAMOS.D!BCS.D!V0202.D!ASM.D!TYPE.I«
└─⟦this⟧ »PREFIXES.D!XAMOS.D!BCS.D!V02CT.D!ASM.D!TYPE.I«
└─⟦c2e810e96⟧ Bits:30005799 CR80 Disc Pack ( XAMOS 841129 ILS TOS 10-01 System Disk Tilhører ILS/MSG hard boot boot entry #43c )
└─⟦this⟧ »PREFIXES.D!XAMOS.D!BCS.D!V0201.D!ASM.D!TYPE.I«
└─⟦this⟧ »PREFIXES.D!XAMOS.D!BCS.D!V0202.D!ASM.D!TYPE.I«
└─⟦this⟧ »PREFIXES.D!XAMOS.D!BCS.D!V02CT.D!ASM.D!TYPE.I«
;-----------------------------------------------------------------------
;
; PROJECT: CD-DED
;
; MODULE NAME: BASIC COMMUNICATION SERVICE INTERFACE
; MODULE ID NMB: CD/2008
; MODULE TYPE: PREFIX
; MODULE FILES: TYPE.I
; PREFIX FILES: S2SYSS, X2HEADS, IOSPARS
; SPECIFICATIONS: CD-DED/PSP/0001
; AUTHOR/DATE: JKK/PHC/PJA/840309
;
; DELIVERABLE: YES
; SOURCE LANGUAGE: CR80 ASSEMBLER
; COMPILE COMPUTER: CR80 M
; TARGET COMPUTER: CR80 M/CR80 MX
; OPER. SYSTEM: XAMOS/MXAMOS
;
;-----------------------------------------------------------------------
;
; CHANGE RECORD
;
; VERSION AUTHOR/DATE DESCRIPTION OF CHANGE
; ------- ----------- ---------------------
; 0101 JKK/PHC/PJA/840309 INITIAL SUBMITTAL TO CD_SCL
;
; 0201 JKK/840807 INCLUDING BCS EVENT:
; 'BCS_POOL_NOT_CREATED'
; INCLUDING BCS ERROR CODE:
; 'BCS_QUEUE_NOT_INTERN'
; NEW FUNCTIONS:
; 'MULTI_WAIT_IO'
; 'DISPOSE_BUFFER'
; 'SET_MULTI_SERVER_PHASE'
;
; BCS EVENT MASK FACILITY INCLUDED
; IN 'BCS_EVENT_INFO'
;
;-----------------------------------------------------------------------
USE BASE
MESSAGE <:BCS INTERFACE V0201 840807:>
ANY_QUEUE= #FFFF;
;---------------------------------------------
; BCS FUNCTIONS
;---------------------------------------------
AX=0
LOGON:= AX, AX=AX+1 ;
LOGOFF:= AX, AX=AX+1 ;
WAIT:= AX, AX=AX+1 ;
WAIT_EVENTS:= AX, AX=AX+1 ;
WAIT_EVENTS_IO:= AX, AX=AX+1 ;
MULTI_WAIT_IO:= AX, AX=AX+1 ;
DEFQUEUE:= AX, AX=AX+1 ;
DEFPRIVATE_QUEUE:= AX, AX=AX+1 ;
REQUEST_QUEUE:= AX, AX=AX+1 ;
SET_PRIORITY:= AX, AX=AX+1 ;
REMOVE_QUEUE:= AX, AX=AX+1 ;
TEST_QUEUE:= AX, AX=AX+1 ;
SEND_MESSAGE:= AX, AX=AX+1 ;
CREATE_MESSAGE:= AX, AX=AX+1 ;
DISPOSE_MESSAGE:= AX, AX=AX+1 ;
RETURN_MESSAGE:= AX, AX=AX+1 ;
COPY_MESSAGE:= AX, AX=AX+1 ;
WRITE_BLOCK:= AX, AX=AX+1 ;
READ_BLOCK:= AX, AX=AX+1 ;
PUT_HEADER:= AX, AX=AX+1 ;
GET_HEADER:= AX, AX=AX+1 ;
PUT_TRAILER:= AX, AX=AX+1 ;
GET_TRAILER:= AX, AX=AX+1 ;
SET_POSITION:= AX, AX=AX+1 ;
JOIN:= AX, AX=AX+1 ;
SPLIT:= AX, AX=AX+1 ;
ALLOCATE_BUFFER:= AX, AX=AX+1 ;
DISPOSE_BUFFER:= AX, AX=AX+1 ;
CONNECT_BUFFER:= AX, AX=AX+1 ;
GET_NEXT_BUFFER:= AX, AX=AX+1 ;
CREATE_POOL:= AX, AX=AX+1 ;
REMOVE_POOL:= AX, AX=AX+1 ;
TEST_POOL:= AX, AX=AX+1 ;
SET_TIMER:= AX, AX=AX+1 ;
SETMPHASE:= AX ;
;---------------------------------------------
; BCS_ERROR_CODES
;---------------------------------------------
AX=#3001
BCS_OK:= 0 ;
ENDMESS:= AX, AX=AX+1 ;
ILPOOL:= AX, AX=AX+1 ;
BUFSHORTAGE:= AX, AX=AX+1 ;
ILLQR:= AX, AX=AX+1 ;
POOLSHORTAGE:= AX, AX=AX+1 ;
MESSSHORTAGE:= AX, AX=AX+1 ;
ILLSUBQUEUE:= AX, AX=AX+1 ;
XTRASHORTAGE:= AX, AX=AX+1 ;
LOGONERROR:= AX, AX=AX+1 ;
ILNAME:= AX, AX=AX+1 ;
ILMESSAGE:= AX, AX=AX+1 ;
UNKNQUEUE:= AX, AX=AX+1 ;
MEMSHORTAGE:= AX, AX=AX+1 ;
ILPRIORITY:= AX, AX=AX+1 ;
ILOPERATION:= AX, AX=AX+1 ;
ILLBUFFER:= AX, AX=AX+1 ;
ILLPARAMETER:= AX, AX=AX+1 ;
MESCORRUPTED:= AX, AX=AX+1 ;
MESEMPTY:= AX, AX=AX+1 ;
THRESHOLD:= AX, AX=AX+1 ;
UNKNFUNCTION:= AX, AX=AX+1 ;
QUENTINTERN:= AX ;
;---------------------------------------------
; BCS_EVENT_TYPE
;---------------------------------------------
AX=0
POOL_ERROR:= AX, AX=AX+1 ;
QUENOT_DEFINED:= AX, AX=AX+1 ;
POOLNOTCREATE:= AX, AX=AX+1 ;
QUECLOSED:= AX, AX=AX+1 ;
POOLCLOSED:= AX, AX=AX+1 ;
QUE_DEFINED:= AX, AX=AX+1 ;
POOLCREATE:= AX, AX=AX+1 ;
MESSAGE_CREATED:= AX, AX=AX+1 ;
BUFFERS_AVAILABLE:= AX, AX=AX+1 ;
BUFFERS_RELEASED:= AX, AX=AX+1 ;
BCS_TIMER:= AX, AX=AX+1 ;
MESSAGE_RECEIVE:= AX, AX=AX+1 ;
CALL_ERROR:= AX ;
;---------------------------------------------
; BCS_EVENT_MASKS
;---------------------------------------------
BMP_ERROR:= 1 < POOL_ERROR ;
BMQUECLOSED:= 1 < QUECLOSED ;
BMQNOT_DEFINED:= 1 < QUENOT_DEFINED ;
BMQ_DEFINED:= 1 < QUE_DEFINED ;
BMP_CREATE:= 1 < POOLCREATE ;
BMP_NOTCREATE:= 1 < POOLNOTCREATE ;
BMP_CLOSED:= 1 < POOLCLOSED ;
BMMESSAGE_CREATED:= 1 < MESSAGE_CREATED ;
BMBUFFERS_AVAILABLE:= 1 < BUFFERS_AVAILABLE ;
BMBUFFERS_RELEASED:= 1 < BUFFERS_RELEASED ;
BMBCS_TIMER:= 1 < BCS_TIMER ;
BMMESSAGE_RECEIVE:= 1 < MESSAGE_RECEIVE ;
;---------------------------------------------
; BCS_EVENT_CLASS
;---------------------------------------------
AX=0
BCS_EVENTS:= AX, AX=AX+1 ;
BCS_AMOS_EVENTS:= AX, AX=AX+1 ;
BCS_IO_EVENTS:= AX ;
;---------------------------------------------
; QUEUE_TYPE
;---------------------------------------------
AX=0
ACTIVE:= AX, AX=AX+1 ;
STANDBY:= AX ;
;---------------------------------------------
; RANGE_TYPE
;---------------------------------------------
AX=0
BLOCAL:= AX, AX=AX+1 ;
BGLOBAL:= AX ;
;---------------------------------------------
; SERVER_TYPE
;---------------------------------------------
AX=0
MONO:= AX, AX=AX+1 ;
MULTI:= AX ;
;---------------------------------------------
; ABS_ADDR
;---------------------------------------------
AX=0
OFFSET:= AX, AX=AX+1 ;
PAGE:= AX, AX=AX+1 ;
ABSALGT:= AX ;
;---------------------------------------------
; BCS_SERVICE
;---------------------------------------------
AX=0
NO_FLOW:= AX, AX=AX+1 ;
FLOW:= AX, AX=AX+1 ;
FLOW_PLUS:= AX ;
;---------------------------------------------
; POOL_INFO_TYPE
;---------------------------------------------
AX=0
ADDR:= AX, AX=AX+1 ;
ALLOCATION:= AX, AX=AX+1 ;
POOLILGT:= AX ;
;---------------------------------------------
; QUEUE_NAME_TYPE
;---------------------------------------------
AX=0
QUENT0:= AX, AX=AX+1 ;
QUENT1:= AX, AX=AX+1 ;
QUENLGT:= AX ;
;---------------------------------------------
; QUEUE_ATTRIBUTES
;---------------------------------------------
AX=0
QUEUE_KIND:= AX, AX=AX+1 ;
RANGE:= AX, AX=AX+1 ;
WINDOW:= AX, AX=AX+1 ;
SERVICE:= AX, AX=AX+1 ;
SUBQUEUE_NO:= AX, AX=AX+1 ;
PRIO_SUB0:= AX, AX=AX+1 ;
SERVER:= AX, AX=AX+1 ;
QUEATTRLGT:= AX ;
;---------------------------------------------
; QUEUE_INFO_TYPE
;---------------------------------------------
AX=0
BCSSERVICE:= AX, AX=AX+1 ;
SUBQ_NO:= AX, AX=AX+1 ;
WINDW:= AX, AX=AX+1 ;
QUEINFLGT:= AX ;
;---------------------------------------------
; SEND_INFO_TYPE
;---------------------------------------------
AX=0
SITHRESHOLD:= AX, AX=AX+1 ;
SIPOOL:= AX, AX=AX+1 ;
SIHEADER:= AX, AX=AX+1 ;
SIHEADER_SIZE:= AX, AX=AX+1 ;
SISENDINFLGT:= AX ;
;---------------------------------------------
; WAIT_IO_TYPE
;---------------------------------------------
AX=0
W_OPS:= AX, AX=AX+1 ;
W_MULTI:= AX, ;
;---------------------------------------------
; BCS_EVENT_INFO
;---------------------------------------------
AX=0
HEADER:= AX, AX=AX+1 ;
HEADER_SIZE:= AX, AX=AX+1 ;
QUEUE:= AX, AX=AX+1 ;
PRIORITY:= AX, AX=AX+1 ;
B_EVENT_M:= AX, AX=AX+1 ;
CLASS:= AX, AX=AX+1 ;
; CASE CLASS OF
BX=AX ; BCS_EVENT:
BCSEVT:= BX, BX=BX+1 ;
; CASE BCS_EVENT OF
; POOLCLOSED,
; POOLCREATE,
; POOLNOTCREATE,
; BUFFERS_AVAILABLE,
CX=BX ; POOL_ERROR:
POOL:= CX, CX=CX+1 ;
FREEBUFS:= CX ;
; QUECLOSED,
; QUENOT_DEFINED:
; NOTHING;
CX=BX ; QUE_DEFINED:
QUEINFO:= CX ;
; MESSAGECREATED:
AVLMESS:= CX ;
; BUFFERS_RELEASED:
BUFCOUNT:= CX ;
; TIMERCOUNT:
TIMER:= CX ;
; MESSAGE_RECEIVE:
SUBQUEUE:= CX, CX=CX+1 ;
BCSMESS:= CX, CX=CX+1 ;
MESSLGT:= CX, CX=CX+1 ;
NO_OF_MESSAGES:= CX ;
;
SAVEBX=CX
BX=AX ; BCS_AMOS_EVENT:
EVTTYPE:= BX, BX=BX+1 ;
AMOS_MESSAGE:= BX, BX=BX+1 ;
EVENT_ID:= BX, BX=BX+1 ;
IF BX GT SAVEBX THEN
SAVEBX=BX
FI
;«eot» BCS_IO_EVENT:
W_IO_TYPE:= AX, AX=AX+1 ; CASE WAIT OPERATION OF
BX=AX ;
CX=BX ; WAIT_OPS :
FAD:= CX, CX=CX+1 ;
BLE:= CX, CX=CX+1 ;
OPREF:= CX, CX=CX+1 ;
FD:= CX, CX=CX+1 ;
IO_CC:= CX, CX=CX+1 ;
IF CX GT SAVEBX THEN ;
SAVEBX=CX
FI
CX=BX ; WAIT_MULTI :
MFAD:= CX, CX=CX+1 ;
MSAD:= CX, CX=CX+1 ;
MBLE:= CX, CX=CX+1 ;
MOPREF:= CX, CX=CX+1 ;
MFD:= CX, CX=CX+1 ;
MSFD:= CX, CX=CX+1 ;
MFINF:= CX, CX=CX+1 ;
MUSOPID:= CX, CX=CX+1 ;
MIO_CC:= CX, CX=CX+1 ;
; END;
IF CX GT SAVEBX THEN ; END;
SAVEBX=CX
FI
EVTTYPLGT:= SAVEBX ;
MESSAGE <:BCS EVENT INFO LENGTH = :> ,SAVEBX