|
|
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: 10398 (0x289e)
Types: TextFile
Names: »X2GEN1.S«
└─⟦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!ASM.D!X2GEN1.S«
└─⟦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!ASM.D!X2GEN1.S«
;***********************************************************************
;* *
;* C R 8 0 A M O S *
;* D A T A A N D P R O G R A M H E A D E R *
;* G E N E R A T O R P A R T 1 *
;* CONFIG ID: CSS/831 *
;* AUTHOR: JHO *
;* DATE: 830509 *
;* VERSION: 203 *
;* *
;***********************************************************************
;
; CHANGE RECORD:
;
; VERSION AUTHOR/DATE DESCRIPTION OF CHANGE
; ------- ----------- ---------------------
;
; 0101 JHO/790827 INITIAL RELEASE
;
; 0201 HPT/820501 XAMOS DEFINITIONS INCLUDED
;
; 0202 HS /821112 XCURDIR IS ALSO USED AS POINTER
; TO XTRA (XXTRA).
;
; 0203 HS /830509 WARNING THAT THE CSS401 ASSEMBLER SHOULD
; BE USED IS INSERTED. BECAUSE A NEW ASSEMBLER
; GENERATING LINK MODULES IS BEING PREPARED.
;
;-----------------------------------------------------------------------
MESSAGE <:X2GEN1 V830509:>
MESSAGE <:TO BE USED WITH CSS401 ASSEMBLER ONLY:>
USE PROG
IF WORDS NE 0 THEN MESSAGE <:X2GEN1 MUST BE CALLED INITIALLY IN SOURCE:>
FI
AREASWITCH= 1
XTRA= 0 ; SIZE OF NOT ASSEMBLED LOCAL DATA
; ABOVE BOUND
XTND= 0 ; SIZE OF NOT ASSEMBLED DATA BELOW
; BOUND
XFDS= 0 ; DEFAULT NMB OF FILE DESRIPTIONS
XIBS= 0 ; DEFAULT NMB OF IO CONTROL BLOCKS
XXFS= 0 ; DEFAULT NMB OF XFER LIST ELEMENT
XSTS= 0 ; DEFAULT NMB OF IO STREAMS
XIOSIZE= 0 ; DEFAULT SIZE OF IO AREA
XMSGS= 4 ; DEFAULT NMB OF MESSAGE BUFFERS
; GENERAL HEADER DECLARATION
AX=0
XHTYPE:= AX, AX=AX+1 ; HEADER TYPE
BX=0
XTABLE:= BX, BX=BX+1 ; TABLE HEADER
XCODE:= BX, BX=BX+1 ; PROGRAM HEADER
XPROCESS:= BX, BX=BX+1 ; PROCESS HEADER
XHSIZE:= AX, AX=AX+1 ; SIZE OF ITEM (IN WORDS)
XHNAME:= AX, AX=AX+3 ; NAME OF ITEM
XHGHL:= AX ; LENGTH OF GENERAL HEADER
; PROGRAM HEADER DECLARATION
AX= XHGHL ; GENERAL HEADER HEADER
XPVERS:= AX, AX=AX+1 ; PROGRAM VERSION
XPTYPE:= AX, AX=AX+1 ; TYPE
BX=0
BNREENTRANT:= BX, BX=BX+1 ; REENTRANT VS NON REENTRANT
BNRESIDENT:= BX, BX=BX+1 ; RESIDENT VS SWAPPABLE
BNPERMANENT:= BX, BX=BX+1 ; PERMANENT VS REMOVEABLE
BNMONITOR:= BX, BX=BX+1 ; MONITOR CODE VS NON MONITOR CODE
BNUTILITY:= BX, BX=BX+1 ; UTILITY PROGRAM VS NOT UTILITY
BNPASCAL:= BX, BX=BX+1 ; PASCAL PROGRAM VS NOT PASCAL P
BMREENTRANT:= 1<BNREENTRANT
BMRESIDENT:= 1<BNRESIDENT
BMPERMANENT:= 1<BNPERMANENT
BMMONITOR:= 1<BNMONITOR
BMUTILITY:= 1<BNUTILITY
BMPASCAL:= 1<BNPASCAL
XPSTART:= AX, AX=AX+1 ; RELATIVESTART ADDRESS
XPMICRO:= AX, AX=AX+1 ; REL REF TO MICRO LOAD MODULE
XPCHKS:= AX, AX=AX+1 ; CHECKSUM
XPMEM:= AX, AX=AX+1 ; MEMORY PARAMETER
IF AX GT 32 THEN USE 16 FI
AX=32 ; SPARE POSITIONS
XPGHDL:= AX ; LENGTH OF PROGRAM HEADER
IF XPROGRAM THEN
XCODE ; PROGRAM TYPE HEADER
XPGWDS ; SIZE OF PROGRAM
XPGNAME0 ; PROGRAM NAME
XPGNAME1
XPGNAME2
XVERSION ; PROGRAM VERSION
XPGTYPE ; TYPE OF PROGRAM
XSTART ; RELATIVE START ADDRESS
XMICRO ; RELATIVE ADDRESS TO MICRO
; PROGRAM LOAD MODULE
0 ; CHECKSUM
XPGMEM ;V2 PROGRAM MEMORY RANGE
0, REPEAT XPGHDL-LOC
FI
USE BASE
; PROCESS HEADER DECLARATION
AX= XHGHL ; GENERAL HEADER HEADER
XPROCHL:= AX ; LENGTH OF PROCESS HEADER
;-----------------------------------------------------------------------
; GENERAL PROCESS DESCRIPTION
;-----------------------------------------------------------------------
AX= -19-XUSERIDLENGTH
XBEYLGT:= -AX ; SIZE OF AREA BEYOND REGISTERS
XPCPUNAME:= AX, AX=AX+3 ; CPU NAME
XPRIO:= AX, AX=AX+1 ; PRIORITY
XPCAP:= AX, AX=AX+1 ; CAPABILITY REQUIREMENT
BX=0 ; ACCESS:
BNCLASS:= 12 ; LOW ORDER BIT OF CLASS FIELD
BNMAXCL:= 15 ; MAXIMUM CLASSIFICATION CODE
BNCREPR:= BX,BX=BX+1 ; CREATE PROCESS
BNCCRPR:= BX,BX=BX+1 ; CREATE PROCESS WHICH CREATES
; A PROCESS
BNCREPG:= BX,BX=BX+1 ; CREATE AND LOAD PROGRAM
BNCCRPG:= BX,BX=BX+1 ; CREATE PROCESS WHICH CREATES
; AND LOADS PROGRAMS
BNALDEV:= BX,BX=BX+1 ; ALLOCATE DEVICE
BNALMEM:= BX,BX=BX+1 ; ALLOCATE MEMORY
IF BX GT 12 THEN USE 16 FI ; UNDERLINE IF ERROR
XPRCLAIM:= AX, AX=AX+1 ; MEMORY CLAIM FOR PROCESS (WORDS)
XPRSIZE:= AX, AX=AX+1 ; SIZE OF EXECUTING PROCESS
XPFDSX:= AX, AX=AX+1 ; NUMBER OF FILE DESCRIPTIONS
XPIBSX:= AX, AX=AX+1 ; NUMBER OF IO CONTROL BLOCKS
XPSTSX:= AX, AX=AX+1 ; NUMBER OF STREAMS
XPXFSX:= AX, AX=AX+1 ; NUMBER OF TRANSFER LIST ELEMENTS
XPMSGX:= AX, AX=AX+1 ; NUMBER OF MSG BUFFERS
XXTRA:= AX ; REF TO XTRA OR
XCURDIR:= AX, AX=AX+1 ; CURRENT DIRECTORY
XFUNCS:= AX, AX=AX+1 ; INITIALIZATION FUNCTIONS CALLED
XIODATA:= AX, AX=AX+1 ;
XUSERID:= AX, AX=AX+XUSERIDLENGTH
XCBASE:= AX, AX=AX+1 ; BASE COPY
XPCB:= AX, AX=AX+1 ; LOGICAL PCB REF
XLEVEL:= AX, AX=AX+1 ; SYSTEM LEVEL
XSYSTEM:= 1 ; SYSTEM LEVEL
XUSER:= 0 ; USER LEVEL
XBOUND:= AX, AX=AX+1 ; REGISTER
XR0:= AX, AX=AX+1 ; REGISTER
IF XR0 NE 0 THEN MESSAGE <:HEADER ERROR:> FI
XR1:= AX, AX=AX+1 ; REGISTER
XR2:= AX, AX=AX+1 ; REGISTER
XR3:= AX, AX=AX+1 ; REGISTER
XR4:= AX, AX=AX+1 ; REGISTER
XR5:= AX, AX=AX+1 ; REGISTER
XR6:= AX, AX=AX+1 ; REGISTER
XR7:= AX, AX=AX+1 ; REGISTER
XBASE:= AX, AX=AX+1 ; REGISTER
XMOD:= AX, AX=AX+1 ; REGISTER
XPROG:= AX, AX=AX+1 ; REGISTER
XPRPC:= AX, AX=AX+1 ; REGISTER
XTIMER:= AX, AX=AX+1 ; REGISTER
XPSW:= AX, AX=AX+1 ; REGISTER
XOLDPRC:= AX, AX=AX+1 ; PREVIOUS PROCESS
XLOCACT:= AX, AX=AX+1 ; LOCAL ACTION
XLOCRET:= AX, AX=AX+1 ; LOCAL ACTION RETURN LINK
XCAUSE:= AX, AX=AX+1 ; LOCAL INTERRUPT CAUSE CODE
XDEVICE:= AX, AX=AX+1 ; DEVICE ADDRESS
XTIMRS:= AX, AX=AX+1 ; TIMER RESET VALUE
XMONRET:= AX, AX=AX+1 ; MONITOR RETURN LINK
XTLINK:= AX, AX=AX+1 ; TIMER LINK
XLINK0:= AX, AX=AX+1
XLINK1:= AX, AX=AX+1
XLINK2:= AX, AX=AX+1
XLINK3:= AX, AX=AX+1 ;
XLINK4:= AX, AX=AX+1 ;
XLINK5:= AX, AX=AX+1 ;
XLINK6:= AX, AX=AX+1 ;
XLINK7:= AX, AX=AX+1 ;
XWORKLGT= 5 ; SIZE OF WORK AREA
XWORK:= AX, AX=AX+XWORKLGT; WORK AREA
XPROCLGT:= AX ; LENGTH OF PROCESS DESCIPTOR ABOV
; REGISTERS
XFIRST= -(XBEYLGT+XPROCHL)
IF XDATA THEN
LOC= XFIRST
XPROCESS ; PROCESS TYPE HEADER
XPRWDS ; LENGTH OF PROCESS FILE
XPROCESSNAME0 ; NAME OF PROCESS
XPROCESSNAME1
XPROCESSNAME2
XCPUNAME0 ; NAME OF REQUIRED CPU
XCPUNAME1
XCPUNAME2
XPRIORITY ; REQUIRED PRIORITY FOR PROCESS
XCAPABILITIES ; REQUIRED CLASSIFICATION LEVEL
; AND CAPABILITIES OF PROCESS
XTOTSZ ; MEMORY CLAIM
XPRLNG ; SIZE OF EXECUTING PROCESS
XPFDS ; NUMBER OF FILE DESCRIPTOINS
XPIBS ; NUMBER OF IO CONTROL BLOCKS
XPSTS ; NUMBER OF IO STAREAMS
XPXFS ; NUMBER OF TRANSFER LIST ELEMENTS
XPMSGS ; NUMBER OF MESSAGE BUFFERS
XTRREF ; CURRENT DIRECTORY OR REF TO XTRA
XPRMEM ;V2 PROCESS MEMORY RANGE
XIOREF ; REF TO IO DATA
XUSERID0, XUSERID1 ; USER ID
IF XUSERIDLENGTH NE 2 THEN MESSAGE <:USERIDLENGTH ERROR:> FI
0 ; BASE COPY
0 ; XPCB
XPRLEVEL ; REQUIRED EXECUTION LEVEL OF PROC
XBNDSZ ; BOUND
0, REPEAT 7 ; REGISTERS 0-7
XABASE, XABASE, XAPROG, XAPRPC, 100, #6800
0, REPEAT (XPROCLGT-LOC)
FI
;«ff»«ff»