mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-26 09:54:20 +00:00
Upload
Digital Research
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
COMMON.DIR This directory contains modules common to many utilities.
|
||||
CCPMPC V1.0
|
||||
Note that some use scd86a.a86 (containing 'jmp plm'),
|
||||
while others use scd.a86 ('jmp plmstart'). This should be cleaned up
|
||||
and made consistent for all utils.
|
||||
10/21/82
|
||||
I've chosen to use "scd.a86" (and "plmstart") for all utils, where possible.
|
||||
So far it's the only ".a86" module I'm using.
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
|
||||
declare
|
||||
lit literally 'literally',
|
||||
dcl lit 'declare',
|
||||
true lit '0ffh',
|
||||
false lit '0',
|
||||
no lit 'not',
|
||||
boolean lit 'byte',
|
||||
forever lit 'while true',
|
||||
cr lit '13',
|
||||
lf lit '10',
|
||||
tab lit '9',
|
||||
ctrlc lit '3',
|
||||
ff lit '12',
|
||||
page$len$offset lit '1ch',
|
||||
nopage$mode$offset lit '2Ch',
|
||||
sectorlen lit '128';
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
/*
|
||||
Copyright (C) 1983
|
||||
Digital Research
|
||||
P.O. Box 579
|
||||
Pacific Grove, CA 93950
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
declare
|
||||
f$drvusr lit '0', /* drive/user byte */
|
||||
f$name lit '1', /* file name */
|
||||
f$namelen lit '8', /* file name length */
|
||||
f$type lit '9', /* file type field */
|
||||
f$typelen lit '3', /* type length */
|
||||
f$rw lit '9', /* high bit is R/W attribute */
|
||||
f$dirsys lit '10', /* high bit is dir/sys attribute */
|
||||
f$arc lit '11', /* high bit is archive attribute */
|
||||
f$ex lit '12', /* extent */
|
||||
f$s1 lit '13', /* module byte */
|
||||
f$rc lit '15', /* record count */
|
||||
f$diskmap lit '16', /* file disk map */
|
||||
diskmaplen lit '16', /* disk map length */
|
||||
f$drvusr2 lit '16', /* fcb2 */
|
||||
f$name2 lit '17',
|
||||
f$type2 lit '25',
|
||||
f$cr lit '32', /* current record */
|
||||
f$rrec lit '33', /* random record */
|
||||
f$rreco lit '35'; /* " " overflow */
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
/* Flag Format */
|
||||
|
||||
dcl flag$structure lit 'structure(
|
||||
pd word,
|
||||
ignore byte)';
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
declare md$structure literally
|
||||
'structure(
|
||||
link word,
|
||||
start word,
|
||||
length word,
|
||||
plist word,
|
||||
unused word)';
|
||||
|
||||
declare ms$structure literally
|
||||
'structure(
|
||||
link word,
|
||||
start word,
|
||||
length word,
|
||||
flags word,
|
||||
mau word)';
|
||||
|
||||
declare sat$structure literally
|
||||
'structure(
|
||||
start word,
|
||||
len word,
|
||||
num$allocs byte)';
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
/* Concurrent CP/M function numbers */
|
||||
|
||||
dcl m$prtbuf lit '9',
|
||||
m$select lit '14',
|
||||
m$openf lit '15',
|
||||
m$closef lit '16',
|
||||
m$deletef lit '19',
|
||||
m$readf lit '20',
|
||||
m$writef lit '21',
|
||||
m$makef lit '22',
|
||||
m$getlogin lit '24',
|
||||
m$curdsk lit '25',
|
||||
m$setdma lit '26',
|
||||
m$setatt lit '30',
|
||||
m$setusr lit '32',
|
||||
m$readrf lit '33',
|
||||
m$writerf lit '34',
|
||||
m$resetdrv lit '37',
|
||||
m$errmode lit '45',
|
||||
m$dirbios lit '50',
|
||||
m$makeq lit '134',
|
||||
m$openq lit '135',
|
||||
m$deleteq lit '136',
|
||||
m$readq lit '137',
|
||||
m$creadq lit '138',
|
||||
m$writeq lit '139',
|
||||
m$cwriteq lit '140',
|
||||
m$delay lit '141',
|
||||
m$dispatch lit '142',
|
||||
m$setprior lit '145',
|
||||
m$attach lit '146',
|
||||
m$detach lit '147',
|
||||
m$setcns lit '148',
|
||||
m$parse lit '152',
|
||||
m$getcns lit '153',
|
||||
m$sysdat lit '154',
|
||||
m$getpd lit '156',
|
||||
m$abort lit '157';
|
||||
|
||||
/* Internal calls */
|
||||
|
||||
dcl mi$sleep lit '0212H',
|
||||
mi$wakeup lit '0213H';
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
|
||||
/* MP/M-86 XIOS function numbers */
|
||||
|
||||
dcl mx$conin lit '1',
|
||||
mx$conout lit '2',
|
||||
mx$lstout lit '4',
|
||||
mx$switch lit '7',
|
||||
mx$upstatus lit '8';
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
declare
|
||||
lit literally 'literally',
|
||||
dcl lit 'declare',
|
||||
true lit '0ffh',
|
||||
false lit '0',
|
||||
no lit 'not',
|
||||
boolean lit 'byte',
|
||||
forever lit 'while true',
|
||||
tab lit '9';
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
/*
|
||||
Proces Literals MP/M-8086 II
|
||||
*/
|
||||
|
||||
declare pnamsiz literally '8';
|
||||
|
||||
declare pd$hdr literally 'structure
|
||||
(link word,thread word,stat byte,prior byte,flag word,
|
||||
name (8) byte,uda word,dsk byte,user byte,ldsk byte,luser byte,
|
||||
mem word';
|
||||
|
||||
declare pd$structure literally 'pd$hdr,
|
||||
dvract word,wait word,org byte,net byte,parent word,
|
||||
cns byte,abort byte,conmode word,lst byte,sf3 byte,sf4 byte,sf5 byte,
|
||||
reservd (4) byte,pret word,scratch word)';
|
||||
|
||||
declare psrun lit '00',
|
||||
pspoll lit '01',
|
||||
psdelay lit '02',
|
||||
psswap lit '03',
|
||||
psterm lit '04',
|
||||
pssleep lit '05',
|
||||
psdq lit '06',
|
||||
psnq lit '07',
|
||||
psflagwait lit '08',
|
||||
psciowait lit '09';
|
||||
|
||||
declare pf$sys lit '00001h',
|
||||
pf$keep lit '00002h',
|
||||
pf$kernal lit '00004h',
|
||||
pf$pure lit '00008h',
|
||||
pf$table lit '00010h',
|
||||
pf$resource lit '00020h',
|
||||
pf$raw lit '00040h',
|
||||
pf$ctlc lit '00080h',
|
||||
pf$active lit '00100h',
|
||||
pf$tempkeep lit '00200h',
|
||||
pf$ctld lit '00400h',
|
||||
pf$childabort lit '00800h',
|
||||
pf$noctls lit '01000h';
|
||||
|
||||
declare pcm$11 lit '00001h',
|
||||
pcm$ctls lit '00002h',
|
||||
pcm$rout lit '00004h',
|
||||
pcm$ctlc lit '00008h',
|
||||
pcm$ctlo lit '00080h',
|
||||
pcm$rsx lit '00300h';
|
||||
@@ -0,0 +1,39 @@
|
||||
|
||||
/* Queue Descriptor */
|
||||
|
||||
dcl qnamsiz lit '8';
|
||||
|
||||
dcl qd$structure lit 'structure(
|
||||
link word,
|
||||
net byte,
|
||||
org byte,
|
||||
flags word,
|
||||
name(qnamsiz) byte,
|
||||
msglen word,
|
||||
nmsgs word,
|
||||
dq word,
|
||||
nq word,
|
||||
msgcnt word,
|
||||
msgout word,
|
||||
buffer word)';
|
||||
|
||||
/* queue flag values */
|
||||
|
||||
dcl qf$mx lit '001h'; /* Mutual Exclusion */
|
||||
dcl qf$keep lit '002h'; /* NO DELETE */
|
||||
dcl qf$hide lit '004h'; /* Not User writable */
|
||||
dcl qf$rsp lit '008h'; /* rsp queue */
|
||||
dcl qf$table lit '010h'; /* from qd table */
|
||||
dcl qf$rpl lit '020h'; /* rpl queue */
|
||||
dcl qf$dev lit '040h'; /* device queue */
|
||||
|
||||
/* Queue Parameter Block */
|
||||
|
||||
dcl qpb$structure lit 'structure(
|
||||
flgs byte,
|
||||
net byte,
|
||||
qaddr word,
|
||||
nmsgs word,
|
||||
buffptr word,
|
||||
name (qnamsiz) byte )';
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
;
|
||||
; Concurrent CP/M-86 v2.0 with BDOS version 3.1
|
||||
; Interface for PLM-86 with separate code and data
|
||||
; Code org'd at 0
|
||||
; Created:
|
||||
; October 5, 1981 by Danny Horovitz
|
||||
; Revised:
|
||||
; 28 Mar 83 by Bill Fitler
|
||||
|
||||
name scd
|
||||
|
||||
dgroup group dats,stack
|
||||
cgroup group code
|
||||
|
||||
assume cs:cgroup, ds:dgroup, ss:dgroup
|
||||
|
||||
stack segment word stack 'STACK'
|
||||
stack_base label byte
|
||||
stack ends
|
||||
|
||||
dats segment para public 'DATA' ;CP/M page 0 - LOC86'd at 0H
|
||||
|
||||
org 4
|
||||
bdisk db ?
|
||||
org 6
|
||||
maxb dw ?
|
||||
org 50h
|
||||
cmdrv db ?
|
||||
pass0 dw ?
|
||||
len0 db ?
|
||||
pass1 dw ?
|
||||
len1 db ?
|
||||
org 5ch
|
||||
fcb db 16 dup (?)
|
||||
fcb16 db 16 dup (?)
|
||||
cr db ?
|
||||
rr dw ?
|
||||
ro db ?
|
||||
buff db 128 dup (?)
|
||||
tbuff equ buff
|
||||
buffa equ buff
|
||||
fcba equ fcb
|
||||
|
||||
org 100h ;past CPM data space
|
||||
saveax dw 0 ;save registers for mon functions
|
||||
savebx dw 0
|
||||
savecx dw 0
|
||||
savedx dw 0
|
||||
public bdisk,maxb,cmdrv,pass0,len0
|
||||
public pass1,len1,fcb,fcb16,cr,rr
|
||||
public ro,buff,tbuff,buffa,fcba
|
||||
public saveax,savebx,savecx,savedx
|
||||
|
||||
dats ends
|
||||
|
||||
|
||||
code segment public 'CODE'
|
||||
public xdos,mon1,mon2,mon3,mon4
|
||||
extrn plmstart:near
|
||||
|
||||
org 0h ; for separate code and data
|
||||
jmp pastserial ; skip copyright
|
||||
jmp patch ; store address of patch routine at start
|
||||
db 'COPYRIGHT (C) 1983, DIGITAL RESEARCH '
|
||||
db ' CONCURRENT CP/M-86 2.0, 03/31/83 ' ; db ' MP/M-86 2.0, 10/5/81 '
|
||||
pastserial:
|
||||
pushf
|
||||
pop ax
|
||||
cli
|
||||
mov cx,ds
|
||||
mov ss,cx
|
||||
lea sp,stack_base
|
||||
push ax
|
||||
popf
|
||||
jmp plmstart
|
||||
|
||||
xdos proc
|
||||
push bp
|
||||
mov bp,sp
|
||||
mov dx,[bp+4]
|
||||
mov cx,[bp+6]
|
||||
int 224
|
||||
mov saveax,ax
|
||||
mov savebx,bx
|
||||
mov savecx,cx
|
||||
mov savedx,dx
|
||||
pop bp
|
||||
ret 4
|
||||
xdos endp
|
||||
|
||||
mon1 equ xdos ; no returned value
|
||||
mon2 equ xdos ; returns byte in AL
|
||||
mon3 equ xdos ; returns address or word BX
|
||||
mon4 equ xdos ; returns pointer in BX and ES
|
||||
|
||||
patch:
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
org 0100h ; leave room for patch area
|
||||
|
||||
code ends
|
||||
end
|
||||
@@ -0,0 +1,186 @@
|
||||
MCS-86 MACRO ASSEMBLER SCD PAGE 1
|
||||
|
||||
|
||||
ISIS-II MCS-86 MACRO ASSEMBLER V2.1 ASSEMBLY OF MODULE SCD
|
||||
OBJECT MODULE PLACED IN :F0:SCD.OBJ
|
||||
ASSEMBLER INVOKED BY: :F0: SCD.A86 XREF
|
||||
|
||||
|
||||
LOC OBJ LINE SOURCE
|
||||
|
||||
1 ;
|
||||
2 ; Concurrent CP/M-86 v2.0 with BDOS version 3.1
|
||||
3 ; Interface for PLM-86 with separate code and data
|
||||
4 ; Code org'd at 0
|
||||
5 ; Created:
|
||||
6 ; October 5, 1981 by Danny Horovitz
|
||||
7 ; Revised:
|
||||
8 ; 28 Mar 83 by Bill Fitler
|
||||
9
|
||||
10 name scd
|
||||
11
|
||||
12 dgroup group dats,stack
|
||||
13 cgroup group code
|
||||
14
|
||||
15 assume cs:cgroup, ds:dgroup, ss:dgroup
|
||||
16
|
||||
---- 17 stack segment word stack 'STACK'
|
||||
0000 18 stack_base label byte
|
||||
---- 19 stack ends
|
||||
20
|
||||
---- 21 dats segment para public 'DATA' ;CP/M page 0 - LOC86'd at 0H
|
||||
22
|
||||
0004 23 org 4
|
||||
0004 ?? 24 bdisk db ?
|
||||
0006 25 org 6
|
||||
0006 ???? 26 maxb dw ?
|
||||
0050 27 org 50h
|
||||
0050 ?? 28 cmdrv db ?
|
||||
0051 ???? 29 pass0 dw ?
|
||||
0053 ?? 30 len0 db ?
|
||||
0054 ???? 31 pass1 dw ?
|
||||
0056 ?? 32 len1 db ?
|
||||
005C 33 org 5ch
|
||||
005C (16 34 fcb db 16 dup (?)
|
||||
??
|
||||
)
|
||||
006C (16 35 fcb16 db 16 dup (?)
|
||||
??
|
||||
)
|
||||
007C ?? 36 cr db ?
|
||||
007D ???? 37 rr dw ?
|
||||
007F ?? 38 ro db ?
|
||||
0080 (128 39 buff db 128 dup (?)
|
||||
??
|
||||
)
|
||||
0080 40 tbuff equ buff
|
||||
0080 41 buffa equ buff
|
||||
005C 42 fcba equ fcb
|
||||
43
|
||||
0100 44 org 100h ;past CPM data space
|
||||
MCS-86 MACRO ASSEMBLER SCD PAGE 2
|
||||
|
||||
|
||||
LOC OBJ LINE SOURCE
|
||||
|
||||
0100 0000 45 saveax dw 0 ;save registers for mon functions
|
||||
0102 0000 46 savebx dw 0
|
||||
0104 0000 47 savecx dw 0
|
||||
0106 0000 48 savedx dw 0
|
||||
49 public bdisk,maxb,cmdrv,pass0,len0
|
||||
50 public pass1,len1,fcb,fcb16,cr,rr
|
||||
51 public ro,buff,tbuff,buffa,fcba
|
||||
52 public saveax,savebx,savecx,savedx
|
||||
53
|
||||
---- 54 dats ends
|
||||
55
|
||||
56
|
||||
---- 57 code segment public 'CODE'
|
||||
58 public xdos,mon1,mon2,mon3,mon4
|
||||
59 extrn plmstart:near
|
||||
60
|
||||
0000 61 org 0h ; for separate code and data
|
||||
0000 EB4B90 62 jmp pastserial ; skip copyright
|
||||
0003 EB7690 63 jmp patch ; store address of patch routine at start
|
||||
0006 434F5059524947 64 db 'COPYRIGHT (C) 1983, DIGITAL RESEARCH '
|
||||
48542028432920
|
||||
313938332C2044
|
||||
49474954414C20
|
||||
52455345415243
|
||||
4820
|
||||
002B 20434F4E435552 65 db ' CONCURRENT CP/M-86 2.0, 03/31/83 ' ; db ' MP/M-86 2.0, 10/5/81 '
|
||||
52454E54204350
|
||||
2F4D2D38362032
|
||||
2E302C2030332F
|
||||
33312F383320
|
||||
004D 66 pastserial:
|
||||
004D 9C 67 pushf
|
||||
004E 58 68 pop ax
|
||||
004F FA 69 cli
|
||||
0050 8CD9 70 mov cx,ds
|
||||
0052 8ED1 71 mov ss,cx
|
||||
0054 8D260000 R 72 lea sp,stack_base
|
||||
0058 50 73 push ax
|
||||
0059 9D 74 popf
|
||||
005A E90000 E 75 jmp plmstart
|
||||
76
|
||||
005D 77 xdos proc
|
||||
005D 55 78 push bp
|
||||
005E 8BEC 79 mov bp,sp
|
||||
0060 8B5604 80 mov dx,[bp+4]
|
||||
0063 8B4E06 81 mov cx,[bp+6]
|
||||
0066 CDE0 82 int 224
|
||||
0068 A30001 R 83 mov saveax,ax
|
||||
006B 891E0201 R 84 mov savebx,bx
|
||||
006F 890E0401 R 85 mov savecx,cx
|
||||
0073 89160601 R 86 mov savedx,dx
|
||||
0077 5D 87 pop bp
|
||||
0078 C20400 88 ret 4
|
||||
89 xdos endp
|
||||
90
|
||||
MCS-86 MACRO ASSEMBLER SCD PAGE 3
|
||||
|
||||
|
||||
LOC OBJ LINE SOURCE
|
||||
|
||||
005D 91 mon1 equ xdos ; no returned value
|
||||
005D 92 mon2 equ xdos ; returns byte in AL
|
||||
005D 93 mon3 equ xdos ; returns address or word BX
|
||||
005D 94 mon4 equ xdos ; returns pointer in BX and ES
|
||||
95
|
||||
007B 96 patch:
|
||||
007B 90 97 nop
|
||||
007C 90 98 nop
|
||||
007D 90 99 nop
|
||||
007E 90 100 nop
|
||||
0100 101 org 0100h ; leave room for patch area
|
||||
102
|
||||
---- 103 code ends
|
||||
104 end
|
||||
MCS-86 MACRO ASSEMBLER SCD PAGE 4
|
||||
|
||||
|
||||
XREF SYMBOL TABLE LISTING
|
||||
---- ------ ----- -------
|
||||
|
||||
|
||||
NAME TYPE VALUE ATTRIBUTES, XREFS
|
||||
|
||||
??SEG . . . SEGMENT SIZE=0000H PARA PUBLIC
|
||||
BDISK . . . V BYTE 0004H DATS PUBLIC 24# 49
|
||||
BUFF. . . . V BYTE 0080H DATS PUBLIC 39# 40 41 51
|
||||
BUFFA . . . V BYTE 0080H DATS PUBLIC 41# 51
|
||||
CGROUP. . . GROUP CODE 13# 15
|
||||
CMDRV . . . V BYTE 0050H DATS PUBLIC 28# 49
|
||||
CODE. . . . SEGMENT SIZE=0100H PARA PUBLIC 'CODE' 13# 57 103
|
||||
CR. . . . . V BYTE 007CH DATS PUBLIC 36# 50
|
||||
DATS. . . . SEGMENT SIZE=0108H PARA PUBLIC 'DATA' 12# 21 54
|
||||
DGROUP. . . GROUP DATS STACK 12# 15 15
|
||||
FCB . . . . V BYTE 005CH DATS PUBLIC 34# 42 50
|
||||
FCB16 . . . V BYTE 006CH DATS PUBLIC 35# 50
|
||||
FCBA. . . . V BYTE 005CH DATS PUBLIC 42# 51
|
||||
LEN0. . . . V BYTE 0053H DATS PUBLIC 30# 49
|
||||
LEN1. . . . V BYTE 0056H DATS PUBLIC 32# 50
|
||||
MAXB. . . . V WORD 0006H DATS PUBLIC 26# 49
|
||||
MON1. . . . L NEAR 005DH CODE PUBLIC 58 91#
|
||||
MON2. . . . L NEAR 005DH CODE PUBLIC 58 92#
|
||||
MON3. . . . L NEAR 005DH CODE PUBLIC 58 93#
|
||||
MON4. . . . L NEAR 005DH CODE PUBLIC 58 94#
|
||||
PASS0 . . . V WORD 0051H DATS PUBLIC 29# 49
|
||||
PASS1 . . . V WORD 0054H DATS PUBLIC 31# 50
|
||||
PASTSERIAL. L NEAR 004DH CODE 62 66#
|
||||
PATCH . . . L NEAR 007BH CODE 63 96#
|
||||
PLMSTART. . L NEAR 0000H EXTRN 59# 75
|
||||
RO. . . . . V BYTE 007FH DATS PUBLIC 38# 51
|
||||
RR. . . . . V WORD 007DH DATS PUBLIC 37# 50
|
||||
SAVEAX. . . V WORD 0100H DATS PUBLIC 45# 52 83
|
||||
SAVEBX. . . V WORD 0102H DATS PUBLIC 46# 52 84
|
||||
SAVECX. . . V WORD 0104H DATS PUBLIC 47# 52 85
|
||||
SAVEDX. . . V WORD 0106H DATS PUBLIC 48# 52 86
|
||||
STACK . . . SEGMENT SIZE=0000H WORD STACK 'STACK'
|
||||
STACK_BASE. V BYTE 0000H STACK 18# 72
|
||||
TBUFF . . . V BYTE 0080H DATS PUBLIC 40# 51
|
||||
XDOS. . . . L NEAR 005DH CODE PUBLIC 58 77# 89 91 92 93 94
|
||||
|
||||
|
||||
ASSEMBLY COMPLETE, NO ERRORS FOUND
|
||||
@@ -0,0 +1,64 @@
|
||||
|
||||
/* System Data Page */
|
||||
|
||||
dcl sysdat$pointer pointer;
|
||||
dcl sysdat$ptr structure(
|
||||
offset word,
|
||||
segment word) at (@sysdat$pointer);
|
||||
declare sd based sysdat$pointer structure (
|
||||
supmod (4) word,
|
||||
/* rtmmod (4) word,
|
||||
memmod (4) word,
|
||||
ciomod (4) word,
|
||||
bdosmod (4) word,
|
||||
xiosmod (4) word,
|
||||
netmod (4) word,
|
||||
reservd (4) word */
|
||||
space(28) word,
|
||||
mpmseg word,
|
||||
rspseg word,
|
||||
endseg word,
|
||||
module$map byte,
|
||||
ncns byte,
|
||||
nlst byte,
|
||||
nccb byte,
|
||||
nflags byte,
|
||||
srchdisk byte,
|
||||
mmp word,
|
||||
nslaves byte,
|
||||
dayfile byte,
|
||||
tempdisk byte,
|
||||
tickspersec byte,
|
||||
lul word,
|
||||
ccb word,
|
||||
flags word,
|
||||
mdul word,
|
||||
mfl word,
|
||||
pul word,
|
||||
qul word,
|
||||
qmau (4) word,
|
||||
rlr word,
|
||||
dlr word,
|
||||
drl word,
|
||||
plr word,
|
||||
slr word,
|
||||
thrdrt word,
|
||||
qlr word,
|
||||
mal word,
|
||||
version word,
|
||||
vernum word,
|
||||
mpmvernum word,
|
||||
tod (2) word,
|
||||
tod_sec byte,
|
||||
ncondev byte,
|
||||
nlstdev byte,
|
||||
nciodev byte,
|
||||
lcb (2) word,
|
||||
lckmax byte,
|
||||
opmax byte,
|
||||
sysltot (2) word,
|
||||
cmod byte );
|
||||
|
||||
|
||||
declare sd$byte based sysdat$pointer (1) byte;
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
/* MP/M-86 II User Data Area format - August 8, 1981 */
|
||||
|
||||
declare uda$structure lit 'structure (
|
||||
dparam word,
|
||||
dma$ofst word,
|
||||
dma$seg word,
|
||||
func byte,
|
||||
searchl byte,
|
||||
searcha word,
|
||||
searchabase word,
|
||||
dcnt word,
|
||||
dblk word,
|
||||
error$mode byte,
|
||||
mult$cnt byte,
|
||||
df$password (8) byte,
|
||||
pd$cnt byte)';
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
|
||||
/**** VAX commands for generation - read the name of this program
|
||||
for PROGNAME below.
|
||||
|
||||
$ util := PROGNAME
|
||||
$ ccpmsetup ! set up environment
|
||||
$ assign 'f$directory()' f1: ! use local dir for temp files
|
||||
$ plm86 'util'.plm xref 'p1' optimize(3) debug
|
||||
$ link86 f2:scd.obj, 'util'.obj to 'util'.lnk
|
||||
$ loc86 'util'.lnk od(sm(code,dats,data,stack,const)) -
|
||||
ad(sm(code(0),dats(10000h))) ss(stack(+32)) to 'util'.
|
||||
$ h86 'util'
|
||||
|
||||
***** Then, on a micro:
|
||||
A>vax progname.h86 $fans
|
||||
A>gencmd progname data[b1000]
|
||||
|
||||
***** Notes: Stack is increased for interrupts. Const(ants) are last
|
||||
to force hex generation.
|
||||
****/
|
||||
@@ -0,0 +1,81 @@
|
||||
/* Concurrent CP/M Character Control Block Structure */
|
||||
|
||||
/* +---------+---------+---------+---------+
|
||||
00 | attach | queue |
|
||||
+---------+---------+---------+---------+
|
||||
04 | flag | startcol| column | nchar |
|
||||
+---------+---------+---------+---------+
|
||||
08 | mimic | msource | pc | vc |
|
||||
+---------+---------+---------+---------+
|
||||
0C | btmp | resrvd | state |
|
||||
+---------+---------+---------+---------+
|
||||
10 | maxbufsiz | vinq |
|
||||
+---------+---------+---------+---------+
|
||||
14 | voutq | vcmxq |
|
||||
+---------+---------+---------+---------+
|
||||
18 | qpbflgs | qpbfill | qpbqaddr |
|
||||
+---------+---------+---------+---------+
|
||||
1C | qpbnmsgs | qpbbuffptr |
|
||||
+---------+---------+---------+---------+
|
||||
20 | qbuff | cosleep |
|
||||
+---------+---------+---------+---------+
|
||||
24 | usleep | vsleep |
|
||||
+---------+---------+---------+---------+
|
||||
28 | ... reserved ... |
|
||||
+---------+---------+---------+---------+
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
dcl ccb$structure lit 'structure (attach address, queue address,
|
||||
flag byte, startcol byte, column byte, nchar byte, mimic byte, msource byte,
|
||||
ccb$tail1';
|
||||
dcl ccb$tail1 lit
|
||||
'pc byte, vc byte, btmp byte, reservd byte, state word, maxbufsiz word,
|
||||
ccb$tail2';
|
||||
dcl ccb$tail2 lit
|
||||
'vinq address, voutq address, vcmxq address,
|
||||
qpbflags byte, qpbresrvd byte, qpbqaddr address,
|
||||
qpbnmsgs address, qpbbuffptr address, qbuff address, cosleep word,
|
||||
usleep word, vsleep word, r1 word, r2 word)';
|
||||
|
||||
declare /* flag values */
|
||||
cf$listcp lit '001h', /* control P toggle */
|
||||
cf$compc lit '002h', /* suppress output */
|
||||
cf$switchs lit '004h', /* XIOS supports switch screening */
|
||||
cf$conout lit '008h', /* XIOS console output ownership */
|
||||
cf$vout lit '010h', /* process writing to VOUTQ */
|
||||
cf$bufp lit '020h'; /* toggle to control printer echo */
|
||||
/* on control P when background */
|
||||
/* and buffered */
|
||||
/* values of state byte */
|
||||
/* conout goes to XIOS */
|
||||
|
||||
/* state word flags */
|
||||
|
||||
dcl
|
||||
csm$buffered lit '0001h',
|
||||
csm$background lit '0002h',
|
||||
csm$purging lit '0004h',
|
||||
csm$noswitch lit '0008h',
|
||||
csm$suspend lit '0010h',
|
||||
csm$abort lit '0020h',
|
||||
csm$filefull lit '0040h',
|
||||
csm$ctrlS lit '0080h',
|
||||
csm$ctrlO lit '0100h',
|
||||
csm$ctrlP lit '0200h';
|
||||
|
||||
dcl x$init$offset lit '0Ch',
|
||||
x$init$pointer pointer,
|
||||
x$init$ptr structure (offset word, segment word) at (@x$init$pointer),
|
||||
x$init based x$init$pointer structure
|
||||
(tick byte, ticks$sec byte, door byte, resrvd1 (2) byte,
|
||||
nvcns byte, nccb byte, nlst byte, ccb word, lcb word);
|
||||
|
||||
|
||||
dcl lcb$structure lit 'structure (attach address, queue address,
|
||||
flag byte, startcol byte, column byte, nchar byte,
|
||||
mimic byte, msource byte)';
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/* Concurrent CP/M Character Control Block Structure */
|
||||
|
||||
/* +---------+---------+---------+---------+
|
||||
00 | attach | queue |
|
||||
+---------+---------+---------+---------+
|
||||
04 | flag | startcol| column | nchar |
|
||||
+---------+---------+---------+---------+
|
||||
08 | mimic | msource | pc | vc |
|
||||
+---------+---------+---------+---------+
|
||||
0C | btmp | rsvd | state |
|
||||
+---------+---------+---------+---------+
|
||||
10 | maxbufsiz | vinq |
|
||||
+---------+---------+---------+---------+
|
||||
14 | voutq | vcmxq |
|
||||
+---------+---------+---------+---------+
|
||||
18 | qpbflgs | qpbfill | qpbqaddr |
|
||||
+---------+---------+---------+---------+
|
||||
1C | qpbnmsgs | qpbbuffptr |
|
||||
+---------+---------+---------+---------+
|
||||
20 | qbuff | cosleep |
|
||||
+---------+---------+---------+---------+
|
||||
24 | usleep | vsleep |
|
||||
+---------+---------+---------+---------+
|
||||
28 | ... reserved ... |
|
||||
+---------+---------+---------+---------+
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
dcl ccb$structure lit 'structure (attach address, queue address,
|
||||
flag byte, startcol byte, column byte, nchar byte, mimic byte, msource byte,
|
||||
ccb$tail1';
|
||||
dcl ccb$tail1 lit
|
||||
'pc byte, vc byte, btmp byte, rsvd byte, state word, maxbufsiz word,
|
||||
ccb$tail2';
|
||||
dcl ccb$tail2 lit
|
||||
'vinq address, voutq address, vcmxq address,
|
||||
qpbflags byte, qpbresrvd byte, qpbqaddr address,
|
||||
qpbnmsgs address, qpbbuffptr address, qbuff address, cosleep word,
|
||||
usleep word, vsleep word, r1 word, r2 word)';
|
||||
|
||||
declare /* flag values */
|
||||
cf$listcp lit '001h', /* control P toggle */
|
||||
cf$compc lit '002h', /* suppress output */
|
||||
cf$switchs lit '004h', /* XIOS supports switch screening */
|
||||
cf$conout lit '008h', /* XIOS console output ownership */
|
||||
cf$vout lit '010h'; /* process writing to VOUTQ */
|
||||
|
||||
/* values of state byte */
|
||||
/* conout goes to XIOS */
|
||||
|
||||
/* state word flags */
|
||||
|
||||
dcl
|
||||
csm$buffered lit '0001h',
|
||||
csm$background lit '0002h',
|
||||
csm$purging lit '0004h',
|
||||
csm$noswitch lit '0008h',
|
||||
csm$suspend lit '0010h',
|
||||
csm$abort lit '0020h',
|
||||
csm$filefull lit '0040h',
|
||||
csm$ctrlS lit '0080h',
|
||||
csm$ctrlO lit '0100h',
|
||||
csm$ctrlP lit '0200h';
|
||||
|
||||
dcl x$init$offset lit '0Ch',
|
||||
x$init$pointer pointer,
|
||||
x$init$ptr structure (offset word, segment word) at (@x$init$pointer),
|
||||
x$init based x$init$pointer structure
|
||||
(tick byte, ticks$sec byte, door byte, resrvd1 (2) byte,
|
||||
nvcns byte, nccb byte, nlst byte, ccb word, lcb word);
|
||||
|
||||
|
||||
dcl lcb$structure lit 'structure (attach address, queue address,
|
||||
flag byte, startcol byte, column byte, nchar byte,
|
||||
mimic byte, msource byte)';
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
/* This utility requires MP/M or Concurrent function calls */
|
||||
|
||||
/****** commented out for CCP/M-86 :
|
||||
declare Ver$OS literally '11h',
|
||||
Ver$Needs$OS literally '''Requires MP/M-86''';
|
||||
******/
|
||||
|
||||
declare Ver$OS literally '14h',
|
||||
Ver$Needs$OS literally '''Requires Concurrent CP/M-86''';
|
||||
|
||||
|
||||
declare Ver$Mask literally '0fdh'; /* mask out Is_network bit */
|
||||
|
||||
declare Ver$BDOS literally '30h'; /* minimal BDOS version rqd */
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
vax SCD.A86 $$fans
|
||||
vax COMLIT.LIT $$fans
|
||||
vax COPYRT.LIT $$fans
|
||||
vax FCB.LIT $$fans
|
||||
vax FLAG.LIT $$fans
|
||||
vax MDSAT.LIT $$fans
|
||||
vax MFUNC.LIT $$fans
|
||||
vax MXFUNC.LIT $$fans
|
||||
vax NEWCOM.LIT $$fans
|
||||
vax PROCES.LIT $$fans
|
||||
vax QD.LIT $$fans
|
||||
vax SD.LIT $$fans
|
||||
vax UDA.LIT $$fans
|
||||
vax VAXCMD.LIT $$fans
|
||||
vax VCCB.LIT $$fans
|
||||
vax VCCB.SAV $$fans
|
||||
vax VERMPM.LIT $$fans
|
||||
vax XFER.SUB $$fans
|
||||
Reference in New Issue
Block a user