Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

3565 lines
38 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; SLAVE SUPORT PROCESS FOR CP/NET
;
; 1982.8.9. BASE
;
TITLE SLAVE SUPORT PROCESS FOR CP/NET
;
; EQUATIONS OF DOS FUNCTIONS
;
CGTUSR EQU 32 ;GET/SET USER CODE
CLOGIN EQU 64 ;LOGIN
CSNDMS EQU 66 ;SEND MESSAGE
CRCVMS EQU 67 ;RECEIVE MESSAGE
CMAX EQU 74 ;CP/NET FUNCTION MAX
COPENQ EQU 135 ;OPEN QUEUE
CREADQ EQU 137 ;READ QUEUE
CWRITQ EQU 139 ;WRITE QUEUE
CDELAY EQU 141 ;DELAY
CCREAT EQU 144 ;CREATE PROCESS
CSYSDT EQU 154 ;GET SYSTEM DATA PAGE
CGTPDA EQU 156 ;GET CURRENT PROCESS DESCRIPTOR POINT
;
LNTFCB EQU 39 ;FILE CONTROL BLOCK LENGTH FOR CP/NET
;
; BIAS OF PARAMETER AREA
;
BRTNUM EQU 7 ;FUNCTION ROUTINE NUMBER
BPDPNT EQU 17 ;PROCESS DESCRIPTOR POINTER
BQBUF EQU 19 ;QUEUE BUFFER POINTER
BFCB EQU 21 ;FCB AREA TOP
BSPLBF EQU 476 ;SPOOLER BUFFER
BQSPL EQU 494 ;UQCB FOR SPOOLER
BQIN EQU 663 ;NETWORK QUEUE IN UQCB TOP
BQOUT EQU 675 ;NETWORK QUEUE OUT UQCB TOP
BLNG EQU 687 ;PARAMETER BLOCK LENGTH
;
; BDOS ENTRY POINTER
;
BDOSAD:
DW 0 ;SET BY OS
;
; MAIN PROCESS DESCRIPTOR
;
DW 0 ;LINK TO NEXT PROCESS DESCRIPTOR
DB 0 ;STATUS
DB 100 ;PRIORITY
DW MAINST+38 ;STACK POINTER VALUE
DB 'Slave0SP' ;PROCESS NAME
DB 0 ;CONSOLE
DB 0FFH ;MEMORY SEGMENT IS RESIDENT
DW 0
DW 0
DW 0
DB 0
DW 0
DB 0
DW 0
DW 0
DW 0 ;HL'
DW 0 ;DE'
DW 0 ;BC'
DW 0 ;AF'
DW 0 ;IY
DW 0 ;IX
DW 0 ;HL
DW 0 ;DE
DW 0 ;BC
DW 0 ;AF
DW 0
;
;
; COMMENT & USER ID
;
DB 'COPTRIGHT (C) 1980, DIGITAL RESEARCH '
;
DB 0,0,0,0,0,0
;
; FILE CONTROL BLOCK FOR SPOOLING
;
SPLFCB:
DB 1,'SLVxSPL0','TXT'
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
;
; DATA FOR USER QUEUE CONTROL BLOCK
;
QCNTQU:
DB 'NtwrkQIx'
;
UQSPOL:
DW 0 ;LINK TO QUEUE
DW 0 ;LINK TO BUFFER
DB 'SPOOL '
;
UQMXLT:
DW 0 ;LINK TO QUEUE
DW 0 ;LINK TO BUFFER
DB 'MXList '
;
UQMLBX:
DW 0 ;LINK TO QUEUE
DW Y19C4 ;LINK TO BUFFER
DB 'MailBoxQ'
;
; BIT MASK DATA INDEX
;
IXBTMS:
DW 0FFFEH ;BIT 0
DW 0FFFDH ; 1
DW 0FFFBH ; 2
DW 0FFF7H ; 3
DW 0FFEFH ; 4
DW 0FFDFH ; 5
DW 0FFBFH ; 6
DW 0FF7FH ; 7
DW 0FEFFH ; 8
DW 0FDFFH ; 9
DW 0FBFFH ; 10
DW 0F7FFH ; 11
DW 0EFFFH ; 12
DW 0DFFFH ; 13
DW 0BFFFH ; 14
DW 07FFFH ; 15
;
; CP/NET FUNCTION ROUTINE NUMBER INDEX
;
IXFNRT:
DB 000H
DB 000H
DB 000H
DB 001H
DB 002H
DB 003H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 004H
DB 000H
DB 000H
DB 005H
DB 006H
DB 007H
DB 008H
DB 008H
DB 009H
DB 00AH
DB 00BH
DB 006H
DB 009H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 009H
DB 000H
DB 005H
DB 00CH
DB 00DH
DB 00EH
DB 00FH
DB 010H
DB 005H
DB 010H
DB 00DH
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 011H
DB 012H
DB 013H
DB 014H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
;
;
; DATA FOR SPOOL START
;
T011C:
DB '.TEX[D]',0
;
;
;
A0124:
DCX SP
LXI H,D0001
DAD SP
MOV D,E
PUSH D
INX SP
PUSH B
MOV E,M
INX H
MOV D,M
INX H
MOV C,M
MOV M,E
INX H
MOV B,M
MOV M,D
PUSH B
LXI H,T0005
DAD SP
MVI M,0FFH
A013D:
LXI H,T0005
DAD SP
MOV A,M
INR A
MOV M,A
DCX H
CMP M
JZ A018C
LXI H,T0005
DAD SP
T014D:
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
PUSH H
PUSH H
LXI H,T0006
DAD SP
POP D
CALL A1647
POP D
PUSH H
LXI H,D0001
DAD D
PUSH H
LXI H,T0006
DAD SP
POP D
CALL A1647
DCX D
DCX D
DCX D
CALL A16A9
ORA L
SUI 001H
SBB A
POP H
ANA M
RAR
JNC A0189
LXI H,T0005
DAD SP
MOV A,M
POP H
POP H
POP H
POP H
RET
;
A0189:
JMP A013D
;
A018C:
LXI H,T0005
DAD SP
MOV A,M
POP H
POP H
POP H
POP H
RET
;
; CHECK SLAVE ID ON STACK SLAVE ID 1B
; INPUT COUNTER 1B
; C:SLAVE ID BIT DATA 2B
; OUTPUT
; A:-1 NOT FOUND OTHER VECTOR NUMBER
;
CHKSID:
DCX SP
PUSH H
MOV B,C ;SAVE SLAVE ID
PUSH B
INX SP ;RESERVE 4 BYTE WORK
LXI H,1
DAD SP ;GET WORK POINT FOR COUNTER
MVI M,-1 ;INITIALIZE COUNTER
MVI A,1
INX H
MOV M,A ;INITIALIZE BIT DATA
INX H
MVI M,0
CHKSIL: ;ONE BIT CHECK LOOP
MVI A,-1
RAR
JNC CHKSIE ;ALWAYS FAILS NOT USED
LXI H,1
DAD SP ;GET COUNTER POINT
MOV A,M
INR A ;COUNT UP
MOV M,A
LHLD Y19C0 ;CONFIGRATION TABLE TOP
INX H
INX H
CMP M ;COMPARE WITH MAX SLAVE COUNT
JNZ CHKSIS ;NOT TO END
MVI A,-1 ;NOT FOUND END
POP H
POP H
RET
;
CHKSIS: ;CHECK ONE DATA
LXI B,4
LHLD Y19C0
DAD B ;GET SLAVE ID TABLE TOP
PUSH H
LXI H,4
DAD SP ;GET BIT DATA POINT
POP D
CALL A1652 ;CHECK LOGIN VECTOR
MVI A,0
CALL A169D ;CHECK ZERO
ORA L
JZ CHKSIN ;NOT LOGIN SLAVE
LXI H,1
DAD SP
MOV C,M ;GET NUMBER OF VECTOR
MVI B,0
LXI H,6
DAD B ;GET BIAS TO SLAVE PROCESSOR ID BUFFER
XCHG
LHLD Y19C0
DAD D ;GET SLAVE PROCESSOR ID BUFFER
PUSH H
LXI H,2
DAD SP
MOV A,M ;GET ID CODE
POP H
CMP M
JNZ CHKSIN ;NOT MATCH CHECK NEXT
LXI H,1 ;MATCH CODE
DAD SP
MOV A,M ;GET VECTOR NUMBER
POP H
POP H
RET
;
CHKSIN:
LXI H,2
DAD SP
XCHG
LXI H,2
DAD SP
CALL A1638 ;*2 FOR BIT SHIFT
XCHG
DCX H
MOV M,E
INX H
MOV M,D ;SAVE NEW BIT DATA TO WORK
JMP CHKSIL ;TO NEXT BIT CHECK
;
CHKSIE: ;LOOP END ROUTINE NOT USED
POP H
POP H
RET
;
; CHECK HEADER DATA ON STACK DATA BUFFER POINT 2B
; INPUT
; BC:DATA BUFFER TOP
; OUTPUT
; HL:BC
; BC:RESULT
; A:RESULT 0 OK -1 ERROR
;
CHKHDR:
PUSH B ;SAVE DATA BUFFER POINT ON STACK
LXI D,3 ;BIAS TO FUNCTION CODE
LXI H,
DAD SP ;GET DATA BUFFER POINTER POINT
CALL A1647 ;GET FUNCTION CODE DATA POINT
MVI A,CMAX
CMP M
JNC $+9 ;NOT FUNCTION CODE OVER
LXI B,-1 ;OVER OF FUNCTION CODE
POP H
MOV A,C
RET
;
LXI H,0
DAD SP
MOV C,M
INX H
MOV B,M ;GET DATA BUFFER POINT
INX B
LHLD Y19C0
INX H
LDAX B ;GET MASTER ID
CMP M ;COMPARE WITH MASTER ID IN CONFIGRATION TABLE
JZ $+9 ;OK
LXI B,-1 ;MISS MATCH OF MASTER ID
POP H
MOV A,C
RET
;
LXI D,3 ;BIAS TO FUNCTION CODE
LXI H,0
DAD SP
CALL A1647 ;GET FUNCTION CODE POINT
MOV A,M
CPI CLOGIN
JNZ $+7 ;NORMAL CODE
MVI A,0 ;LOGIN CODE SO NO CHECK OF SLAVE ID
POP H
RET
;
LXI H,0 ;NORMAL CODE SO CHECK SLAVE ID
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
LDAX B ;GET SLAVE ID CODE
MOV C,A
CALL CHKSID ;CHECK SLAVE ID CODE
CPI -1
JNZ $+9 ;MATCH SLAVE ID
LXI B,-1 ;NOT FOUND OF SLAVE ID
POP H
MOV A,C
RET
;
LXI D,3
LXI H,0
DAD SP
CALL A1647
MOV A,M ;GET FUNCTION CODE
SUI CSNDMS ;CHECK SEND MESSAGE COMMAND
SUI 1
SBB A
PUSH PSW
MOV A,M
SUI CRCVMS ;CHECK RECEIVE MESSAGE COMMAND
SUI 1
SBB A
POP B
MOV C,B
ORA C
RAR
JNC $+9 ;NOT MAIL COMMAND
LDA Y19C3 ;GET MAIL BOX MODE -1 ON
CMA
POP H
RET
;
MVI A,0 ;SUCCESS END
POP H
RET
;
; EACH PROCESS COMMON ROUTINE REENTRANT
; INPUT
; C:CHANEL NUMBER
;
CSTART:
LXI H,-BLNG+1
DAD SP ;STACK POINTER TO UPPER AREA OF DATA AREA
SPHL
MOV B,C
PUSH B ;SET CHANEL NUMBER
INX SP
LXI D,0
MVI C,CGTPDA
CALL BDOS ;GET PROCESS DESCRIPTOR ADDRESS
XCHG
LXI H,BPDPNT
DAD SP
MOV M,E
INX H
MOV M,D ;SET PROCESS DESCRIPTOR POINT
LXI H,BQBUF
DAD SP ;GET QUEUE BUFFER POINT
XCHG
LXI H,BQIN+2
DAD SP
MOV M,E
INX H
MOV M,D ;SET BUFFER POINT TO INPUT UQCB
MVI L,7 ;COPY LENGTH
PUSH H
LXI H,BQIN+4+2
DAD SP ;GET NAME POINT FOR UQCB
XCHG
LXI B,QCNTQU ;NAME DATA POINTER
POP H
LDAX B
STAX D ;COPY NAME
INX B
INX D
DCR L
JNZ $-5
LXI H,0
DAD SP
MOV A,M ;GET CHANEL
CPI 10
JNC CMSTQI ;OVER A
MVI A,'0' ;0 TO 9
LXI H,0
DAD SP
ADD M ;MAKE QUEUE NAME CODE
LXI H,BQIN+11
DAD SP
MOV M,A ;SET TO NAME DATA
JMP CMSTIW
;
CMSTQI: ;OVER A
MVI A,'A'
LXI H,0
DAD SP
ADD M ;MAKE QUEUE NAME CODE
SUI 10
LXI H,BQIN+11
DAD SP
MOV M,A ;SET TO NAME DATA
CMSTIW:
LXI H,BQIN
DAD SP ;GET UQCB POINT
XCHG
MVI C,COPENQ
CALL BDOS ;OPEN QUEUE
CPI 0
JZ CMSTIO ;OK
LXI D,1 ;CAN'T OPEN
MVI C,CDELAY
CALL BDOS ;DELAY FOR MAKE QUEUE
JMP CMSTIW ;RETRY
;
CMSTIO:
LXI H,BQBUF
DAD SP
XCHG
LXI H,BQOUT+2
DAD SP
MOV M,E
INX H
MOV M,D ;SET BUFFER POINTER IN UQCB FOR OUT
MVI L,6 ;COUNT OF NAME COPY
PUSH H
LXI H,BQOUT+4+2
DAD SP
XCHG
LXI B,QCNTQU ;DATA POINT
POP H
LDAX B
STAX D ;COPY NAME
INX B
INX D
DCR L
JNZ $-5
LXI H,BQOUT+10
DAD SP
MVI M,'O' ;"NtwrkQOx"
LXI H,0
DAD SP
MOV A,M ;GET CHANEL
CPI 10
JNC CMSTQO ;OVER A
MVI A,'0' ;0 TO 9
LXI H,0
DAD SP
ADD M ;MAKE QUEUE NUMBER CODE
LXI H,BQOUT+11
DAD SP
MOV M,A ;SET NUMBER
JMP CMSTOW
;
CMSTQO: ;OVER A
MVI A,'A'
LXI H,0
DAD SP
ADD M ;MAKE QUEUE NUMBER CODE
SUI 10
LXI H,BQOUT+11
DAD SP
MOV M,A ;SET NUMBER
CMSTOW:
LXI H,BQOUT
DAD SP
XCHG
MVI C,COPEN
CALL BDOS ;OPEN QUEUE
CPI 0
JZ CMSTOO ;OK
LXI D,1 ;CAN'T OPEN
MVI C,CDELAY
CALL BDOS ;DELAY FOR MAKE QUEUE
JMP CMSTOW
;
CMSTOO:
LXI H,1
DAD SP
MVI M,0 ;CLEAR FCB INITIALIZE COUNT
CMSTFL:
MVI A,7 ;COUNT OF RESERVED FCB AREA
LXI H,1
DAD SP
CMP M ;CHECK END
JC CMSTFE ;ALL OVER
LXI H,1
DAD SP
MOV L,M ;GET COUNT
MVI H,0
LXI D,LNTFCB ;RESERVED FCB LENGTH
CALL A167C ;GET BIAS
XCHG
LXI H,BFCB ;BIAS TO FCB AREA TOP
DAD SP
DAD D ;GET FCB DATA POINT
MVI M,0 ;CLEAR FLAG
LXI H,1
DAD SP
MOV A,M
INR A ;COUNT UP
MOV M,A
JNZ CMSTFL ;TO NEXT FCB
CMSTFE: ;ALL FCB OVER
LXI H,4
DAD SP
MVI M,0 ;CLEAR
LXI H,10
DAD SP
MVI M,0 ;CLEAR
LDA Y19C2 ;GET SPOOL MODE
RAR
JNC CMLOOP ;NO SPOOL
LHLD UQSPOL ;GET SPOOL QUEUE POINTER
XCHG
LXI H,BQSPL ;BIAS OF UQCB FOR SPOOL
DAD SP
MOV M,E
INX H
MOV M,D ;SET LINK TO SPOOLER QUEUE
LXI H,BSPLBF ;BIAS OF SPOOLER BUFFER
DAD SP
XCHG
LXI H,BQSPL+2
DAD SP
MOV M,E
INX H
MOV M,D ;SET POINTER TO SPOOLER QUEUE
;
;
CMLOOP: ;LOOP OF ONE MESSAGE EXCHANGE
MVI A,-1
RAR
JNC CMLPRT ;ALWAYS FAIL NOT USED
LXI H,BQIN
DAD SP
XCHG
MVI C,CREADQ
CALL BDOS ;GET DATA FROM NETWORKIF
LXI B,-1
LXI H,5
DAD SP
MOV M,C ;INITIALIZE DATA
INX H
MVI M,0
LXI D,3
LXI H,BPDPNT
DAD SP
CALL A1647 ;GET POINTER OF FUNCTION CODE
MOV C,M ;GET FUNCTION CODE OF MESSAGE
MVI B,0
LXI H,IXFNRT ;ROUTINE INDEX
DAD B
MOV A,M ;GET ROUTINE NUMBER
LXI H,BRTNUM
DAD SP
MOV M,A ;SET ROUTINE NUMBER
LXI H,BPDPNT
DAD SP
MOV C,M
INX H
MOV B,M ;GET DATA BUFFER POINT
CALL CHKHDR ;CHECK HEADER DATA PARAMETER
RAR
JNC CMLPRD ;OK
LXI H,6 ;ERROR
DAD SP
MVI M,-1
JMP CMLPEN
;
CMLPRD:
LXI H,BRTNUM
DAD SP
MOV C,M ;GET ROUTINE NUMBER
MVI B,000H
LXI H,IXMAIN ;ROUTINE INDEX
DAD B
DAD B
MOV E,M
INX H
MOV D,M ;GET TARGET ROUTINE
XCHG
PCHL ;TO EACH ROUTINE
;
; ROUTINES OF EACH FUNCTION
;
;
A042C:
JMP CMLPEN
;
A042F:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV E,M
MVI D,000H
LXI H,T0900
DAD D
XCHG
MVI C,000H
CALL A162D
LXI H,T0006
DAD SP
MOV M,A
JMP CMLPEN
;
A044E:
LXI D,T0006
LXI H,T0013
DAD SP
CALL A1647
LXI B,T0005
DCX D
PUSH H
CALL A163B
MOV E,M
MVI D,000H
LXI H,T0C00
DAD D
XTHL
MOV C,M
POP D
CALL A162D
LXI H,D0001
DAD SP
MOV M,A
JMP CMLPEN
;
A0475:
LXI H,T000A
DAD SP
MOV A,M
CMA
RAR
JNC A052F
LXI B,0FFFFH
LXI H,T000A
DAD SP
MOV M,C
LDA Y19C2
RAR
JNC A051F
LXI H,T01F2
DAD SP
MVI M,000H
MVI L,024H
PUSH H
LXI H,T0275
DAD SP
XCHG
LXI B,SPLFCB
POP H
A04A0:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A04A0
LXI H,A0000
DAD SP
MOV A,M
CPI 00AH
JNC A04C1
MVI A,030H
LXI H,A0000
DAD SP
ADD M
LXI H,T0277
DAD SP
MOV M,A
JMP A04CF
;
A04C1:
MVI A,041H
LXI H,A0000
DAD SP
ADD M
SUI 00AH
LXI H,T0277
DAD SP
MOV M,A
A04CF:
LXI H,T01F3
DAD SP
XCHG
MVI C,01AH
CALL BDOS
LXI H,T0273
DAD SP
XCHG
MVI C,011H
CALL BDOS
LXI H,D0001
DAD SP
MOV M,A
A04E8:
LXI H,D0001
DAD SP
MOV A,M
CPI 0FFH
JZ A050B
LXI H,T027B
DAD SP
MOV A,M
INR A
MOV M,A
LXI H,T0273
DAD SP
XCHG
MVI C,012H
CALL BDOS
LXI H,D0001
DAD SP
MOV M,A
JMP A04E8
;
A050B:
LXI H,T0273
DAD SP
XCHG
MVI C,016H
CALL BDOS
CPI 0FFH
JNZ A051F
LXI H,019C2H
MVI M,000H
A051F:
LDA Y19C2
CMA
RAR
JNC A052F
LXI D,UQMXLT
MVI C,089H
CALL BDOS
A052F:
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MOV A,M
LXI H,T0002
DAD SP
MOV M,A
LXI B,T0005
DCX D
CALL A163B
MOV A,M
LXI H,T000B
DAD SP
MOV M,A
LXI H,D0001
DAD SP
MVI M,001H
A0552:
LXI H,T0002
DAD SP
MOV A,M
LXI H,D0001
DAD SP
CMP M
JC A069A
LXI H,D0001
DAD SP
MOV C,M
MVI B,000H
LXI H,T0005
DAD B
PUSH H
LXI H,T0015
DAD SP
POP D
CALL A1647
MOV A,M
LXI H,T0003
DAD SP
MOV M,A
MOV A,M
CPI 01AH
JNZ A0630
LXI H,T000A
DAD SP
MVI M,000H
LDA Y19C2
RAR
JNC A0625
LXI H,T01F2
DAD SP
MOV C,M
MVI B,000H
LXI H,T01F3
DAD SP
DAD B
MVI M,01AH
LXI H,T01F3
DAD SP
XCHG
MVI C,01AH
CALL BDOS
LXI H,T0273
DAD SP
XCHG
MVI C,015H
CALL BDOS
CPI 0FFH
JNZ A05BB
LXI H,019C2H
MVI M,000H
JMP A0622
;
A05BB:
LXI H,T0273
DAD SP
XCHG
MVI C,010H
CALL BDOS
CPI 0FFH
JNZ A05D2
LXI H,019C2H
MVI M,000H
JMP A0622
;
A05D2:
LXI D,T00FF
MVI C,020H
CALL BDOS
LXI H,T01DC
DAD SP
MOV M,A
LXI H,T01DD
DAD SP
MVI M,000H
MVI L,008H
PUSH H
LXI H,T0276
DAD SP
PUSH H
LXI H,T01E2
DAD SP
XCHG
POP B
POP H
A05F4:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A05F4
MVI L,008H
PUSH H
LXI H,T01E8
DAD SP
XCHG
LXI B,T011C
POP H
A0608:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A0608
LXI H,T01EE
DAD SP
XCHG
MVI C,08BH
CALL BDOS
LXI D,D0001
MVI C,027H
CALL BDOS
A0622:
JMP A062D
;
A0625:
LXI D,UQMXLT
MVI C,08BH
CALL BDOS
A062D:
JMP A0690
;
A0630:
LDA Y19C2
RAR
JNC A0684
LXI H,T01F2
DAD SP
MOV C,M
MVI B,000H
LXI H,T01F3
DAD SP
DAD B
PUSH H
LXI H,T0005
DAD SP
MOV A,M
POP H
MOV M,A
LXI H,T01F2
DAD SP
MOV A,M
INR A
MOV M,A
CPI 080H
JNZ A0681
LXI H,T01F2
DAD SP
MVI M,000H
LXI H,T01F3
DAD SP
XCHG
MVI C,01AH
CALL BDOS
LXI H,T0273
DAD SP
XCHG
MVI C,015H
CALL BDOS
CPI 0FFH
JNZ A0681
LXI H,019C2H
MVI M,000H
LXI H,T000A
DAD SP
MVI M,000H
A0681:
JMP A0690
;
A0684:
LXI H,T0003
DAD SP
MOV E,M
MVI D,000H
MVI C,005H
CALL BDOS
A0690:
LXI H,D0001
DAD SP
MOV A,M
INR A
MOV M,A
JNZ A0552
A069A:
JMP CMLPEN
;
A069D:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV E,M
MVI D,000H
LXI H,T0600
DAD D
XCHG
MVI C,000H
CALL A162D
LXI H,T0006
DAD SP
MOV M,A
JMP CMLPEN
;
A06BC:
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
LXI B,T0005
DCX D
PUSH H
CALL A163B
MOV E,M
INX H
MOV D,M
POP H
MOV C,M
CALL BDOS
LXI H,D0001
DAD SP
MOV M,A
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
MOV A,M
CPI 020H
JNZ A0718
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV A,M
CPI 0FFH
JNZ A0708
LXI H,D0001
DAD SP
MOV A,M
LXI H,T0006
DAD SP
MOV M,A
JMP A0718
;
A0708:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV A,M
LXI H,T0004
DAD SP
MOV M,A
A0718:
JMP CMLPEN
;
A071B:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
LXI H,T0002
DAD SP
MOV A,M
SUI 008H
SUI 001H
SBB A
CMA
DCX H
MOV M,A
MOV A,M
CMA
RAR
JNC A078D
LXI H,T0002
DAD SP
MVI M,000H
A074F:
LXI H,D0001
DAD SP
MOV A,M
CMA
INX H
PUSH PSW
MOV A,M
SUI 008H
ADI 0FFH
SBB A
POP B
MOV C,B
ANA C
RAR
JNC A078D
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
MOV A,M
CMA
LXI H,D0001
DAD SP
MOV M,A
CMA
RAR
JNC A078A
LXI H,T0002
DAD SP
MOV A,M
INR A
MOV M,A
A078A:
JMP A074F
;
A078D:
LXI H,D0001
DAD SP
MOV A,M
CMA
LXI H,T0006
DAD SP
MOV M,A
CMA
RAR
JNC A0831
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
DCX H
MOV C,M
INX H
MOV B,M
MOV H,B
MOV L,C
LXI B,0FFFFH
MOV M,C
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
PUSH H
LXI H,T014F
DAD SP
MOV C,M
INX H
MOV B,M
INX B
POP H
PUSH B
MOV C,M
INX H
MOV B,M
POP H
MOV M,C
INX H
MOV M,B
MVI L,00DH
LXI D,T0007
PUSH H
LXI H,T0015
DAD SP
CALL A1647
LXI D,T0003
PUSH H
LXI H,T0151
DAD SP
CALL A1647
XCHG
POP B
POP H
A07F9:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A07F9
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
LXI D,T0003
PUSH H
LXI H,T014F
DAD SP
CALL A1647
XTHL
MOV C,M
POP D
CALL BDOS
LXI H,T0006
DAD SP
MOV M,A
CPI 0FFH
JNZ A0831
LXI H,T014D
DAD SP
MOV C,M
INX H
MOV B,M
MOV H,B
MOV L,C
MVI M,000H
A0831:
JMP CMLPEN
;
A0834:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
CPI 008H
JZ A0887
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
LXI D,T0003
LXI H,T014D
DAD SP
CALL A1647
XCHG
MVI C,010H
CALL BDOS
LXI H,T0006
DAD SP
MOV M,A
JMP A088D
;
A0887:
LXI H,T0006
DAD SP
MVI M,0FFH
A088D:
JMP CMLPEN
;
A0890:
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
MOV A,M
CPI 011H
JNZ A08C3
LXI H,T000D
LXI D,T0005
PUSH H
LXI H,T0015
DAD SP
CALL A1647
PUSH H
LXI H,T01D3
DAD SP
XCHG
POP B
POP H
A08B6:
LDAX B
STAX D
INX B
INX D
DCX H
MOV A,H
ORA L
JNZ A08B6
JMP A08E3
;
A08C3:
LXI H,T0005
PUSH H
LXI H,T000E
DAD SP
LXI D,T0017
PUSH H
LXI H,T0015
DAD SP
CALL A1647
XCHG
POP B
POP H
A08D9:
LDAX B
STAX D
INX B
INX D
DCX H
MOV A,H
ORA L
JNZ A08D9
A08E3:
LXI H,T014F
DAD SP
XCHG
MVI C,01AH
CALL BDOS
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
PUSH H
LXI H,T01D1
DAD SP
XTHL
MOV C,M
POP D
CALL BDOS
LXI H,T0006
DAD SP
MOV M,A
SUI 0FFH
ADI 0FFH
SBB A
LXI D,T0005
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
MOV A,M
SUI 03FH
ADI 0FFH
SBB A
POP B
MOV C,B
ANA C
RAR
JNC A095F
A0924:
LXI H,T0006
DAD SP
MOV A,M
SUI 0FFH
ADI 0FFH
SBB A
PUSH PSW
MOV A,M
RRC
RRC
RRC
ANI 060H
MOV C,A
MVI B,000H
LXI H,T0151
DAD SP
DAD B
PUSH H
LXI H,T0008
DAD SP
MOV A,M
POP H
SUB M
ADI 0FFH
SBB A
POP B
MOV C,B
ANA C
RAR
JNC A095F
LXI D,A0000
MVI C,012H
CALL BDOS
LXI H,T0006
DAD SP
MOV M,A
JMP A0924
;
A095F:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
PUSH H
LXI H,T0008
DAD SP
MOV A,M
POP H
MOV M,A
CPI 0FFH
JZ A09D7
LXI H,T0005
DAD SP
MVI M,000H
MVI L,020H
MVI A,003H
PUSH H
LXI H,T0008
DAD SP
ANA M
MOV L,A
MVI H,000H
LXI D,T0020
CALL A167C
XCHG
LXI H,T0151
DAD SP
DAD D
LXI D,T0006
PUSH H
LXI H,T0017
DAD SP
CALL A1647
XCHG
POP B
POP H
A09A3:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A09A3
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,020H
LXI H,T0005
LXI D,T0017
PUSH H
LXI H,T0013
DAD SP
CALL A1647
PUSH H
LXI H,T0010
DAD SP
XCHG
POP B
POP H
A09CD:
LDAX B
STAX D
INX B
INX D
DCX H
MOV A,H
ORA L
JNZ A09CD
A09D7:
JMP CMLPEN
;
A09DA:
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
LXI B,T0005
DCX D
PUSH H
CALL A163B
XTHL
MOV C,M
POP D
CALL BDOS
LXI H,T0006
DAD SP
MOV M,A
JMP CMLPEN
;
A09FA:
LXI H,T0005
DAD SP
MVI M,000H
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,082H
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
CPI 008H
JZ A0AD8
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
LXI D,T000F
PUSH H
LXI H,T014F
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0008
LXI H,T0013
DAD SP
CALL A1647
LXI D,T0023
PUSH H
LXI H,T014F
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
XCHG
MVI C,01AH
CALL BDOS
LXI D,T0003
LXI H,T014D
DAD SP
CALL A1647
XCHG
MVI C,014H
CALL BDOS
LXI D,T0087
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
POP B
MOV C,B
MOV M,C
LXI D,T000F
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0005
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0023
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0006
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
JMP A0AE4
;
A0AD8:
LXI D,T0087
LXI H,T0013
DAD SP
CALL A1647
MVI M,0FFH
A0AE4:
JMP CMLPEN
;
A0AE7:
LXI H,T0005
DAD SP
MVI M,000H
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,002H
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
CPI 008H
JZ A0BC5
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
LXI D,T000F
PUSH H
LXI H,T014F
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0008
LXI H,T0013
DAD SP
CALL A1647
LXI D,T0023
PUSH H
LXI H,T014F
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0009
LXI H,T0013
DAD SP
CALL A1647
XCHG
MVI C,01AH
CALL BDOS
LXI D,T0003
LXI H,T014D
DAD SP
CALL A1647
XCHG
MVI C,015H
CALL BDOS
LXI D,T0007
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
POP B
MOV C,B
MOV M,C
LXI D,T000F
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0005
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0023
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0006
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
JMP A0BD1
;
A0BC5:
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
MVI M,0FFH
A0BD1:
JMP CMLPEN
;
A0BD4:
LXI H,T0005
DAD SP
MVI M,000H
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,082H
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
T0C00:
MOV M,A
CPI 008H
JZ A0CA5
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
MVI L,003H
LXI D,T0007
PUSH H
LXI H,T0015
DAD SP
CALL A1647
LXI D,T0024
PUSH H
LXI H,T0151
DAD SP
CALL A1647
XCHG
POP B
POP H
A0C3C:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A0C3C
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
XCHG
MVI C,01AH
CALL BDOS
LXI D,T0003
LXI H,T014D
DAD SP
CALL A1647
XCHG
MVI C,021H
CALL BDOS
LXI D,T0087
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
POP B
MOV C,B
MOV M,C
LXI D,T000F
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0005
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0023
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0006
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
JMP A0CB1
;
A0CA5:
LXI D,T0087
LXI H,T0013
DAD SP
CALL A1647
MVI M,0FFH
A0CB1:
JMP CMLPEN
;
A0CB4:
LXI H,T0005
DAD SP
MVI M,000H
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,002H
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
CPI 008H
JZ A0D90
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
MVI L,003H
LXI D,T0007
PUSH H
LXI H,T0015
DAD SP
CALL A1647
LXI D,T0024
PUSH H
LXI H,T0151
DAD SP
CALL A1647
XCHG
POP B
POP H
A0D1C:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A0D1C
LXI D,T000A
LXI H,T0013
DAD SP
CALL A1647
XCHG
MVI C,01AH
CALL BDOS
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
LXI D,T0003
PUSH H
LXI H,T014F
DAD SP
CALL A1647
XTHL
MOV C,M
POP D
CALL BDOS
LXI D,T0007
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
POP B
MOV C,B
MOV M,C
LXI D,T000F
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0005
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0023
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0006
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
JMP A0D9C
;
A0D90:
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
MVI M,0FFH
A0D9C:
JMP CMLPEN
;
A0D9F:
LXI H,T0005
DAD SP
MVI M,000H
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,005H
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
CPI 008H
JZ A0E60
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
LXI D,T0003
LXI H,T014D
DAD SP
CALL A1647
XCHG
MVI C,023H
CALL BDOS
LXI D,T000A
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
POP B
MOV C,B
MOV M,C
LXI D,T000F
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0005
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0023
LXI H,T014D
DAD SP
CALL A1647
LXI D,T0006
PUSH H
LXI H,T0015
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
MVI L,003H
LXI D,T0024
PUSH H
LXI H,T014F
DAD SP
CALL A1647
LXI D,T0007
PUSH H
LXI H,T0017
DAD SP
CALL A1647
XCHG
POP B
POP H
A0E55:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A0E55
JMP A0E6C
;
A0E60:
LXI D,T000A
LXI H,T0013
DAD SP
CALL A1647
MVI M,0FFH
A0E6C:
JMP CMLPEN
;
A0E6F:
LXI H,T0005
DAD SP
MVI M,000H
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,003H
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
INX H
MOV B,M
PUSH B
INX D
MOV B,D
MOV C,E
MVI E,008H
CALL A0124
LXI H,T0002
DAD SP
MOV M,A
CPI 008H
JZ A0F30
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
LXI D,T0007
LXI H,T0013
DAD SP
CALL A1647
LXI D,T000F
PUSH H
LXI H,T014F
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0008
LXI H,T0013
DAD SP
CALL A1647
LXI D,T0023
PUSH H
LXI H,T014F
DAD SP
CALL A1647
POP B
LDAX B
MOV M,A
LXI D,T0003
LXI H,T014D
DAD SP
CALL A1647
XCHG
MVI C,024H
CALL BDOS
LXI D,T0008
LXI H,T0013
DAD SP
PUSH PSW
CALL A1647
POP B
MOV C,B
MOV M,C
MVI L,003H
LXI D,T0024
PUSH H
LXI H,T014F
DAD SP
CALL A1647
LXI D,T0005
PUSH H
LXI H,T0017
DAD SP
CALL A1647
XCHG
POP B
POP H
A0F25:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A0F25
JMP A0F3C
;
A0F30:
LXI D,T0008
LXI H,T0013
DAD SP
CALL A1647
MVI M,0FFH
A0F3C:
JMP CMLPEN
;
A0F3F:
LXI D,T0003
LXI H,T0013
DAD SP
CALL A1647
LXI B,T0005
DCX D
PUSH H
CALL A163B
MOV E,M
INX H
MOV D,M
POP H
MOV C,M
CALL BDOS
LXI H,T0006
DAD SP
MOV M,A
MVI A,001H
LXI H,T0008
DAD SP
MOV M,A
INX H
MVI M,000H
LXI H,D0001
DAD SP
MVI M,000H
A0F6E:
MVI A,00FH
LXI H,D0001
DAD SP
CMP M
JC A100C
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
XCHG
LXI H,T0008
DAD SP
CALL A1652
MVI A,000H
CALL A169D
ORA L
JZ A0FF1
LXI H,T0002
DAD SP
MVI M,000H
A0F99:
MVI A,007H
LXI H,T0002
DAD SP
CMP M
JC A0FF1
LXI H,T0002
DAD SP
MOV L,M
MVI H,000H
LXI D,T0027
CALL A167C
XCHG
LXI H,T0015
DAD SP
DAD D
XCHG
LXI H,T014D
DAD SP
MOV M,E
INX H
MOV M,D
DCX H
MOV C,M
INX H
MOV B,M
LXI D,T0003
DCX H
CALL A1647
PUSH H
LXI H,T0003
DAD SP
MOV A,M
INR A
POP H
SUB M
SUI 001H
SBB A
MOV H,B
MOV L,C
ANA M
RAR
JNC A0FE7
LXI H,T014D
DAD SP
MOV C,M
INX H
MOV B,M
MOV H,B
MOV L,C
MVI M,000H
A0FE7:
LXI H,T0002
DAD SP
MOV A,M
INR A
MOV M,A
JNZ A0F99
A0FF1:
LXI H,T0008
DAD SP
XCHG
LXI H,T0008
DAD SP
CALL A1638
XCHG
DCX H
MOV M,E
INX H
MOV M,D
LXI H,D0001
DAD SP
MOV A,M
INR A
MOV M,A
JNZ A0F6E
A100C:
JMP CMLPEN
;
A100F:
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
LDAX B
MOV C,A
CALL CHKSID
CPI 0FFH
JNZ A110B
DI
LHLD Y19C0
INX H
INX H
LXI B,T0003
PUSH H
LHLD Y19C0
DAD B
POP D
LDAX D
CMP M
JZ A110A
LXI H,D0001
DAD SP
MVI M,000H
A103C:
LXI H,D0001
DAD SP
MOV A,M
SUI 008H
ADI 0FFH
SBB A
MOV C,M
MVI B,000H
LXI H,T0005
DAD B
PUSH PSW
PUSH H
LXI H,T0017
DAD SP
POP D
CALL A1647
PUSH H
LXI H,T0005
DAD SP
MOV C,M
MVI B,000H
LXI H,T0016
DAD B
XCHG
LHLD Y19C0
DAD D
POP B
LDAX B
SUB M
SUI 001H
SBB A
POP B
MOV C,B
ANA C
RAR
JNC A107F
LXI H,D0001
DAD SP
MOV A,M
INR A
MOV M,A
JMP A103C
;
A107F:
LXI H,D0001
DAD SP
MOV A,M
CPI 008H
JZ A1092
LXI H,T0006
DAD SP
MVI M,0FFH
JMP A110A
;
A1092:
LXI B,T0003
LHLD Y19C0
DAD B
MOV A,M
INR A
LHLD Y19C0
DAD B
MOV M,A
LXI H,D0001
SHLD Y19CB
LXI H,019CDH
MVI M,000H
A10AB:
LXI B,T0004
LHLD Y19C0
DAD B
LXI D,019CBH
CALL A1652
MVI A,000H
CALL A169D
ORA L
JZ A10D6
LHLD Y19CB
XCHG
LHLD Y19CB
DAD D
SHLD Y19CB
LDA Y19CD
INR A
STA Y19CD
JMP A10AB
;
A10D6:
LXI B,T0004
LHLD Y19C0
DAD B
LXI D,019CBH
CALL A1692
LXI B,T0004
PUSH H
LHLD Y19C0
DAD B
POP B
MOV M,C
INX H
MOV M,B
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
XCHG
INX H
PUSH B
MOV C,M
MVI B,000H
LXI H,T0006
DAD B
XCHG
LHLD Y19C0
DAD D
POP B
LDAX B
MOV M,A
A110A:
EI
A110B:
JMP CMLPEN
;
A110E:
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
LDAX B
MOV C,A
CALL CHKSID
LXI H,D0001
DAD SP
MOV M,A
CPI 0FFH
JZ A1186
DI
LXI B,T0004
LHLD Y19C0
DAD B
PUSH H
LXI H,T0003
DAD SP
MOV C,M
MVI B,000H
LXI H,IXBTMS
DAD B
DAD B
POP D
CALL A1652
LXI B,T0004
PUSH H
LHLD Y19C0
DAD B
POP B
MOV M,C
INX H
MOV M,B
LXI B,T0003
LHLD Y19C0
DAD B
MOV A,M
DCR A
LHLD Y19C0
DAD B
MOV M,A
EI
LXI D,UQMLBX
MVI C,089H
CALL BDOS
LXI H,D0001
DAD SP
MOV L,M
MVI H,000H
LXI D,T0005
CALL A167C
LXI B,T0005
DAD B
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
MVI M,000H
LXI D,UQMLBX
MVI C,08BH
CALL BDOS
A1186:
JMP CMLPEN
;
A1189:
LXI D,UQMLBX
MVI C,089H
CALL BDOS
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
PUSH H
LHLD Y19C0
INX H
POP B
LDAX B
CMP M
JNZ A11AE
LXI H,019CAH
MVI M,0FFH
JMP A11CA
;
A11AE:
LXI D,T0005
LXI H,T0013
DAD SP
CALL A1647
MOV C,M
CALL CHKSID
STA Y19CA
CPI 0FFH
JNZ A11CA
LXI H,T0006
DAD SP
MVI M,0FFH
A11CA:
LXI H,T0006
DAD SP
MOV A,M
CPI 0FFH
JZ A12F4
LDA Y19CA
INR A
STA Y19CA
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
PUSH H
LHLD Y19C4
POP D
LDAX D
CMP M
JNZ A1202
LXI H,T0006
DAD SP
MVI M,0FFH
JMP A12F4
;
A1202:
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
MOV A,M
INR A
LXI D,T0005
LHLD Y19CA
MVI H,000H
PUSH PSW
CALL A167C
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
POP B
MOV C,B
MOV M,C
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,T0003
DAD B
XCHG
LHLD Y19C6
DAD D
LXI D,T0005
PUSH H
LHLD Y19CA
MVI H,000H
CALL A167C
XCHG
LHLD Y19C6
DAD D
PUSH H
LHLD Y19C4
INX H
MOV E,M
MVI D,000H
POP H
MOV L,M
MVI H,000H
CALL A167C
POP D
CALL A1648
SHLD Y19C8
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
LHLD Y19C8
INX H
LDAX B
MOV M,A
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
PUSH H
LHLD Y19C8
POP B
LDAX B
MOV M,A
LHLD Y19C4
INX H
MOV A,M
DCR A
DCR A
MOV H,B
MOV L,C
CMP M
JNC A12A3
LHLD Y19C4
INX H
MOV A,M
DCR A
DCR A
LHLD Y19C8
MOV M,A
A12A3:
LHLD Y19C8
MOV L,M
LXI D,T0006
PUSH H
LXI H,T0015
DAD SP
CALL A1647
PUSH H
LHLD Y19C8
INX H
INX H
XCHG
POP B
POP H
A12BB:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A12BB
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
XCHG
LHLD Y19C6
DAD D
MOV A,M
INR A
LHLD Y19C4
MOV L,M
MVI H,000H
MOV E,A
MVI D,000H
CALL A165D
LXI D,T0005
PUSH H
LHLD Y19CA
MVI H,000H
CALL A167C
XCHG
LHLD Y19C6
DAD D
POP B
MOV M,C
A12F4:
LXI D,UQMLBX
MVI C,08BH
CALL BDOS
JMP CMLPEN
;
A12FF:
LXI D,UQMLBX
MVI C,089H
CALL BDOS
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
LDAX B
MOV C,A
CALL CHKSID
INR A
STA Y19CA
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
MOV A,M
CPI 000H
JNZ A133C
LXI H,T0006
DAD SP
MVI M,0FFH
JMP A1409
;
A133C:
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
MOV A,M
DCR A
LXI D,T0005
LHLD Y19CA
MVI H,000H
PUSH PSW
CALL A167C
LXI B,T0002
DAD B
XCHG
LHLD Y19C6
DAD D
POP B
MOV C,B
MOV M,C
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,T0003
DAD B
XCHG
LHLD Y19C6
DAD D
LXI D,T0005
PUSH H
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,D0001
DAD B
XCHG
LHLD Y19C6
DAD D
PUSH H
LHLD Y19C4
INX H
MOV E,M
MVI D,000H
POP H
MOV L,M
MVI H,000H
CALL A167C
POP D
CALL A1648
SHLD Y19C8
LXI H,T0005
DAD SP
MVI M,000H
LHLD Y19C8
MOV A,M
INR A
INR A
MOV L,A
PUSH H
LHLD Y19C8
LXI D,T0004
PUSH H
LXI H,T0017
DAD SP
CALL A1647
XCHG
POP B
POP H
A13C8:
LDAX B
STAX D
INX B
INX D
DCR L
JNZ A13C8
LXI D,T0005
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,D0001
DAD B
XCHG
LHLD Y19C6
DAD D
MOV A,M
INR A
LHLD Y19C4
MOV L,M
MVI H,000H
MOV E,A
MVI D,000H
CALL A165D
LXI D,T0005
PUSH H
LHLD Y19CA
MVI H,000H
CALL A167C
LXI B,D0001
DAD B
XCHG
LHLD Y19C6
DAD D
POP B
MOV M,C
A1409:
LXI D,UQMLBX
MVI C,08BH
CALL BDOS
JMP CMLPEN
;
A1414:
JMP CMLPEN
;
A1417:
JMP CMLPEN
;
A141A:
JMP CMLPEN
;
A141D:
JMP CMLPEN
;
; >> NO EXECUTION PATH TO HERE <<
;
; MAIN INDEX OF FUNCTION ROUTINES
;
IXMAIN:
DW A042C
DW A042F
DW A044E
DW A0475
DW A069D
DW A06BC
DW A071B
DW A0834
DW A0890
DW A09DA
DW A09FA
DW A0AE7
DW A0BD4
DW A0CB4
DW A0D9F
DW A0E6F
DW A0F3F
DW A100F
DW A110E
DW A1189
DW A12FF
DW A1414
DW A1417
DW A141A
DW A141D
;
; END PROCESS
;
;
CMLPEN:
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
LDAX B
INR A
DCX H
MOV C,M
INX H
MOV B,M
MOV H,B
MOV L,C
MOV M,A
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
LDAX B
LXI H,D0001
DAD SP
MOV M,A
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
DCX H
PUSH B
MOV C,M
INX H
MOV B,M
INX B
MOV H,B
MOV L,C
POP D
LDAX D
MOV M,A
LXI H,T0013
DAD SP
MOV C,M
INX H
MOV B,M
INX B
INX B
LXI H,D0001
DAD SP
MOV A,M
MOV H,B
MOV L,C
MOV M,A
LXI H,T0005
DAD SP
MOV A,M
RAR
JNC CMLPES
LXI D,T0004
LXI H,T0013
DAD SP
CALL A1647
MVI M,000H
LXI B,T0005
DCX D
CALL A163B
PUSH H
LXI H,T0008
DAD SP
MOV A,M
POP H
MOV M,A
CMLPES:
LXI H,T02A3
DAD SP
XCHG
MVI C,08BH
CALL BDOS
JMP CMLOOP
;
CMLPRT:
LXI H,T02AF
DAD SP
SPHL
RET
;
; INITIALIZER ROUTINE
; START UP EACH CHANEL PROCESS
;
INSTAT:
LXI D,UQSPOL
MVI C,COPENQ
CALL BDOS ;OPEN SPOOL
CPI 0
JZ INSTSP ;GET QUEUE LINK
LXI D,1
MVI C,CDELAY
CALL BDOS ;WAIT FOR PRIORITY RESOLUTION
LXI D,UQSPOL
MVI C,COPENQ
CALL BDOS ;TRY AGAIN
CMA
STA Y19C2 ;SET SPOOLER MODE
CMA
RAR
JNC $+11 ;OK OPENED
LXI D,UQMXLT ;NO SPOOLER SO GET LIST QUEUE
MVI C,COPEN
CALL BDOS
JMP INSTSL
;
INSTSP:
LXI B,-1
LXI H,Y19C2
MOV M,C ;SET SPOOL MODE ON
INSTSL:
LXI D,0
MVI C,CSYSDT
CALL BDOS ;GET SYSTEM DATA AREA
LXI D,9
DAD D
SHLD Y1A4E ;SAVE CONFIGRATION TABLE POINTER
INSTWN: ;WAIT FOR NETWORKIF INITIALIZATION
LHLD Y1A4E
MVI A,0
CALL A16B4 ;CHECK EMPTY
ORA L
JNZ INSTWS ;GET DATA
LXI D,1
MVI C,CDELAY
CALL BDOS ;WAIT FOR INITIALIZATION
JMP INSTWN ;TRY AGAIN
;
INSTWS:
LXI D,UQMLBX
MVI C,COPENQ
CALL BDOS ;OPEN MAIL BOX QUEUE
SUI 0
SUI 1
SBB A
STA Y19C3 ;SAVE MAIL BOX MODE
RAR
JNC INSTML ;NO QUEUE
LXI D,UQMLBX
MVI C,CREADQ
CALL BDOS ;READ DATA
LXI D,UQMLBX
MVI C,CWRITQ
CALL BDOS ;WRITE DATA
LHLD Y19C4 ;MAIL BOX DATA
INX H
INX H
SHLD Y19C6 ;SAVE MAIL BOX BUFFER POINT
INSTML:
LHLD Y1A4E
MOV E,M
INX H
MOV D,M ;GET CONFIGRATION TABLE POINT
XCHG
SHLD Y19C0 ;SAVE CONFIGRATION TABLE POINT
LHLD Y1A4E
MOV C,M
INX H
MOV B,M
INX B
INX B
MOV H,B
MOV L,C
SHLD Y1A4E ;TO SLAVE SUPPORT COUNTER POINT
LHLD Y1A4E
MOV L,M
MOV A,L
STA Y1A53 ;SAVE MAX SUPPORT COUNT
LXI D,28 ;LENGTH OF CONFIGRATION TABLE-2
LHLD Y1A4E
DAD D
SHLD Y1A4E ;SAVE SLAVE 1 DATA BUFFER POINT
LXI H,Y1A52
MVI M,0 ;CLEAR COUNT
INSTPR: ;SLAVE SUPORT SYSTEM SET UP LOOP
LDA Y1A52
INR A ;COUNT UP
STA Y1A52
LXI H,Y1A53
CMP M
JZ INSTPE ;ALL OVER
MVI L,52 ;COPY DATA LENGTH
PUSH H
LHLD Y1A4E ;GET CURRENT BUFFER TOP
XCHG
LXI B,PDSLSP ;BASE PROCESS DESCRIPTOR
POP H
LDAX B
STAX D ;COPY DATA
INX B
INX D
DCR L
JNZ $-5
LHLD Y1A4E
MVI A,0
MOV M,A
INX H
MVI M,0 ;CLEAR LINK
LDA Y1A52
CPI 10
JNC INSTPS ;OVER A
LDA Y1A52 ;0 TO 9
ADI '0'
LXI B,11 ;BIAS TO NAME
LHLD Y1A4E
DAD B
MOV M,A ;SET NUMBER
JMP INSTPN
;
INSTPS: ;OVER A
LDA Y1A52
ADI 'A'
SUI 10
LXI B,11
LHLD Y1A4E
DAD B
MOV M,A ;SET NUMBER
INSTPN:
LXI D,52 ;PROCESS DESCRIPTOR LENGTH
LHLD Y1A4E
DAD D
LXI D,768 ;STACK LENGTH
DAD D
DCX H
DCX H
SHLD Y1A50 ;SAVE ENTRY STACK
LXI B,4
PUSH H
LHLD Y1A4E
DAD B
POP B
MOV M,C
INX H
MOV M,B ;SET ENTRY STACK
LHLD Y1A50
LXI B,CSTART ;COMMON ROUTINE ENTRY POINT
MOV M,C
INX H
MOV M,B ;SET ENTRY POINT
LXI B,46
LHLD Y1A4E
DAD B ;GET C REG DATA POINT
LDA Y1A52
MOV M,A ;SET CHANEL NUMBER
LHLD Y1A4E
XCHG
MVI C,CCREAT
CALL BDOS ;CREATE PROCESS
LXI D,52 ;PROCESS DESCRIPTOR LENGTH
LHLD Y1A4E
DAD D
LXI D,768 ;STACK LENGTH
DAD D
SHLD Y1A4E ;SET NEXT DATA POINT
JMP INSTPR ;TO NEXT CHANEL
;
INSTPE:
LXI H,Y19C0 ;STACK TO COMMON ROUTINE ENTRY STACK
SPHL
MVI C,0 ;CHANEL ZERO PROCESS
CALL CSTART ;TO COMMON ROUTINE
RET
;
; TO BDOS
;
;
BDOS:
LHLD BDOSAD
PCHL
;
A162D:
LHLD D0001
INX H
INX H
MOV H,M
MOV L,D
MOV D,E
PCHL
;
; >> NO EXECUTION PATH TO HERE <<
MOV L,C
MOV H,B
A1638:
MOV C,M
INX H
MOV B,M
A163B:
LDAX D
ADD C
MOV L,A
INX D
LDAX D
ADC B
MOV H,A
RET
;
; >> NO EXECUTION PATH TO HERE <<
XCHG
MOV E,A
MVI D,000H
A1647:
XCHG
A1648:
LDAX D
ADD L
MOV L,A
INX D
LDAX D
ADC H
MOV H,A
RET
;
; >> NO EXECUTION PATH TO HERE <<
MOV L,C
MOV H,B
A1652:
MOV C,M
INX H
MOV B,M
LDAX D
ANA C
MOV L,A
INX D
LDAX D
ANA B
MOV H,A
RET
;
A165D:
MOV B,H
MOV C,L
LXI H,A0000
MVI A,010H
A1664:
PUSH PSW
DAD H
XCHG
SUB A
DAD H
XCHG
ADC L
SUB C
MOV L,A
MOV A,H
SBB B
MOV H,A
INX D
JNC A1676
DAD B
DCX D
A1676:
POP PSW
DCR A
JNZ A1664
RET
;
A167C:
MOV B,H
MOV C,L
LXI H,A0000
MVI A,010H
A1683:
DAD H
XCHG
DAD H
XCHG
JNC A168B
DAD B
A168B:
DCR A
JNZ A1683
RET
;
; >> NO EXECUTION PATH TO HERE <<
MOV L,C
MOV H,B
A1692:
MOV C,M
INX H
MOV B,M
LDAX D
ORA C
MOV L,A
INX D
LDAX D
ORA B
MOV H,A
RET
;
A169D:
MOV E,A
MVI D,000H
MOV A,E
SUB L
MOV L,A
MOV A,D
SBB H
MOV H,A
RET
;
; >> NO EXECUTION PATH TO HERE <<
MOV L,C
MOV H,B
A16A9:
MOV C,M
INX H
MOV B,M
LDAX D
SUB C
MOV L,A
INX D
LDAX D
SBB B
MOV H,A
RET
;
A16B4:
MOV E,A
MVI D,000H
MOV A,E
SUB M
MOV E,A
MOV A,D
INX H
SBB M
MOV D,A
XCHG
RET
;
; MAIN PROCESS (SLV0SP) STACK
;
MAINST:
DW 0C7C7H,0C7C7H,0C7C7H,0C7C7H
DW 0C7C7H,0C7C7H,0C7C7H,0C7C7H
DW 0C7C7H,0C7C7H,0C7C7H,0C7C7H
DW 0C7C7H,0C7C7H,0C7C7H,0C7C7H
DW 0C7C7H,0C7C7H,0C7C7H
A16E6:
DW INSTAT
;
DS 728 ;STACK & WORK FOR SLV0SP
;
; WORKING
;
Y19C0: DS 2 ;CONFIGRATION TABLE POINTER
Y19C2: DS 1 ;SPOOL MODE 0 NO
Y19C3: DS 1 ;MAIL MODE -1 ON
Y19C4: DS 2
Y19C6: DS 2 ;MAIL BOX BUFFER POINTER
;
Y19C8: DS 2
Y19CA: DS 1
Y19CB: DS 2
Y19CD: DS 1
;
DS 128
;
;
Y1A4E: DS 2 ;INITIALIZE WORK DATA BUFFER
Y1A50: DS 2 ;WORK FOR STACK POINTER
Y1A52: DS 1 ;SLAVE PROCESS SET UP COUNTER
Y1A53: DS 1 ;MAXIMUM SUPORT COUNT
;
;
;
END
END