home *** CD-ROM | disk | FTP | other *** search
-
- TITLE 'INIT2'
-
- PRP EQU 8006H
- NMBP EQU 8028H
- EXC EQU 80AAH
- NP EQU 80F0H
- LBLK EQU 8398H
-
- CR00 EQU 82A6H
- START EQU 83A8H
- SCH00 EQU 8165H
-
- LOAD EQU 6
- ISIS EQU 64
-
- NMPCB EQU 5
- MBPP EQU 5
-
- SETUP MACRO NUM,VALUE,ADDR,COND
- MVI A,NUM
- MVI B,VALUE
- LXI H,ADDR
- LOOP: INX H
- IF COND
- INR B
- ENDIF
- MOV M,B
- DCR A
- JNZ LOOP
- IF COND
- INX H
- MOV M,A
- ENDIF
- ENDM
-
- FILE MACRO ACT,ADDR
- MVI C,ACT
- LXI D,ADDR
- CALL ISIS
- LDA STAT
- ORA A
- JNZ ERROR
- ENDM
-
-
- ORG 7000H
-
- NM1: DB 'PROC1 '
-
- PBA: DW FNAM
- BIAS: DW 0
- RETSW: DW 0
- DW ENTRY
- DW STAT
- ENTRY: DS 2
- FNAM: DB 'KERNL.BIN '
- DMP: DB 'DUMP.BIN '
- MESS: DB 'MESS.BIN '
-
- STAT: DS 2
-
- ERROR: HLT
-
-
- INIT2: LXI SP,6FF0H ; Set the stack pointer
- EI
- FILE LOAD,PBA ; Load the kernel subroutines
- LXI H,DMP
- SHLD PBA
- FILE LOAD,PBA ; Load the dump routine
- LXI H,MESS
- SHLD PBA
- FILE LOAD,PBA ; Load the message and REMOV
- ; routines
- SETUP NMPCB*MBPP-1,1,NMBP,1 ; Message buffer links are set
- SETUP NMPCB-1,1,NP,1 ; The NP fields in the PCBs
- ; are set
- LXI H,NM1
- SHLD LBLK
- CALL CR00 ; Create PROC1
- SETUP 1,41H,EXC,0 ; Permanent resident bit is set
- SETUP 10,0,PRP-1,0 ; The PRP and NMR fields are set to 0
- LXI B,NM1
- MVI E,1
- CALL START ; Start PROC1 with priority 1
- MVI C,1
- MVI B,0
- MVI A,1
- DI
- JMP SCH00 ; Call scheduler to start PROC1
-
- END INIT2
-