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:
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/10.JPG
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/10.JPG
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 51 KiB |
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/10.TD0
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/10.TD0
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/ASM86.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/ASM86.CPM
Normal file
Binary file not shown.
3
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/C.SUB
Normal file
3
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/C.SUB
Normal file
@@ -0,0 +1,3 @@
|
||||
r mcc1 $1.c
|
||||
r mcc2 -m -o$1.obj $2 $3 $4 $5 $6 $7 $8 $9
|
||||
|
||||
4
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CLST.SUB
Normal file
4
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CLST.SUB
Normal file
@@ -0,0 +1,4 @@
|
||||
r mcc1 $1.c $1.l
|
||||
r mcc2 -m -o$1.obj $2 -i >$1.d $3 $4 $5 $6 $7 $8 $9
|
||||
r cmrg $1.l $1.d >$1.l2
|
||||
|
||||
23
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/COMPLOGO.SUB
Normal file
23
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/COMPLOGO.SUB
Normal file
@@ -0,0 +1,23 @@
|
||||
drc lmain -x
|
||||
drc lfunc1 -x
|
||||
drc lfunc2 -x
|
||||
drc lfunc3 -x
|
||||
drc lfunc4 -x
|
||||
drc lfunc5 -x
|
||||
drc lfunc6 -x
|
||||
drc lfunc7 -x
|
||||
drc linit1 -x
|
||||
drc linit2 -x
|
||||
drc logo -x
|
||||
drc lio1 -x
|
||||
drc lio2 -x
|
||||
drc lws -x
|
||||
drc leval -x
|
||||
drc lparm -x
|
||||
drc lprim1 -x
|
||||
drc lprim2 -x
|
||||
drc lerr -x
|
||||
drc ledt -x
|
||||
drc lscr -x
|
||||
drc ldep -x
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT0.MED
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT0.MED
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT0.SML
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT0.SML
Normal file
Binary file not shown.
126
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT1.A86
Normal file
126
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT1.A86
Normal file
@@ -0,0 +1,126 @@
|
||||
CODE CSEG
|
||||
CGROUP GROUP CODE
|
||||
DGROUP GROUP DATA,__pname,__tname,__lname,__xeof,_break
|
||||
|
||||
EXTRN _main:NEAR
|
||||
EXTRN exit:NEAR
|
||||
PUBLIC brk
|
||||
PUBLIC __BDOS
|
||||
PUBLIC _start
|
||||
PUBLIC _sav
|
||||
PUBLIC _ret
|
||||
PUBLIC _swpll
|
||||
|
||||
DB 'C runtime library, Copyright 1982,1983by Digital Research 86 V0.8'
|
||||
DB 01AH
|
||||
|
||||
_start: MOV AX,DS
|
||||
MOV SS,AX
|
||||
MOV BX,6
|
||||
MOV SP,[BX] ;set up ss:sp
|
||||
|
||||
MOV AX,WORD PTR ?MEMRY
|
||||
MOV __break,AX ;set up __break for brk()
|
||||
|
||||
MOV BX,80H ;offset of command line
|
||||
MOV AL,BYTE PTR [BX];get length
|
||||
XOR AH,AH
|
||||
PUSH AX
|
||||
MOV AX,81H ;offset of command line data
|
||||
PUSH AX
|
||||
CALL _main
|
||||
CALL exit
|
||||
|
||||
_sav: POP DX ;RET ADDR
|
||||
PUSH BP
|
||||
MOV BP,SP
|
||||
PUSH DI
|
||||
PUSH SI
|
||||
JMP DX
|
||||
|
||||
_ret: POP SI ;FLUSH RET ADDR
|
||||
LEA SI,0-4[BP]
|
||||
MOV SP,SI
|
||||
POP SI
|
||||
POP DI
|
||||
POP BP
|
||||
RET
|
||||
|
||||
_swpll:
|
||||
POP ES ;SAVE RET ADDR
|
||||
POP DX
|
||||
POP CX
|
||||
|
||||
POP BX
|
||||
POP AX
|
||||
|
||||
PUSH CX
|
||||
PUSH DX
|
||||
|
||||
PUSH AX
|
||||
PUSH BX
|
||||
|
||||
PUSH ES
|
||||
RET
|
||||
|
||||
|
||||
|
||||
brk: PUSH BP
|
||||
MOV BP,SP
|
||||
PUSH DI
|
||||
PUSH SI
|
||||
|
||||
MOV AX,4[BP] ;GET PARAMETER
|
||||
MOV BX,SP ;GET STACK POINTER
|
||||
SUB BX,200H ;LEAVE SOME SLOP
|
||||
CMP AH,BH ;IN THE GENERAL AREA?
|
||||
JA BRKOK ;IF NOT THEN OK, LEAVE IT ALONE
|
||||
MOV AX,-1
|
||||
JMP BRKXIT
|
||||
|
||||
BRKOK: MOV AX,0
|
||||
BRKXIT: POP SI
|
||||
POP DI
|
||||
POP BP
|
||||
RET
|
||||
|
||||
__BDOS: ;(func,long)
|
||||
PUSH BP
|
||||
MOV BP,SP
|
||||
PUSH DI
|
||||
PUSH SI
|
||||
MOV CX,4[BP]
|
||||
MOV DX,6[BP]
|
||||
PUSH BP
|
||||
INT 0E0H
|
||||
POP BP
|
||||
POP SI
|
||||
POP DI
|
||||
POP BP
|
||||
XOR AH,AH
|
||||
RET
|
||||
|
||||
DATA DSEG BYTE
|
||||
|
||||
PUBLIC ?MEMRY
|
||||
?MEMRY RW 2
|
||||
|
||||
_break DSEG BYTE COMMON
|
||||
__break RW 1
|
||||
|
||||
__pname DSEG BYTE COMMON
|
||||
_pname DB 'Cprogram',0
|
||||
|
||||
__tname DSEG BYTE COMMON
|
||||
_tname DB 'CON:',0
|
||||
|
||||
__lname DSEG BYTE COMMON
|
||||
_lname DB 'LST:',0
|
||||
|
||||
__xeof DSEG BYTE COMMON
|
||||
_xeof DB 01AH
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
153
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT1.B86
Normal file
153
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CRT1.B86
Normal file
@@ -0,0 +1,153 @@
|
||||
|
||||
CODE CSEG
|
||||
|
||||
DGROUP GROUP DATA,__pname,__tname,__lname,__xeof,_break
|
||||
|
||||
|
||||
|
||||
PUBLIC brk
|
||||
PUBLIC __BDOS
|
||||
PUBLIC _start
|
||||
|
||||
PUBLIC _ret
|
||||
PUBLIC _swpll
|
||||
|
||||
JMP _start
|
||||
DB 'C runtime library, Copyright 1982 by Digital Research 86V0.8'
|
||||
DB 01AH
|
||||
brk: PUSH BP
|
||||
MOV BP,SP
|
||||
PUSH DI
|
||||
PUSH SI
|
||||
|
||||
MOV AX,6[BP] ;GET PARAMETER
|
||||
MOV BX,SP ;GET STACK POINTER
|
||||
SUB BX,200H ;LEAVE SOME SLOP
|
||||
CMP BH,AH ;IN THE SAME GENERAL AREA?
|
||||
JA BRKOK ;IS BH <= AH? IF NOT THEN OK, LEAVE IT ALONE
|
||||
MOV AX,-1
|
||||
JMP BRKXIT
|
||||
|
||||
BRKOK: MOV AX,0
|
||||
BRKXIT: POP SI
|
||||
POP DI
|
||||
POP BP
|
||||
RETF
|
||||
|
||||
|
||||
_start: MOV AX,DS
|
||||
MOV BX,6
|
||||
MOV SS,AX
|
||||
MOV SP,[BX] ;set up ss:sp
|
||||
|
||||
MOV AX,WORD PTR ?MEMRY
|
||||
MOV __break,AX ;set up __break for brk()
|
||||
|
||||
;
|
||||
; NOW ZERO UN-INIT DATA
|
||||
;
|
||||
MOV CX,SP
|
||||
SUB CX,100H ;LEAVE SOME SLOP
|
||||
MOV BX,WORD PTR ?MEMRY ;GET STARTING LOCATION
|
||||
SUB CX,BX ;CALC LENGTH INTO CX
|
||||
INC CX
|
||||
SHR CX,1 ;MAKE IT A WORD COUNT
|
||||
|
||||
MOV AX,0 ;FILL VALUE
|
||||
MOV DX,DS
|
||||
MOV ES,DX ;SET UP DEST SEG
|
||||
MOV DI,BX ;SET UP DEST OFFSET
|
||||
|
||||
REP STOSW ;AND DOIT
|
||||
|
||||
MOV BX,80H ;offset of command line
|
||||
MOV AL,BYTE PTR [BX];get length
|
||||
XOR AH,AH
|
||||
PUSH AX
|
||||
MOV AX,81H ;offset of command line data
|
||||
PUSH AX
|
||||
CALLF _main
|
||||
CALLF exit
|
||||
|
||||
_swpll:
|
||||
POP RET1
|
||||
POP RET2
|
||||
POP AX
|
||||
POP BX
|
||||
POP CX
|
||||
POP DX
|
||||
PUSH BX
|
||||
PUSH AX
|
||||
PUSH DX
|
||||
PUSH CX
|
||||
PUSH RET2
|
||||
PUSH RET1
|
||||
RETF
|
||||
|
||||
_ret: POP SI
|
||||
POP SI ;FLUSH RET ADDR
|
||||
LEA SI,0-4[BP]
|
||||
MOV SP,SI
|
||||
POP SI
|
||||
POP DI
|
||||
POP BP
|
||||
RETF
|
||||
|
||||
__BDOS: ;(func,long)
|
||||
PUSH BP
|
||||
MOV BP,SP
|
||||
PUSH DI
|
||||
PUSH SI
|
||||
CMP WORD PTR 6[BP],26 ;SET DMA?
|
||||
JNZ NOTSETDMA ;BR IF NO
|
||||
;
|
||||
; OTHERWISE SET SEGMENT BASE EVERY TIME
|
||||
;
|
||||
MOV DX,DS
|
||||
MOV CX,33H
|
||||
PUSH BP
|
||||
INT 0E0H
|
||||
POP BP
|
||||
|
||||
NOTSETDMA:
|
||||
MOV CX,6[BP]
|
||||
MOV DX,8[BP]
|
||||
PUSH BP
|
||||
INT 0E0H
|
||||
POP BP
|
||||
POP SI
|
||||
POP DI
|
||||
POP BP
|
||||
XOR AH,AH
|
||||
RETF
|
||||
|
||||
DATA DSEG BYTE
|
||||
|
||||
PUBLIC ?MEMRY
|
||||
?MEMRY RW 2
|
||||
RET1 RW 1
|
||||
RET2 RW 1
|
||||
|
||||
_break DSEG BYTE COMMON
|
||||
__break RW 1
|
||||
|
||||
__pname DSEG BYTE COMMON
|
||||
_pname DB 'Cprogram',0
|
||||
|
||||
__tname DSEG BYTE COMMON
|
||||
_tname DB 'CON:',0
|
||||
|
||||
__lname DSEG BYTE COMMON
|
||||
_lname DB 'LST:',0
|
||||
|
||||
__xeof DSEG BYTE COMMON
|
||||
_xeof DB 01AH
|
||||
_main.c_CODE CSEG
|
||||
EXTRN _main:FAR
|
||||
exit.c_CODE CSEG
|
||||
EXTRN exit:FAR
|
||||
|
||||
END
|
||||
|
||||
|
||||
|
||||
3
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CS.SUB
Normal file
3
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CS.SUB
Normal file
@@ -0,0 +1,3 @@
|
||||
r mcc1 $1.c
|
||||
r mcc2 -o$1.obj $2 $3 $4 $5 $6 $7 $8 $9
|
||||
|
||||
4
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CSLST.SUB
Normal file
4
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/CSLST.SUB
Normal file
@@ -0,0 +1,4 @@
|
||||
r mcc1 $1.c $1.l
|
||||
r mcc2 -o$1.obj $2 -i >$1.d $3 $4 $5 $6 $7 $8 $9
|
||||
r cmrg $1.l $1.d >$1.l2
|
||||
|
||||
121
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/DRC.ERR
Normal file
121
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/DRC.ERR
Normal file
@@ -0,0 +1,121 @@
|
||||
1 Out of memory. Allocate function returns NULL.
|
||||
2 Identifier not specified in type or storage class declaration.
|
||||
3 A public function definition is declared external.
|
||||
4 Parentheses () missing in function declaration.
|
||||
5 <identifier> ... not declared as a function.
|
||||
6 Two functions have the same name.
|
||||
7 Conflicting data type specified for a function.
|
||||
8 Data type not specified in variable declaration.
|
||||
9 Global variable declared with "register" storage class.
|
||||
10 Conflicting data type specified for a function.
|
||||
11 Conflicting storage class keywords in declaration.
|
||||
12 Conflicting data type keywords in declaration.
|
||||
13 Use the keywords "unsigned/long/short" with int only.
|
||||
14 Do not use the "unsigned long" type declaration.
|
||||
15 Conflicting type qualifiers "short/long" in declaration.
|
||||
16 Conflicting definitions for structure tag identifier.
|
||||
17 Identifier or left brace { missing in struct or union declaration.
|
||||
18 Storage class specified in struct or union declaration.
|
||||
19 Data type not specified in struct or union declaration.
|
||||
20 Use integer constants to define bit field width.
|
||||
21 Conflicting offsets or data type declared for <identifier>
|
||||
22 A comma or semicolon is missing.
|
||||
23 Internal compiler error.
|
||||
24 Do not use "static" or "extern" to declare parameters.
|
||||
25 Data type not specified in parameter declaration.
|
||||
26 Do not use abstract declarator in parameter declaration.
|
||||
27 <identifier> ... not specified as a parameter.
|
||||
28 <identifier> ... must be pointer or scalar.
|
||||
29 Identifier not specified in parameter declaration.
|
||||
30 A function body is specified as a parameter.
|
||||
31 Use integer constant expression to specify array bounds.
|
||||
32 <identifier> ... undefined for "goto" statement.
|
||||
33 WARNING: <identifier> is declared, but not referenced.
|
||||
34 <identifier> ... struct or union referenced before declaration.
|
||||
35 Cannot initialize a function.
|
||||
36 Do not initialize variables with "extern".
|
||||
37 Array dimensions are extended automatically.
|
||||
38 Switch expression cannot be floating-point.
|
||||
39 Cannot read switch statement. "case <const>" ignored.
|
||||
40 Constant in "case" construct cannot be floating-point.
|
||||
41 Cannot read switch statement. "default:" ignored.
|
||||
42 Break location undefined. No loop or switch.
|
||||
43 Continue location undefined. No loop or switch.
|
||||
44 Identifier not specified in "goto" statement.
|
||||
45 Same statement label used more than once.
|
||||
46 <identifier> ... defined more than once.
|
||||
47 <identifier> ... Undefined identifier.
|
||||
48 Unexpected end-of-file (EOF) on input file.
|
||||
49 Comma or semicolon is missing.
|
||||
50 Right brace } is missing.
|
||||
51 Left brace { is missing.
|
||||
52 Right parenthesis ) is missing.
|
||||
53 Right square bracket ] is missing in array declaration.
|
||||
54 Function parameters cannot have parameters.
|
||||
55 Right parenthesis ) is missing.
|
||||
56 Do not list parameters in the function declaration.
|
||||
57 Comma or semicolon is missing.
|
||||
58 Right brace } is missing.
|
||||
59 Comma or semicolon is missing.
|
||||
61 Too many initializers. Right brace } is missing.
|
||||
62 Left parenthesis ( is missing.
|
||||
63 Keyword "while" is missing in "do...while" construct.
|
||||
64 Colon is missing.
|
||||
65 Internal compiler error. Bad constant load.
|
||||
66 Internal compiler error. Unknown pointer size.
|
||||
67 Use operators ++ and -- on "int/char/long/short" only.
|
||||
68 MESSAGE SPACE RESERVED
|
||||
69 MESSAGE SPACE RESERVED
|
||||
70 MESSAGE SPACE RESERVED
|
||||
71 Cannot return certain types of expressions.
|
||||
72 Internal compiler error.
|
||||
73 Use constant expression to initialize static and extern variables.
|
||||
74 MESSAGE SPACE RESERVED
|
||||
75 MESSAGE SPACE RESERVED
|
||||
76 Variable is not large enough to hold a pointer.
|
||||
77 Variable too large to hold initial value.
|
||||
78 Offsets into other segments not implemented.
|
||||
79 Use operators + - ++ -- with pointers only.
|
||||
80 MESSAGE SPACE RESERVED
|
||||
81 Invalid parameter expression.
|
||||
82 MESSAGE SPACE RESERVED
|
||||
83 WARNING: Indirection for non-pointers is not portable.
|
||||
84 Cannot add arrays or structures. Do not use + operator with arrays.
|
||||
85 MESSAGE SPACE RESERVED
|
||||
86 Use only += or -= operators wirh pointers.
|
||||
87 Colon is missing.
|
||||
88 Cannot add pointers. Do not use + operator with pointers.
|
||||
89 Incorrect expression syntax.
|
||||
90 Comma or right parenthesis expected in parameter list.
|
||||
91 Expression is missing before [ operator.
|
||||
92 An lvalue is required before [ operator.
|
||||
93 Array or pointer required on left of [ operator.
|
||||
94 Array or pointer required. Cannot subscript.
|
||||
95 WARNING: Subscript is truncated to short int.
|
||||
96 Right square bracket ] is missing.
|
||||
97 Identifier missing on right of . operator.
|
||||
98 Expression missing on left of . operator.
|
||||
99 Left operand for . operator must be a struct.
|
||||
100 WARNING: Non-local structure field assumed.
|
||||
101 Identifier missing on right of -> operator.
|
||||
102 Expression missing on left of -> operator.
|
||||
103 Left operand of -> operator must be a pointer.
|
||||
104 WARNING: Non-local structure field assumed.
|
||||
105 Division by the constant 0.
|
||||
106 Operand types do not match. Cannot coerce to compatible types.
|
||||
107 Cannot coerce operand type to double.
|
||||
108 Cannot coerce operand type to long.
|
||||
109 Cannot coerce operand type to unsigned.
|
||||
110 WARNING: Indirection for non-pointers is not portable.
|
||||
111 WARNING: & operator (address of) used redundantly.
|
||||
112 The & operator (address of) requires an lvalue.
|
||||
113 An lvalue is required with ++ or -- operator.
|
||||
114 Incorrect operand type for ++ or -- operator.
|
||||
115 Data type not specified for expression after sizeof operator.
|
||||
116 An lvalue is required with ++ or -- operator.
|
||||
117 Incorrect operand type for ++ or -- operator.
|
||||
118 MESSAGE SPACE RESERVED
|
||||
119 Output file write error. Disk is probably full.
|
||||
120 WARNING: Not enough registers available for variables.
|
||||
121 WARNING: Additional registers available for variables.
|
||||
|
||||
40
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/DRCGSX.A86
Normal file
40
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/DRCGSX.A86
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
;****************************************************************
|
||||
;* *
|
||||
;* DRC to GSX interface *
|
||||
;* *
|
||||
;****************************************************************
|
||||
;
|
||||
;The following code is an assembler interface to the GSX for DRC
|
||||
;
|
||||
CGROUP GROUP CODE
|
||||
;
|
||||
PUBLIC GSX
|
||||
;
|
||||
CSEG
|
||||
;
|
||||
GSX:
|
||||
Mov BX,SP ;get address of arguments from C
|
||||
Add BX,0AH ;point at the other end
|
||||
Push SI
|
||||
Push DI
|
||||
Push BP
|
||||
Push ES
|
||||
Pushf
|
||||
Mov CX,5 ;5 arguments
|
||||
MAKE_LONG:
|
||||
Push DS ;make them long word pointers
|
||||
Push word ptr [BX] ;data also
|
||||
Sub BX,2 ;point at the next
|
||||
Loop MAKE_LONG
|
||||
Mov DX,SP ;point at the list
|
||||
Mov CX,0473H ;layer 0, GDOS 4, function 115
|
||||
Int 0E0H ;ring the BDOS bell
|
||||
Add SP,014H ;unstack the longwords
|
||||
Popf
|
||||
Pop ES
|
||||
Pop BP
|
||||
Pop DI
|
||||
Pop SI
|
||||
Ret
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/DRCGSX.OBJ
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/DRCGSX.OBJ
Normal file
Binary file not shown.
192
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/ECHO.A86
Normal file
192
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/ECHO.A86
Normal file
@@ -0,0 +1,192 @@
|
||||
|
||||
;
|
||||
; ECHO - Resident System Process
|
||||
; Print Command tail to console
|
||||
;
|
||||
|
||||
;
|
||||
; DEFININTIONS
|
||||
;
|
||||
|
||||
mpmint equ 224 ;mpm entry interrupt
|
||||
mpm_conwrite equ 9 ;print string
|
||||
mpm_qmake equ 134 ;create queue
|
||||
mpm_qopen equ 135 ;open queue
|
||||
mpm_qread equ 137 ;read queue
|
||||
mpm_qwrite equ 139 ;write queue
|
||||
mpm_setprior equ 145 ;set priority
|
||||
mpm_condetach equ 147 ;detach console
|
||||
mpm_setdefcon equ 148 ;set default console
|
||||
|
||||
pdlen equ 48 ;length of Process
|
||||
; Descriptor
|
||||
|
||||
p_cns equ byte ptr 020h ;default cns
|
||||
p_disk equ byte ptr 012h ;default disk
|
||||
p_user equ byte ptr 013h ;default user
|
||||
p_list equ byte ptr 024h ;default list
|
||||
ps_run equ 0 ;PD run status
|
||||
pf_keep equ 2 ;PD nokill flag
|
||||
|
||||
rsp_top equ 0 ;rsp offset
|
||||
rsp_pd equ 010h ;PD offset
|
||||
rsp_uda equ 040h ;UDA offset
|
||||
rsp_bottom equ 140h ;end rsp header
|
||||
|
||||
qf_rsp equ 08h ;queue RSP flag
|
||||
|
||||
;
|
||||
; CODE SEGMENT
|
||||
;
|
||||
CSEG
|
||||
org 0
|
||||
|
||||
mpm: int mpmint
|
||||
ret
|
||||
|
||||
main: ;create ECHO queue
|
||||
mov cl,mpm_qmake ! mov dx,offset qd
|
||||
call mpm
|
||||
;open ECHO queue
|
||||
mov cl,mpm_qopen ! mov dx,offset qpb
|
||||
call mpm
|
||||
;set priority to normal
|
||||
mov cl,mpm_setprior ! mov dx,200
|
||||
call mpm
|
||||
|
||||
;ES points to SYSDAT
|
||||
mov es,sdatseg
|
||||
|
||||
loop: ;forever
|
||||
;read cmdtail from queue
|
||||
mov cl,mpm_qread ! mov dx,offset qpb
|
||||
call mpm
|
||||
|
||||
;set default values from PD
|
||||
mov bx,pdadr
|
||||
; mov dl,es:p_disk[bx] ;p_disk=0-15
|
||||
; inc dl ! mov disk,dl ;make disk=1-16
|
||||
; mov dl,es:p_user[bx]
|
||||
; mov user,dl
|
||||
; mov dl,es:p_list[bx]
|
||||
; mov list,dl
|
||||
mov dl,es:p_cns[bx]
|
||||
mov console,dl
|
||||
|
||||
;set default console
|
||||
; mov dl,console
|
||||
mov cl,mpm_setdefcon ! call mpm
|
||||
|
||||
;scan cmdtail and look for '$' or 0.
|
||||
;when found, replace w/ cr,lf,'$'
|
||||
|
||||
lea bx,cmdtail ! mov al,'$' ! mov ah,0
|
||||
mov dx,bx ! add dx,131
|
||||
nextchar:
|
||||
cmp bx,dx ! ja endcmd
|
||||
cmp [bx],al ! je endcmd
|
||||
cmp [bx],ah ! je endcmd
|
||||
inc bx ! jmps nextchar
|
||||
endcmd:
|
||||
mov byte ptr [bx],13
|
||||
mov byte ptr 1[bx],10
|
||||
mov byte ptr 2[bx],'$'
|
||||
|
||||
;write command tail
|
||||
lea dx,cmdtail ! mov cl,mpm_conwrite
|
||||
call mpm
|
||||
;detach console
|
||||
mov dl,console
|
||||
mov cl,mpm_condetach ! call mpm
|
||||
;done, get next command
|
||||
jmps loop
|
||||
|
||||
;
|
||||
; DATA SEGMENT
|
||||
;
|
||||
|
||||
DSEG
|
||||
org rsp_top
|
||||
|
||||
sdatseg dw 0,0,0
|
||||
dw 0,0,0
|
||||
dw 0,0
|
||||
|
||||
org rsp_pd
|
||||
|
||||
pd dw 0,0 ; link,thread
|
||||
db ps_run ; status
|
||||
db 190 ; priority
|
||||
dw pf_keep ; flags
|
||||
db 'ECHO ' ; name
|
||||
dw offset uda/10h ; uda seg
|
||||
db 0,0 ; disk,user
|
||||
db 0,0 ; load dsk,usr
|
||||
dw 0 ; mem
|
||||
dw 0,0 ; dvract,wait
|
||||
db 0,0
|
||||
dw 0
|
||||
db 0 ; console
|
||||
db 0,0,0
|
||||
db 0 ; list
|
||||
db 0,0,0
|
||||
dw 0,0,0,0
|
||||
|
||||
org rsp_uda
|
||||
|
||||
uda dw 0,offset dma,0,0 ;0
|
||||
dw 0,0,0,0
|
||||
dw 0,0,0,0 ;10h
|
||||
dw 0,0,0,0
|
||||
dw 0,0,0,0 ;20h
|
||||
dw 0,0,0,0
|
||||
dw 0,0,offset stack_tos,0 ;30h
|
||||
dw 0,0,0,0
|
||||
dw 0,0,0,0 ;40h
|
||||
dw 0,0,0,0
|
||||
dw 0,0,0,0 ;50h
|
||||
dw 0,0,0,0
|
||||
dw 0,0,0,0 ;60h
|
||||
|
||||
org rsp_bottom
|
||||
|
||||
qbuf rb 131 ;Queue buffer
|
||||
|
||||
qd dw 0 ;link
|
||||
db 0,0 ;net,org
|
||||
dw qf_rsp ;flags
|
||||
db 'ECHO ' ;name
|
||||
dw 131 ;msglen
|
||||
dw 1 ;nmsgs
|
||||
dw 0,0 ;dq,nq
|
||||
dw 0,0 ;msgcnt,msgout
|
||||
dw offset qbuf ;buffer addr.
|
||||
|
||||
dma rb 128
|
||||
|
||||
stack dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
stack_tos dw offset main ; start offset
|
||||
dw 0 ; start seg
|
||||
dw 0 ; init flags
|
||||
|
||||
pdadr rw 1 ; QPB Buffer
|
||||
cmdtail rb 129 ; starts here
|
||||
db 13,10,'$'
|
||||
|
||||
qpb db 0,0 ;must be zero
|
||||
dw 0 ;queue ID
|
||||
dw 1 ;nmsgs
|
||||
dw offset pdadr ;buffer addr.
|
||||
db 'ECHO ' ;name to open
|
||||
|
||||
console db 0
|
||||
;disk db 0
|
||||
;user db 0
|
||||
;list db 0
|
||||
|
||||
end
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/G&G.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/G&G.CPM
Normal file
Binary file not shown.
6
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/GPR.INP
Normal file
6
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/GPR.INP
Normal file
@@ -0,0 +1,6 @@
|
||||
gpr=crt0.med,
|
||||
gpr,
|
||||
oscrt.med[search,libsyms],
|
||||
machdep.med[search,libsyms],
|
||||
edata[data[max[800]]
|
||||
e
|
||||
25
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/LISTLOGO.SUB
Normal file
25
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/LISTLOGO.SUB
Normal file
@@ -0,0 +1,25 @@
|
||||
cpip prn:=e:ldep.c
|
||||
cpip prn:=e:ledt.c
|
||||
cpip prn:=e:leval.c
|
||||
cpip prn:=e:lfunc1.c
|
||||
cpip prn:=e:lfunc2.c
|
||||
cpip prn:=e:lfunc3.c
|
||||
cpip prn:=e:lfunc4.c
|
||||
cpip prn:=e:lfunc5.c
|
||||
cpip prn:=e:lfunc6.c
|
||||
cpip prn:=e:lfunc7.c
|
||||
cpip prn:=e:linit1.c
|
||||
cpip prn:=e:linit2.c
|
||||
cpip prn:=e:lio1.c
|
||||
cpip prn:=e:lio2.c
|
||||
cpip prn:=e:lmain.c
|
||||
cpip prn:=e:logo.c
|
||||
cpip prn:=e:logo.h
|
||||
cpip prn:=e:logopt.c
|
||||
cpip prn:=e:lparm.c
|
||||
cpip prn:=e:lprim1.c
|
||||
cpip prn:=e:lprim2.c
|
||||
cpip prn:=e:lscr.c
|
||||
cpip prn:=e:lvdi.c
|
||||
cpip prn:=e:lws.c
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MACHDEP.MED
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MACHDEP.MED
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MACHDEP.SML
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MACHDEP.SML
Normal file
Binary file not shown.
80
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MAIL.HLP
Normal file
80
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MAIL.HLP
Normal file
@@ -0,0 +1,80 @@
|
||||
?General
|
||||
The MAIL facility
|
||||
|
||||
Syntax:
|
||||
Sending mail: MAIL [<sendfile] [NAMELIST namefile]
|
||||
[ALL] user1 ...
|
||||
|
||||
Receiving mail: MAIL [-R] [-A]
|
||||
|
||||
Checking mail: MAIL -C
|
||||
|
||||
Sending mail:
|
||||
|
||||
"sendfile" is the name of the file containing the information you wish
|
||||
to send. "namefile" is the name of the file containing a list of
|
||||
users; the file contains each name on a separate line. The ALL keyword
|
||||
causes the message to be sent to all users on the system.
|
||||
|
||||
Receiving mail:
|
||||
|
||||
The -R option causes your mail to be typed out in reverse order (the
|
||||
last message you receive is typed first). The -A option causes all
|
||||
mail to be typed out without prompting you for options about letter.
|
||||
|
||||
When you are reviewing mail, your options are:
|
||||
|
||||
N Leave letter in mailbox, read next letter
|
||||
P Leave letter in mailbox, read previous letter
|
||||
R Retype current letter
|
||||
D Delete current letter, read next letter
|
||||
S fn Save current letter in file fn with postmark
|
||||
W fn Save current letter in file fn without postmark
|
||||
F Forward current letter to users listed
|
||||
H Type this help file
|
||||
! execute a command
|
||||
Q Quit from MAIL
|
||||
X Exit from MAIL, but do not delete marked messages
|
||||
?syntax
|
||||
The syntax of the MAIL command is:
|
||||
|
||||
Sending mail: MAIL [<sendfile] [NAMELIST namefile]
|
||||
[ALL] user1 ...
|
||||
|
||||
Receiving mail: MAIL [-R] [-A]
|
||||
|
||||
Checking mail: MAIL -C
|
||||
?send
|
||||
Sending mail:
|
||||
|
||||
MAIL [<sendfile] [NAMELIST namefile] [ALL] user1 ...
|
||||
|
||||
"sendfile" is the name of the file containing the information you wish
|
||||
to send. "namefile" is the name of the file containing a list of
|
||||
users; the file contains each name on a separate line. The ALL keyword
|
||||
causes the message to be sent to all users on the system.
|
||||
|
||||
?receive
|
||||
Receiving mail:
|
||||
|
||||
MAIL [-R] [-A]
|
||||
|
||||
The -R option causes your mail to be typed out in reverse order (the
|
||||
last message you receive is typed first). The -A option causes all
|
||||
mail to be typed out without prompting you for options about letter.
|
||||
?subcommands
|
||||
Subcommands you can use when receiving mail are:
|
||||
|
||||
N Leave letter in mailbox, read next letter
|
||||
P Leave letter in mailbox, read previous letter
|
||||
R Retype current letter
|
||||
D Delete current letter, read next letter
|
||||
S fn Save current letter in file fn with postmark
|
||||
W fn Save current letter in file fn without postmark
|
||||
F Forward current letter to users listed
|
||||
H Type this help file
|
||||
! execute a command
|
||||
Q Quit from MAIL
|
||||
X Exit from MAIL, but do not delete marked messages
|
||||
of the file containing the information you wish
|
||||
to send. "namefile" is the name of the file containing a list
|
||||
7
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MAIL.NDX
Normal file
7
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MAIL.NDX
Normal file
@@ -0,0 +1,7 @@
|
||||
length 000083
|
||||
general 10
|
||||
receive 1811
|
||||
send 1456
|
||||
subcommands 2071
|
||||
syntax 1241
|
||||
<1A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
658
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MAZEFN.C
Normal file
658
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MAZEFN.C
Normal file
@@ -0,0 +1,658 @@
|
||||
#include "cpyrt.h" /* DRI copyright message */
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* The source code contained in this listing is a proprietary trade */
|
||||
/* secret of Digital Research Inc., Pacific Grove, California and is */
|
||||
/* copyrighted as an unpublished work pursuant to Section 408 of */
|
||||
/* Title 17 of the United States Code. Unauthorized copying, */
|
||||
/* adaptation, distribution, use or display is prohibited by law. */
|
||||
/* */
|
||||
/* Author: xxxxxxxxxxx */
|
||||
/* PRODUCT: MAZE VidLink Program */
|
||||
/* Module: mazefn */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* MAZE Module: MAZEFN, Maze Function */
|
||||
/* ----------------------------- */
|
||||
/* */
|
||||
/* This is the MAZE function module. This module */
|
||||
/* provides the VidLink Maze Program functions. */
|
||||
/* */
|
||||
/* The following routines are present: */
|
||||
/* */
|
||||
/* maze MAZE function */
|
||||
/* */
|
||||
/* The following routines are called: */
|
||||
/* */
|
||||
/* xxxxxxxxx xxxxxxxxxxxxxxxx */
|
||||
/* */
|
||||
/* Revision History: */
|
||||
/* */
|
||||
/* 06/20/84 by xxxxxxxxxxxx */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
|
||||
/*
|
||||
* Include Files
|
||||
*/ /****************************/
|
||||
#include "portab.h" /* DRI portable coding conv */
|
||||
/****************************/
|
||||
#include "ascii.h" /* ASCII character defines */
|
||||
/****************************/
|
||||
#include "color.h" /* color defines */
|
||||
/****************************/
|
||||
#include "graph.h" /* graphics chars */
|
||||
/****************************/
|
||||
|
||||
/*#page*/
|
||||
/*
|
||||
* External Data/Functions:
|
||||
*/
|
||||
|
||||
#include "vcrt.d"
|
||||
|
||||
#include "mazex.d" /* maze function extrnl data*/
|
||||
|
||||
EXTERN WORD vdpiof();
|
||||
|
||||
EXTERN WORD VIOSTAT();
|
||||
|
||||
|
||||
/*#page*/
|
||||
/*
|
||||
* Local Data/Functions:
|
||||
*/
|
||||
#define MAX_PLAYERS 6
|
||||
#define QMAX 4000 /* size of question buffer */
|
||||
#define AMAX 40 /* size of answer buffer */
|
||||
#define RETURN 0x0d /* carriage return */
|
||||
#define BACKSP 0x09 /* backspace ?? */
|
||||
|
||||
struct scene =
|
||||
{
|
||||
UWORD start;
|
||||
UWORD finish;
|
||||
BYTE right;
|
||||
BYTE wrong;
|
||||
};
|
||||
|
||||
struct scene intro [] =
|
||||
{
|
||||
/* 01 */ 00150, 01482, 02, 00,
|
||||
/* 02 */ 01800, 02120, 00, 00
|
||||
};
|
||||
|
||||
struct scene nightmare_castle [] =
|
||||
{
|
||||
/ * 01 */ 02138, 02202, 02, 01
|
||||
};
|
||||
|
||||
struct scene blast_off [] =
|
||||
{
|
||||
/* 01 */ 00000, 00000, 00, 00
|
||||
};
|
||||
|
||||
struct scene first_and_ten [] =
|
||||
{
|
||||
/* 01 */ 00000, 00000, 00, 00
|
||||
};
|
||||
|
||||
struct scene shoot_out [] =
|
||||
{
|
||||
/* 01 */ 00000, 00000, 00, 00
|
||||
};
|
||||
|
||||
struct player_state =
|
||||
{
|
||||
BYTE score;
|
||||
UBYTE adventure;
|
||||
UBYTE scene;
|
||||
UBYTE group;
|
||||
BOOLEAN bonus;
|
||||
};
|
||||
|
||||
struct player_state player [MAX_PLAYERS];
|
||||
|
||||
BYTE c_scene; /* current scene */
|
||||
BYTE c_player; /* current player */
|
||||
BYTE last_player; /* last player number */
|
||||
|
||||
UBYTE row; /* current row */
|
||||
|
||||
UBYTE q_buffer[QMAX]; /* question buffer */
|
||||
UBYTE eoq; /* TRUE if end of question file */
|
||||
UWORD q_size; /* size of q_buffer (normally QMAX) */
|
||||
UWORD q_next; /* next q_buffer to fill */
|
||||
UWORD g_next; /* next group number */
|
||||
UWORD g_count; /* group count */
|
||||
UWORD g_base; /* group base */
|
||||
UBYTE g_max; /* used to find next question */
|
||||
|
||||
UBYTE ans[AMAX]; /* answer buffer */
|
||||
UBYTE a_size; /* current answer size */
|
||||
|
||||
/*#page*/
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* xxxxxxxx */
|
||||
/* -------- */
|
||||
/* */
|
||||
/* This subroutine performs the xxxxxxxxxxxxxxxxxxxxxxxx. */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
GLOBAL maze(argc,argv)
|
||||
/****************************/
|
||||
WORD argc; /* cmd tail argument count */
|
||||
CHAR *argv[]; /* cmd tail string pointers */
|
||||
{ /***** begin maze *****/
|
||||
CHAR c;
|
||||
|
||||
|
||||
#ifdef CPU_65
|
||||
d_ouchar(14); /* switch to lower case */
|
||||
#endif
|
||||
clear();
|
||||
sign_on();
|
||||
vdpiof("VC");
|
||||
p_inchar();
|
||||
|
||||
clear();
|
||||
set_row(5);
|
||||
l_outstr(" Do you want to see");
|
||||
set_row(6);
|
||||
l_outstr(" the Introduction (y/n)? ");
|
||||
c = p_inchar();
|
||||
if ((c == 'Y') || (c == 'y'))
|
||||
{
|
||||
clear();
|
||||
set_row(5);
|
||||
l_outstr(" Insert Maze Mania Side #1 ");
|
||||
set_row(6);
|
||||
l_outstr(" Strike any key to continue ");
|
||||
c = p_inchar();
|
||||
vdpiof("FR1SE");
|
||||
if (VIOSTAT())
|
||||
{ /* not in play mode */
|
||||
while (!VIOSTAT())
|
||||
;
|
||||
while (vdpiof("PL"))
|
||||
{
|
||||
set_row(8);
|
||||
l_outstr(" Please insert disc.");
|
||||
}
|
||||
set_row(9);
|
||||
l_outstr(" Thank-you.");
|
||||
while (!VIOSTAT())
|
||||
;
|
||||
vdpiof("PA");
|
||||
}
|
||||
else
|
||||
while (!VIOSTAT())
|
||||
;
|
||||
clear();
|
||||
set_row(5);
|
||||
l_outstr(" Introduction Part #1 ");
|
||||
vdpiof("VOVP");
|
||||
|
||||
if (!sequence((UWORD)150,(UWORD)1482))
|
||||
{
|
||||
vdpiof("VC");
|
||||
p_move(6,0);
|
||||
l_outstr(" Introduction Part #2 ");
|
||||
vdpiof("VP");
|
||||
sequence((UWORD)1800,(UWORD)2120);
|
||||
}
|
||||
vdpiof("VC");
|
||||
}
|
||||
|
||||
init_players();
|
||||
c_scene = 1;
|
||||
c_player = 0;
|
||||
g_next = 0;
|
||||
g_count = 0;
|
||||
q_size = QMAX;
|
||||
while (select_player())
|
||||
ask_question();
|
||||
|
||||
/* saved for reference
|
||||
p_clear();
|
||||
p_move(9,0);
|
||||
l_outstr(" Sequence test.");
|
||||
p_move(10,0);
|
||||
l_outstr(" Strike any key to abort.");
|
||||
vdpiof("VP");
|
||||
while (!sequence((UWORD)12450,(UWORD)12500))
|
||||
;
|
||||
*/
|
||||
|
||||
#ifdef CPU_65
|
||||
d_ouchar(142); /* switch to upper case */
|
||||
#endif
|
||||
} /***** end maze *****/
|
||||
|
||||
/*#page*/
|
||||
/****************************************************************************/
|
||||
/* */
|
||||
/* xxxxxxxx */
|
||||
/* -------- */
|
||||
/* */
|
||||
/* This subroutine performs the xxxxxxxxxxxxxxxxxxxxxxxx. */
|
||||
/* */
|
||||
/****************************************************************************/
|
||||
MLOCAL sign_on()
|
||||
{
|
||||
UBYTE i;
|
||||
UBYTE j;
|
||||
UBYTE k;
|
||||
|
||||
p_color(BLUE);
|
||||
i = 0;
|
||||
j = (p_crt.rows - h_so_maze) >> 1;
|
||||
k = (p_crt.cols - w_so_maze) >> 1;
|
||||
|
||||
while (so_maze[i])
|
||||
{
|
||||
p_move(i+j,k);
|
||||
l_outstr(so_maze[i++]);
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL l_outstr(s)
|
||||
|
||||
CHAR *s;
|
||||
{
|
||||
#ifdef CPU_65
|
||||
CHAR c;
|
||||
|
||||
while (c = *s++)
|
||||
{
|
||||
if ((c >= 'a') && (c <= 'z')) /* if lower case */
|
||||
c = c & 0xdf; /* then to upper */
|
||||
else
|
||||
if ((c >= 'A') && (c <= 'Z')) /* if upper case */
|
||||
c = c | 0x20; /* then to lower */
|
||||
d_ouchar(c);
|
||||
}
|
||||
#else
|
||||
p_outstr(s);
|
||||
#endif
|
||||
}
|
||||
|
||||
newline()
|
||||
{
|
||||
set_row(row+1);
|
||||
}
|
||||
|
||||
set_row(r)
|
||||
|
||||
UBYTE r;
|
||||
{
|
||||
p_move(row = r, 0);
|
||||
}
|
||||
|
||||
clear()
|
||||
{
|
||||
row = 0;
|
||||
p_clear();
|
||||
}
|
||||
|
||||
stop_display()
|
||||
{
|
||||
UWORD i;
|
||||
for (i = 0; i < 30000; i++);
|
||||
}
|
||||
|
||||
BOOLEAN read_group()
|
||||
{
|
||||
UWORD q, k, k_loc;
|
||||
UBYTE n, n1, n2;
|
||||
if (eoq || (eoq = !(n = gn_num())))
|
||||
return;
|
||||
q_next = g_next;
|
||||
put_q(n);
|
||||
while (n--)
|
||||
{
|
||||
n1 = gn_num();
|
||||
n2 = gn_num();
|
||||
k_loc = q_next;
|
||||
put_q(0);
|
||||
put_q(0);
|
||||
k = 0;
|
||||
while (n1--)
|
||||
k += gn_nstr();
|
||||
put_q('\0');
|
||||
while (n2--)
|
||||
k += gn_nstr();
|
||||
put_q('\0');
|
||||
k += 2;
|
||||
put_nq(k_loc, k & 0xff);
|
||||
put_nq(k_loc+1, k >> 16);
|
||||
if (q_next >= q_size - 2)
|
||||
return (FALSE);
|
||||
g_next = q_next;
|
||||
g_count++;
|
||||
return (TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
UBYTE gn_num()
|
||||
{
|
||||
UBYTE x, d;
|
||||
x = 0;
|
||||
while ((d = gnc()) == ' ' || d == ',')
|
||||
;
|
||||
while (d = d - '0') <= 9)
|
||||
x = x * 10 + d;
|
||||
return (x);
|
||||
}
|
||||
|
||||
UWORD gn_nstr()
|
||||
{
|
||||
UWORD d;
|
||||
UBYTE c;
|
||||
d = 1;
|
||||
while (gnc() != '"')
|
||||
;
|
||||
while ((c = gnc()) != '"')
|
||||
{
|
||||
put_q(c);
|
||||
d++;
|
||||
}
|
||||
put_q('\n');
|
||||
return (d);
|
||||
}
|
||||
|
||||
UBYTE gnc()
|
||||
{
|
||||
if (eoq)
|
||||
return ('"');
|
||||
/* note: read next character */
|
||||
return ('#');
|
||||
}
|
||||
|
||||
put_q(x)
|
||||
|
||||
UBYTE x;
|
||||
{
|
||||
put_nq(q_next,x);
|
||||
}
|
||||
|
||||
put_nq(loc,x)
|
||||
|
||||
UWORD loc;
|
||||
UBYTE x;
|
||||
{
|
||||
if (loc >= q_size)
|
||||
return;
|
||||
q_buffer[loc] = x;
|
||||
if (loc >= q_next)
|
||||
q_next = loc + 1;
|
||||
}
|
||||
|
||||
UBYTE rand_q(g)
|
||||
|
||||
UBYTE g;
|
||||
{
|
||||
/* return random number between 1 and g */
|
||||
return (1);
|
||||
}
|
||||
|
||||
next_question()
|
||||
{
|
||||
UWORD q;
|
||||
q = rand_q(g_max = get_q(g_base));
|
||||
q_next = 1;
|
||||
while (q--)
|
||||
gn_qpos();
|
||||
for (q = 1; q < g_max; q++)
|
||||
{
|
||||
if (!(get_q(q_base+1) & 0x80))
|
||||
break;
|
||||
gn_qpos();
|
||||
}
|
||||
if (q >= g_max)
|
||||
{
|
||||
for (q = 1; q < g_count; q++)
|
||||
{
|
||||
put_q(q_base+1,get_q(q_base+1) | 0x80);
|
||||
gn_qpos();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gn_qpos()
|
||||
{
|
||||
q_base +=
|
||||
gnq(q_base) | ((gnq(q_base+1) & 0x7f) << 8);
|
||||
if (++q_next > g_max)
|
||||
{
|
||||
q_base = g_base + 1;
|
||||
q_next = 1;
|
||||
}
|
||||
}
|
||||
|
||||
display_question()
|
||||
{
|
||||
set_row(4);
|
||||
l_outstr(" Here's the question:");
|
||||
newline();
|
||||
write_q(&q_buffer[q_base]);
|
||||
}
|
||||
|
||||
write_q(q)
|
||||
|
||||
UBYTE *q;
|
||||
{
|
||||
while (*q)
|
||||
{
|
||||
if (*q == '\n')
|
||||
{
|
||||
newline();
|
||||
l_outstr(" ");
|
||||
}
|
||||
else
|
||||
d_outchar(*q);
|
||||
q++;
|
||||
}
|
||||
}
|
||||
|
||||
BOOLEAN get_answer()
|
||||
{
|
||||
UBYTE c;
|
||||
newline();
|
||||
newline();
|
||||
l_outstr(" What's your answer?");
|
||||
a_size = 0;
|
||||
while ((c = p_inchar()) != RETURN)
|
||||
if (c == BACKSP)
|
||||
{
|
||||
if (a_size > 0)
|
||||
{
|
||||
d_outchar(BACKSP);
|
||||
d_outchar(' ');
|
||||
d_outchar(BACKSP);
|
||||
}
|
||||
}
|
||||
else
|
||||
if (a_size < AMAX)
|
||||
d_outchar(ans[a_size++] = c);
|
||||
while (get_q(q_base))
|
||||
{
|
||||
if match_q()
|
||||
return (TRUE);
|
||||
while (get_q(q_base++) != '\n')
|
||||
;
|
||||
}
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
BOOLEAN match_q()
|
||||
{
|
||||
UBYTE a;
|
||||
for (a = 0; a < a_size; a++)
|
||||
if (toupper(get_q(q_base)) != toupper(ans[a]))
|
||||
if (get_q(q_base) == '\n')
|
||||
return (FALSE);
|
||||
return (get_q(q_base) == '\n');
|
||||
}
|
||||
|
||||
ask_question()
|
||||
{
|
||||
UBYTE p, g, r, w;
|
||||
BOOLEAN a;
|
||||
UWORD s;
|
||||
if (player.bonus[c_player])
|
||||
vdpiof("ST");
|
||||
else
|
||||
vdpiof("AL");
|
||||
clear();
|
||||
set_row(3);
|
||||
l_outstr(" Player ");
|
||||
outBYTE(c_player);
|
||||
l_outstr(" has ");
|
||||
outBYTE(p = player.score[c_player]);
|
||||
l_outstr(" points");
|
||||
g = player.group[c_player];
|
||||
a = TRUE;
|
||||
while (a)
|
||||
{
|
||||
/* select next question from group */
|
||||
if (g > g_count)
|
||||
if (!read_group())
|
||||
g = 1;
|
||||
/* note: make g_base absolute q_buffer address from group g */
|
||||
next_question();
|
||||
display_question();
|
||||
if (a = get_answer())
|
||||
{
|
||||
g += 1;
|
||||
if ((p += 5) > 100)
|
||||
p = 100;
|
||||
s = nightmare.right[scene];
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((p -= 3) < 0)
|
||||
p = 0;
|
||||
s = nightmare.wrong[scene];
|
||||
}
|
||||
/* set frame display for bonus questions later */
|
||||
play_scene(scene);
|
||||
clear();
|
||||
set_row(3);
|
||||
if ((r = nightmare.right[scene]) + (w = nightmare.wrong[scene]) == 0)
|
||||
{
|
||||
l_outstr(" Congratulations! You made");
|
||||
newline();
|
||||
l_outstr(" it through the maze");
|
||||
s = 0;
|
||||
a = FALSE;
|
||||
}
|
||||
else
|
||||
if (r == 0)
|
||||
{
|
||||
l_outstr(" Sorry, DEAD END");
|
||||
s = w;
|
||||
}
|
||||
if (a)
|
||||
{
|
||||
l_outstr(" Correct!");
|
||||
/* display bonus question info later */
|
||||
s = r;
|
||||
}
|
||||
else
|
||||
{
|
||||
l_outstr(" Oops! You got the");
|
||||
newline();
|
||||
l_outstr(" question wrong");
|
||||
}
|
||||
stop_display();
|
||||
}
|
||||
player.score[c_player] = p;
|
||||
player.scene[c_player] = s;
|
||||
player.group[c_player] = g;
|
||||
}
|
||||
|
||||
|
||||
|
||||
play_scene(s)
|
||||
|
||||
UBYTE s;
|
||||
{
|
||||
/* should test for abort from sequence */
|
||||
while (TRUE)
|
||||
{
|
||||
sequence(nightmare.start[s],nightmare.finish[s]);
|
||||
if (nightmare.wrong[s] != 0)
|
||||
return;
|
||||
if ((s = nightmare.right[s]) == 0)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
GLOBAL BOOLEAN sequence(start,stop)
|
||||
|
||||
UWORD start;
|
||||
UWORD stop;
|
||||
{
|
||||
UBYTE str[10];
|
||||
UBYTE stp[10];
|
||||
BOOLEAN key;
|
||||
|
||||
sprintf(str,"%d",start);
|
||||
sprintf(stp,"%d",stop-1);
|
||||
|
||||
vdpiof("VO");
|
||||
vdpiof("FR");
|
||||
vdpiof(str);
|
||||
vdpiof("SE");
|
||||
while (!VIOSTAT())
|
||||
;
|
||||
vdpiof("MF");
|
||||
vdpiof(stp);
|
||||
vdpiof("SE");
|
||||
/*
|
||||
if (VIOSTAT())
|
||||
while (VIOSTAT())
|
||||
;
|
||||
*/
|
||||
while (!VIOSTAT())
|
||||
;
|
||||
vdpiof("VNPL");
|
||||
/*
|
||||
if (VIOSTAT())
|
||||
while (VIOSTAT())
|
||||
;
|
||||
*/
|
||||
while (!VIOSTAT())
|
||||
;
|
||||
key = FALSE;
|
||||
/*
|
||||
while (VIOSTAT())
|
||||
if (key = p_instat())
|
||||
{
|
||||
p_inchar();
|
||||
break;
|
||||
}
|
||||
*/
|
||||
while (1)
|
||||
{
|
||||
if (!VIOSTAT())
|
||||
if (!VIOSTAT())
|
||||
if (!VIOSTAT())
|
||||
if (!VIOSTAT())
|
||||
break;
|
||||
if (key = p_instat())
|
||||
{
|
||||
p_inchar();
|
||||
break;
|
||||
}
|
||||
}
|
||||
vdpiof("PA");
|
||||
return(key);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<your_file_name>=crt0.med,
|
||||
<your_file_name>,
|
||||
oscrt.med[search,libsyms],
|
||||
machdep.med[search,libsyms],
|
||||
edata[data[max[800]]
|
||||
|
||||
570
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MPM.HLP
Normal file
570
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MPM.HLP
Normal file
@@ -0,0 +1,570 @@
|
||||
?General
|
||||
General information on MP/M 8-16
|
||||
|
||||
MP/M 8-16 is a proprietary implementation of Digital Research's MP/M-86
|
||||
operating system from Gifford Computer Systems. This implementation of
|
||||
MP/M-86 enables systems with CompuPro hardware to run both 8- and 16-bit
|
||||
programs simultaneously in a multi-user, multi-tasking environment.
|
||||
?sw
|
||||
The SW feature of MP/M 8-16
|
||||
|
||||
The SW program is the most innovative part of Gifford Computer Systems'
|
||||
enhancements to MP/M-86. This program enables the system's 8- and 16-bit
|
||||
file access capability.
|
||||
|
||||
When the user gives a command on the MP/M 8-16 command line, the shell
|
||||
first searches the directories for CP/M-86 (16-bit) files with a .CMD
|
||||
extension. If a .CMD file is not found, the shell automatically
|
||||
invokes SW, which searches for a CP/M-80 (8-bit) program with the same
|
||||
file name, but with a .COM extension.
|
||||
?SUBMIT
|
||||
Using SUBMIT with MP/M 8-16
|
||||
|
||||
Although the SW program is called automatically by the shell when you ask
|
||||
for an 8-bit program, the SUBMIT facility does not know how to do this.
|
||||
Thus, you must explicitly give the A:SW command on lines of a SUBMIT file
|
||||
that call 8-bit programs. For example, if you want to run an 8-bit program
|
||||
called F80 on a file called BILLING.FOR, and then erase the file called
|
||||
BILLING.LST, your SUBMIT file would have the following two lines:
|
||||
|
||||
A:SW F80 BILLING.FOR
|
||||
ERA BILLING.LST
|
||||
?CLOCK
|
||||
Setting the time with the CLOCK command
|
||||
|
||||
MP/M-86 has a TOD command which allows setting the time, but will not work
|
||||
under MP/M 8-16. MP/M 8-16 uses the real-time clock on the System Support
|
||||
board to set the time instead of the time derived from the TOD program.
|
||||
Instead of using TOD command to set the time, use the CLOCK command. TOD
|
||||
will still return the correct time.
|
||||
|
||||
Unless the NiCad battery back-up is disconnected from your System Support
|
||||
board, you only have to set the time once. The System Support board may be
|
||||
removed from the computer and reinstalled later as long as the battery is
|
||||
always connected to the board. The NiCad battery will last for about two
|
||||
years.
|
||||
?MPMINIT
|
||||
MPMINIT.CMD and MPMINIT.SUB
|
||||
|
||||
Before giving the user at the system console control of the system, it
|
||||
first checks for files called MPMINIT.CMD and MPMINIT.SUB on user 0 of disk
|
||||
A:. If it finds MPMINIT.CMD, it runs the program. It then looks for
|
||||
MPMINIT.SUB; if it finds it, it runs SUBMIT with the file. For example, you
|
||||
can use the MPMINIT files to check the status of the disks, and the amount
|
||||
of disk space available.
|
||||
|
||||
?USERINIT
|
||||
USERINIT.CMD and USERINIT.SUB
|
||||
|
||||
When a user gives a correct login name (and password, if necessary), the
|
||||
system checks user 0 of drive A: for files called USERINIT.CMD and
|
||||
USERINIT.SUB. If it finds USERINIT.CMD, it runs the program. It then
|
||||
looks for USERINIT.SUB; if it finds it, it then runs SUBMIT with the file.
|
||||
These programs are run for all users.
|
||||
?Passwords
|
||||
Passwords on the system
|
||||
|
||||
There are two types of passwords on MP/M 8-16. You can protect files and
|
||||
you can prevent unauthorized users from logging onto the system. The file
|
||||
protection is documented in the "MP/M-86 Operating System User's Guide" in
|
||||
the section on files. The login protection is documented in the "MP/M 8-16
|
||||
Reference Manual" in the section on the PASSWD file.
|
||||
|
||||
For more information on the PASSWD file, give the command HELP MPM PASSWD.
|
||||
?PASSWD
|
||||
The structure of the PASSWD file is:
|
||||
|
||||
NAME:PASSWORD:DRIVE:USER:PRINTER:ACCESS:PROGRAM:COMMENTS
|
||||
|__| |______| |___| |__| |_____| |____| |_____| |_______
|
||||
\ \ \ \ \ \ \ \
|
||||
1 2 3 4 5 6 7 8
|
||||
|
||||
1. User login name
|
||||
2. Optional password field
|
||||
3. Optional default user drive (default = drive A)
|
||||
4. Optional default user number (default = user 0)
|
||||
5. Optional default user printer (default = printer 0)
|
||||
6. Optional selective terminal access numbers. This is a comma separated
|
||||
list of the console numbers users will be allowed to use. If no assignment
|
||||
is made in this field, the user has access to any terminal.
|
||||
7. Optional default application program, such as SuperCalc. Users with an
|
||||
entry in this field are automatically entered into the program specified.
|
||||
The system searches for the program exactly as if the user had typed at the
|
||||
default prompt. Upon exiting the program, the user is automatically logged
|
||||
out.
|
||||
8. Optional comments field
|
||||
?TTYS
|
||||
The structure of the TTYS file
|
||||
|
||||
DEV #:BAUD RATE:HANDSHAKING:PROTOCOL:TTY NAME:COMMENTS
|
||||
|___| |_______| |_________| |______| |______| |_______
|
||||
\ \ \ \ \ \
|
||||
1 2 3 4 5 6
|
||||
|
||||
1. Number of terminal, corresponding to connection on computer back panel.
|
||||
Numbers begin with 0.
|
||||
|
||||
2. Terminal baud rate; the default is 9600. Baud rates are selected from
|
||||
the following:
|
||||
|
||||
0 = 9600 1 = 110 2 = 300 3 = 600 4 = 1200
|
||||
5 = 1800 6 = 2400 7 = 4800 8 = 9600 9 = 19200
|
||||
A = automatic baud rate detection for modems
|
||||
|
||||
3. Optional RS-232 hardware handshaking. Hardware handshaking is generally
|
||||
not required for terminals; if not specified, the default is 0. If
|
||||
handshaking is necessary, enter the number corresponding to the type of
|
||||
handshaking needed from the following:
|
||||
0 = No handshaking
|
||||
1 = Hardware handshaking (DTR) (RS-232 pin 20)
|
||||
2 = Software handshaking (XON XOFF)
|
||||
3 = Reserved for custom application
|
||||
|
||||
4. Optional communications protocol. This is a three character entry. The
|
||||
default protocol is 8 data bits, 2 stop bits, and no parity, which are the
|
||||
settings for most common terminals. If you need to change this, select the
|
||||
configuration you need from the table below and enter the three characters
|
||||
without any spaces. For example, if your terminal requires a protocol of 7
|
||||
data bits, 2 stop bits, even parity, enter 72E in field 4.
|
||||
|
||||
Data bits Stop bits Parity
|
||||
|
||||
8 2 N (none)
|
||||
7 1 O (odd)
|
||||
E (even)
|
||||
|
||||
5. Optional terminal name of up to 8 characters with no spaces. The
|
||||
terminal name is often entered as "console" for the system console, "tty1"
|
||||
for terminal 1, "tty2" for terminal 2, etc. This field is used to identify
|
||||
the location on the system of a user in the WHO facility, and will be used
|
||||
in future MP/M 8-16 utilities. More than one terminal name can be listed,
|
||||
separated by commas with no spaces.
|
||||
|
||||
6. Optional comments field.
|
||||
?LPRS
|
||||
The structure of the LPRS file.
|
||||
|
||||
DEV #:BAUD RATE:HANDSHAKING:PROTOCOL:LPR NAME:COMMENT
|
||||
|___| |_______| |_________| |______| |______| |______
|
||||
\ \ \ \ \ \
|
||||
1 2 3 4 5 6
|
||||
|
||||
1. Number of printer, corresponding to connection on computer back panel.
|
||||
Printer 0 is the default printer for users.
|
||||
2. Printer baud rate. The default and options are listed in the help for
|
||||
TTYS.
|
||||
3. Optional RS-232 hardware handshaking. The default and options listed in
|
||||
the help for TTYS.
|
||||
4. Optional communications protocol. The default and options are listed in
|
||||
the help for TTYS.
|
||||
5. Optional printer name. This field is described in the previous
|
||||
section. The value here is used in the MPM-86 PRINTER command, which
|
||||
changes the default printer for a user.
|
||||
6. Optional comment field.
|
||||
?WTMP
|
||||
The structure of the WTMP file
|
||||
|
||||
A sample entry is:
|
||||
tty2 david 2 16642132392034 7221982 4
|
||||
|
||||
The first two fields are the terminal name and user name. The contents
|
||||
of the other fields are:
|
||||
|
||||
2 1664 21 32 39 203 4 7 22 1982 4
|
||||
\ \ \ \ \ \ \ \ \
|
||||
1 2 3 4 5 6 7 8 9
|
||||
|
||||
1. Console number.
|
||||
2. Days since January 1st, 1978.
|
||||
3. Hour of the day (24 hour clock).
|
||||
4. Minute of the hour.
|
||||
5. Second of the minute.
|
||||
6. Julian day of the year (1-365)
|
||||
7. Day of the week (Sunday = 0, Monday = 1, Tuesday = 3, etc.)
|
||||
8. Date in month-day-year.
|
||||
9. Program file link number; the first entry defines the length of the
|
||||
file.
|
||||
?MAIL
|
||||
The MAIL Utility
|
||||
|
||||
The MAIL utility lets you send mail to, and receive mail from, other users.
|
||||
For more information on MAIL, give the command HELP MAIL or HELP MAIL ALL.
|
||||
?Reminder
|
||||
Reminder files
|
||||
|
||||
Each time you log on the system, MP/M 8-16 checks user area 15 on disk A:
|
||||
for a file called name.REM, where "name" is the name being logged in. If
|
||||
it finds the file, it types it on your screen.
|
||||
?MOTD
|
||||
The Message of the Day
|
||||
|
||||
Each time a user logs in, the system types out the message of the day. The
|
||||
message is kept in the file called MOTD on user 0 on drive. This file can
|
||||
contain anything you wish, including escape sequences to control the user's
|
||||
screen. Create and update the MOTD file with an editor such as ED or
|
||||
WordStar.
|
||||
?FORMAT
|
||||
Formatting diskettes and disks
|
||||
|
||||
Floppy diskettes used with the MP/M 8-16 system must be formatted before
|
||||
being used to transfer or store information. The FORMAT program included
|
||||
on your system diskette formats both single and double density diskettes,
|
||||
and the recommended format is double density diskettes formatted for 1024
|
||||
byte sectors.
|
||||
|
||||
It is extremely unlikely that you will need to format your hard disk once
|
||||
it is in use. Formatting a disk erases all of the information on it. It
|
||||
is also unlikely that you will want to run the destructive disk test, since
|
||||
this also destroys the information on your disk.
|
||||
?help
|
||||
The HELP facility
|
||||
|
||||
The HELP command gives you more information about the system, or about
|
||||
programs supplied with the system. You can also make your own help files,
|
||||
or modify the ones we supply.
|
||||
|
||||
To get general information on a subject, simply type HELP and the program
|
||||
name. The HELP program will access that help file, and the subject of
|
||||
GENERAL. To get a list of the subjects in a help file, give the command
|
||||
"HELP filename ALL".
|
||||
?TOD
|
||||
The TOD Command in MP/M 8-16
|
||||
|
||||
The TOD command prints out the current time of day. Under MP/M 8-16, it
|
||||
does not set the system clock. This is done with the CLOCK program. For
|
||||
more information, type HELP MPM CLOCK.
|
||||
?PRINTER
|
||||
The PRINTER Command in MP/M 8-16
|
||||
|
||||
The PRINTER command takes the names of printers, as well as their number,
|
||||
as arguments in MP/M 8-16. For more information on printer names, type
|
||||
HELP MPM LPRS.
|
||||
?COPY
|
||||
The COPY command
|
||||
|
||||
To make an exact copy of the system diskette, use one of the formatted
|
||||
diskettes supplied by Gifford Computer Systems, or format a diskette with
|
||||
the FORMAT program, choosing 1024 byte sectors. You must boot the system
|
||||
with CP/M 2.2, then give the COPY command.
|
||||
?SYSGEN
|
||||
The SYSGEN command
|
||||
|
||||
Use the SYSGEN command to copy the system tracks of a boot diskette to
|
||||
another diskette.
|
||||
?Shutdown
|
||||
Shutting down your system
|
||||
|
||||
It is important that you follow these procedures each time you turn off
|
||||
your system or reset it (re-initialize by pressing the reset button),
|
||||
especially if you are running your system with a hard disk. These steps
|
||||
ensure that data is written from the hard disk cache. Failure to follow
|
||||
them may result in loss of valuable data.
|
||||
|
||||
1. All users (except system console) log off of the system by giving the
|
||||
LOGOUT command.
|
||||
|
||||
2. After all the other users have logged out, the user at the system
|
||||
console gives the DOWN command. This turns off all terminals except the
|
||||
system console.
|
||||
|
||||
3. Release the system diskette from the floppy disk drive. Hold in the red
|
||||
reset button on the front of the Enclosure 2, turn off power to the
|
||||
computer by pressing the bottom part of the power switch down, and release
|
||||
the reset button.
|
||||
?DOWN
|
||||
The DOWN command
|
||||
|
||||
The DOWN command turns off all terminals except the system console. For
|
||||
more information, type HELP MPM SHUTDOWN.
|
||||
?MAKE
|
||||
The MAKE command
|
||||
|
||||
The MAKE command creates an empty file on your disk. This is useful if you
|
||||
need to make a file that does not contain any information, but the
|
||||
existence of the file is important to other programs. To make a file, give
|
||||
the MAKE command and the file name at the system prompt. For example, to
|
||||
create the file TEST.FIL, type MAKE TEST.FIL at the system prompt.
|
||||
?WHO
|
||||
The WHO command
|
||||
|
||||
The WHO command lists the users on the system, their consoles, and the
|
||||
time they logged on.
|
||||
?TIMELOG
|
||||
The TIMELOG utilities
|
||||
|
||||
Gifford Computer Systems provides dBASE II utilities to get login histories
|
||||
of users and terminals on your MP/M 8-16 system. These utilities read from
|
||||
the WTMP file, and write out a dBASE II data base.
|
||||
?SuperCalc
|
||||
SuperCalc
|
||||
|
||||
Your system includes a copy of SuperCalc, which is a financial spread-sheet
|
||||
program which is used to forecast costs and benefits for businesses. To
|
||||
run SuperCalc, give the SC command.
|
||||
|
||||
If you need help when running SuperCalc, type the question mark (?) key.
|
||||
?dBASE
|
||||
dBASE II
|
||||
|
||||
Your system includes a copy of dBASE II, which is a complete data base
|
||||
management system. To run dBASE II, give the DBASE command.
|
||||
?SYNC
|
||||
The SYNC command
|
||||
|
||||
The SYNC command copies the cache disk buffers to the hard disk. MP/M 8-16
|
||||
systems with hard disks use cache memory to improve the speed of accessing
|
||||
the disk. This means, however, that there are times when RAM memory
|
||||
contains information that has not been written on the hard disk.
|
||||
|
||||
The system does an automatic SYNC command every 30 seconds. If you want to
|
||||
flush the cache memory before then, give the SYNC command.
|
||||
?languages
|
||||
Programming languages
|
||||
|
||||
Gifford Computer Systems sells the following computer languages:
|
||||
|
||||
Assemblers -- SORCIM ACT-80, ACT-86, Trans86. Digital Research SID (8- and
|
||||
16-bit), MAC, RMAC
|
||||
|
||||
BASIC -- Microsoft's BASIC interpreter and compiler (8-bit); Digital
|
||||
Research's CBASIC (8- and 16-bit) interpreter, and CB80 compiler (8-bit)
|
||||
|
||||
C -- Computer Innovations C86 (16-bit); Whitesmith's C (8-bit)
|
||||
|
||||
Pascal -- SORCIM's Pascal/M (8- and 16-bit); Digital Research's Pascal MT+
|
||||
(8- and 16-bit, Speed Programming Package available)
|
||||
|
||||
FORTRAN -- Microsoft FORTRAN (8-bit)
|
||||
|
||||
PL/1 -- Digital Research PL/1 (8-bit)
|
||||
?ABORT
|
||||
The ABORT command
|
||||
|
||||
ABORT stops execution of a process. The syntax is:
|
||||
|
||||
ABORT process n
|
||||
|
||||
where process is the name of the program to be aborted, and n is the
|
||||
terminal number that the program is running on.
|
||||
?ASM86
|
||||
The MP/M-86 Assembler
|
||||
|
||||
The ASM86 assembles assembly language statements, and produces an object
|
||||
file in hexadecimal format. It is documented in the MP/M-86 Operating
|
||||
System Programmer's Guide.
|
||||
?ATTACH
|
||||
The ATTACH command
|
||||
|
||||
The ATTACH command attaches a detached program. The syntax is:
|
||||
|
||||
ATTACH process
|
||||
|
||||
where process is the name of the detached program.
|
||||
?CONSOLE
|
||||
The CONSOLE command types the number of the user's console.
|
||||
?DDT86
|
||||
The dynamic debugger
|
||||
|
||||
The DDT86 program aids the dynamic debugging of MP/M-86 programs. It is
|
||||
documented in the MP/M-86 Operating System Programmer's Guide.
|
||||
?DIR
|
||||
The DIR command
|
||||
|
||||
The DIR command displays a list of files that are on a disk. The name
|
||||
specified to the DIR command can have wildcards. For more information on
|
||||
wildcards in file names, type HELP MPM WILDCARDS. You can also use the
|
||||
[SYS] option of DIR to list files with the system attribute.
|
||||
|
||||
To list files on a user number other than the one you are connected to, use
|
||||
the [G] option with the number of the area. For example, to list all of
|
||||
the files on user 6, give the command "DIR *.*[G6]".
|
||||
?DSKRESET
|
||||
The DSKRESET command
|
||||
|
||||
Give the DSKRESET command before removing a floppy diskette from a drive.
|
||||
This prevents you from destroying another person's data if they are also
|
||||
accessing that diskette. If you do not give an argument to DSKRESET, all
|
||||
drives are reset. You can specify the individual drives that you want to
|
||||
reset.
|
||||
?ED
|
||||
The ED editor
|
||||
|
||||
The ED command allows you to edit files. It is documented in the MP/M-86
|
||||
Operating System User's Guide. The ED editor is not very sophisticated, and
|
||||
Gifford Computer Systems recommends the use of other editors, such as
|
||||
WordStar, instead of ED for most applications.
|
||||
?ERA
|
||||
The ERA command
|
||||
|
||||
Erase files from your disk with the ERA command. The ERA command accepts
|
||||
wildcard specifications (for more information on wildcards, give the HELP
|
||||
MPM WILDCARDS command).
|
||||
?ERAQ
|
||||
The ERAQ command
|
||||
|
||||
Selectively erase files from your disk with the ERAQ command. This command
|
||||
is similar to the ERA command, except that it prompts you before each file,
|
||||
so that you can erase only some of a given group.
|
||||
?GENCMD
|
||||
The GENCMD Command
|
||||
|
||||
Use GENCMD to create .CMD command files from hex file (such as ones created
|
||||
with the ASM86 command). The GENCMD command is documented in the MP/M-86
|
||||
Operating System Programmer's Guide.
|
||||
?MPMSTAT
|
||||
The MPMSTAT command
|
||||
|
||||
The MPMSTAT command displays information about the internal status of your
|
||||
MP/M 8-16 system. The information displayed by MPMSTAT take up more than a
|
||||
full screen, and generally is not useful to the casual user.
|
||||
?wildcards
|
||||
Using wildcard characters in file specifications
|
||||
|
||||
An asterisk (*) in the filename or filetype is replaced by any number of
|
||||
characters in the filename that is searched. A question mark (?) in the
|
||||
filename or filetype is replaced by one character in the filename that is
|
||||
searched.
|
||||
|
||||
For example, the command "DIR BA*.TXT" will list BANNER.TXT and BAD.TXT,
|
||||
but not BURNER.TXT. The command "DIR BA?.TXT" will list BAD.TXT, but not
|
||||
BANNER.TXT.
|
||||
?PIP
|
||||
The PIP command
|
||||
|
||||
The PIP command moves files from a disk to another file, or to an external
|
||||
device (such as a printer). The format of the command is:
|
||||
|
||||
PIP destination=source
|
||||
|
||||
You can use wildcard characters in the filename. For an explanation of
|
||||
wildcard specifications, type HELP MPM WILDCARDS.
|
||||
|
||||
The destination is the name of a file to be created, the name of a disk
|
||||
(the same file name as the source will be used), or LST: (to print out the
|
||||
file).
|
||||
|
||||
There are many options that you can specify to modify the PIP command.
|
||||
When copying a file from one disk to another, you should always use the V
|
||||
and O options. If you are copying all of the files from one disk to
|
||||
another, and want to update files that are on the destination disk, use the
|
||||
options V, R, O, and W. To copy all of the files from A: to B:, give the
|
||||
command:
|
||||
|
||||
PIP B:=A:*.*[VROW]
|
||||
|
||||
The options that are most commonly used are:
|
||||
|
||||
A - archive
|
||||
Gn - "Goto" user n. If this is specified on the destination file, this
|
||||
writes the file to user n. If it is specified on the source file,
|
||||
it reads the file from user n.
|
||||
K - Kill console display during a wildcard file transfer.
|
||||
O - Object file transfers. This option should always be used.
|
||||
R - Read files that have the system attribute set.
|
||||
Tn - Expand TAB characters to n spaces. This is useful when listing programs
|
||||
on printers.
|
||||
V - Verify that the data is copied correctly after each record is written.
|
||||
This option should always be used when transferring files from one disk
|
||||
to another.
|
||||
W - Write over files that have the read-only attribute.
|
||||
?REN
|
||||
The REN command
|
||||
|
||||
Rename files on a disk with the REN command. The format is:
|
||||
|
||||
REN newname=oldname
|
||||
|
||||
The command will accept wildcards if they appear in the same place in both
|
||||
the new and old names (e.g., REN MYPROG.*=YOURPROG.*). For more
|
||||
information on wildcards, type HELP MPM WILDCARDS.
|
||||
?SDIR
|
||||
The SDIR command
|
||||
|
||||
The SDIR command displays a list of files that are on a disk. The name
|
||||
specified to the SDIR command can have wildcards. For more information on
|
||||
wildcards in file names, type HELP MPM WILDCARDS.
|
||||
|
||||
The SDIR command is different than the DIR command since it takes many more
|
||||
options, displays more information about each file, and sorts the file by
|
||||
filename and file type. The options most commonly used are:
|
||||
|
||||
SYS - list all files with the system attribute
|
||||
DIR - list all files with the directory attribute
|
||||
RO - list all files with the read-only attribute
|
||||
RW - list all files with the read-write attribute
|
||||
USER=n - list the files from user number n
|
||||
USER=ALL - list the files from all user numbers
|
||||
USER=(n1,n2,...) - list the files from user number n1, n2,...
|
||||
DRIVE=d - list the files from drive d
|
||||
DRIVE=ALL - list the files from all connected drives
|
||||
DRIVE=(d1,d2,...) - list the files from drives d1, d2,...
|
||||
EXCLUDE - list all files except those specified in the command
|
||||
|
||||
The default is to list all RW, RO, SYS, and DIR files.
|
||||
|
||||
You can get help for the SDIR command by giving the command SDIR HELP.
|
||||
?SET
|
||||
The SET command
|
||||
|
||||
The SET command is used to set the attributes on files and disks. The
|
||||
name specified to the SET command can have wildcards. For more
|
||||
information on wildcards in file names, type HELP MPM WILDCARDS.
|
||||
|
||||
The options are:
|
||||
|
||||
Disks:
|
||||
SET d: [RO or RW] - set the disk read-only or read-write
|
||||
SET d: [NAME=name] - give a name to the disk
|
||||
SET d: [PASSWORD = password, PROTECT=ON, DEFAULT=password] - password
|
||||
protection
|
||||
SET d: [MAKE=ON, CREATE=ON, ACCESS=ON, UPDATE=ON] - XFCB creation
|
||||
|
||||
Files:
|
||||
SET filespec [RO or RW, DIR or SYS] - set the file(s) read-only or
|
||||
read-write, and directory or system
|
||||
SET filespec [PASSWORD = password, TIME = ON] - set the password and
|
||||
timestamping
|
||||
SET filespec [PROTECT = READ or WRITE or DELETE or NONE] - set the protection
|
||||
|
||||
You can get help for the SET command by giving the command SET HELP.
|
||||
?SHOW
|
||||
The SHOW command
|
||||
|
||||
The SHOW command displays information about disks on your MP/M 8-16 system.
|
||||
If no argument is given, the amount of space left on the drive is displayed.
|
||||
The options are:
|
||||
|
||||
USERS - displays each user and the files on the disk that are allocated to
|
||||
them.
|
||||
DRIVES - lists extended information for each drive, such as the number
|
||||
of directory entries.
|
||||
LABEL - displays the label, password protection, XFCB status, timestamp
|
||||
status, and update time of the disk.
|
||||
|
||||
You can get help for the SHOW command by giving the command SHOW HELP.
|
||||
?SPOOL
|
||||
The SPOOL command
|
||||
|
||||
The SPOOL command sends files to the printer. The syntax is:
|
||||
|
||||
SPOOL file1, file2, ...
|
||||
|
||||
The spooler can be stopped with the STOPSPLR command.
|
||||
?STAT
|
||||
The STAT command gives information about disks and files, and sets the
|
||||
read-only protection on files. In MP/M 8-16, it is superseded by the
|
||||
SET and SHOW commands.
|
||||
?STOPSPLR
|
||||
The STOPSPLR command stops the print spooler. For information on using
|
||||
the print spooler, type HELP MPM SPOOL.
|
||||
?TYPE
|
||||
The TYPE command
|
||||
|
||||
The TYPE command types files on your terminal.
|
||||
?USER
|
||||
The USER command
|
||||
|
||||
The USER command changes your user number.
|
||||
tions are:
|
||||
|
||||
USERS - displays each user and the files on the disk that are allocated to
|
||||
54
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MPM.NDX
Normal file
54
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/MPM.NDX
Normal file
@@ -0,0 +1,54 @@
|
||||
length 000683
|
||||
abort 14052
|
||||
asm86 14273
|
||||
attach 14480
|
||||
clock 1406
|
||||
console 14649
|
||||
copy 10353
|
||||
dbase 12819
|
||||
ddt86 14718
|
||||
dir 14885
|
||||
down 11637
|
||||
dskreset 15401
|
||||
ed 15737
|
||||
era 16032
|
||||
eraq 16233
|
||||
format 8830
|
||||
gencmd 16467
|
||||
general 10
|
||||
help 9465
|
||||
languages 13429
|
||||
lprs 6519
|
||||
mail 8077
|
||||
make 11781
|
||||
motd 8484
|
||||
mpminit 2106
|
||||
mpmstat 16690
|
||||
passwd 3394
|
||||
passwords 2922
|
||||
pip 17395
|
||||
printer 10146
|
||||
reminder 8261
|
||||
ren 19021
|
||||
sdir 19327
|
||||
set 20473
|
||||
show 21362
|
||||
shutdown 10771
|
||||
spool 21953
|
||||
stat 22128
|
||||
stopsplr 22306
|
||||
submit 876
|
||||
supercalc 12534
|
||||
sw 340
|
||||
sync 12972
|
||||
sysgen 10647
|
||||
timelog 12292
|
||||
tod 9916
|
||||
ttys 4440
|
||||
type 22427
|
||||
user 22502
|
||||
userinit 2548
|
||||
who 12169
|
||||
wildcards 16940
|
||||
wtmp 7389
|
||||
<1A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/NED.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/NED.CPM
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/OSCRT.MED
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/OSCRT.MED
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/OSCRT.SML
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/OSCRT.SML
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLI0.OVR
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLI0.OVR
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLI1.OVR
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLI1.OVR
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLI2.OVR
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLI2.OVR
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLILIB.L86
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PLILIB.L86
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PSOFTCOM.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/PSOFTCOM.CPM
Normal file
Binary file not shown.
6
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SMALL.INP
Normal file
6
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SMALL.INP
Normal file
@@ -0,0 +1,6 @@
|
||||
<your_file_name>=crt0.sml,
|
||||
<your_file_name>,
|
||||
oscrt.sml[search,libsyms],
|
||||
machdep.sml[search,libsyms],
|
||||
edata[data[max[800]]
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SOFTCOM.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SOFTCOM.CPM
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SOFTLIBC.REL
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SOFTLIBC.REL
Normal file
Binary file not shown.
38
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SORT.PLI
Normal file
38
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SORT.PLI
Normal file
@@ -0,0 +1,38 @@
|
||||
sort:
|
||||
proc options(main);
|
||||
dcl
|
||||
(input_file, output_file) file;
|
||||
open file (input_file) stream title ('b:x.lib');
|
||||
open file (output_file) stream output title ('b:y.lib');
|
||||
dcl
|
||||
b char (64) var,
|
||||
i fixed,
|
||||
switching bit,
|
||||
buff (250) char (64) var,
|
||||
bp fixed;
|
||||
on endfile(input_file)
|
||||
go to sort_buff;
|
||||
bp = 0;
|
||||
do while ('1'b);
|
||||
get file(input_file) edit(buff(bp+1))(a);
|
||||
bp = bp + 1;
|
||||
end;
|
||||
sort_buff:
|
||||
switching = '1'b;
|
||||
do while (switching);
|
||||
switching = '0'b;
|
||||
do i = 1 to bp - 1;
|
||||
if (buff(i) < buff(i + 1)) then
|
||||
do;
|
||||
switching = '1'b;
|
||||
b = buff(i);
|
||||
buff(i) = buff(i+1);
|
||||
buff(i+1) = b;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
do i = 1 to bp;
|
||||
put file(output_file) edit(buff(i),'')(a,skip,a);
|
||||
end;
|
||||
end sort;
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBB.L86
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBB.L86
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBC.L86
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBC.L86
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBM.L86
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBM.L86
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBS.L86
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/SYSLIBS.L86
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/TIMELOG.DBF
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/TIMELOG.DBF
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
ZWTMP
|
||||
A:SW DBASE TIMELOGX
|
||||
A:SW DBASE TIMELOGY
|
||||
ERA WTMPX.DBF
|
||||
A:SW DBASE TIMELOGZ
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/TIMELOGX.DBF
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/TIMELOGX.DBF
Normal file
Binary file not shown.
567
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/TMP.A86
Normal file
567
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/TMP.A86
Normal file
@@ -0,0 +1,567 @@
|
||||
|
||||
;*****************************************************
|
||||
;*
|
||||
;* Terminal Message Processor
|
||||
;*
|
||||
;* The TMP determines the user interface to MPM.
|
||||
;* Much of the interface is available though
|
||||
;* system calls. This TMP takes advantage of
|
||||
;* as much as possible for simplicity. The TMP
|
||||
;* could, for instance, be easily modified to
|
||||
;* force logins and have non-standard defaults.
|
||||
;*
|
||||
;* With a little more work, The TMP could do all
|
||||
;* command parsing and File Loading instead of
|
||||
;* using the CLI COMMAND FUNCTION. This is also
|
||||
;* the place to AUTOLOAD programs for specific
|
||||
;* users. Suggestions are given in the MP/M-86
|
||||
;* SYSTEM'S GUIDE.
|
||||
;*
|
||||
;*****************************************************
|
||||
|
||||
|
||||
true equ 0ffh
|
||||
false equ 0
|
||||
unknown equ 0
|
||||
mpmint equ 224 ; int vec for mpm
|
||||
|
||||
; mpm86 equ false ; CCP/M if false
|
||||
mpm86 equ true ; MP/M if true
|
||||
|
||||
cr equ 13
|
||||
lf equ 10
|
||||
|
||||
mpm_conout equ 2
|
||||
mpm_conwrite equ 9
|
||||
mpm_conread equ 10
|
||||
mpm_diskselect equ 14
|
||||
mpm_openfile equ 15
|
||||
mpm_closefile equ 16
|
||||
mpm_readfile equ 20
|
||||
mpm_getdefdisk equ 25
|
||||
mpm_setdma equ 26
|
||||
mpm_usercode equ 32
|
||||
mpm_freedrive equ 39
|
||||
mpm_conattach equ 146
|
||||
mpm_condetach equ 147
|
||||
mpm_setdefcon equ 148
|
||||
mpm_clicmd equ 150
|
||||
mpm_parse equ 152
|
||||
mpm_setdeflst equ 160
|
||||
mpm_getdeflst equ 164
|
||||
|
||||
ps_run equ 00 ; on ready list root
|
||||
pf_sys equ 001h ; system process
|
||||
pf_keep equ 002h ; do not terminate
|
||||
|
||||
s_mpmseg equ word ptr 40H ;begin MPM segment
|
||||
s_sysdisk equ byte ptr 04bh ;system disk
|
||||
s_ncns equ byte ptr 47H ;sys. consoles
|
||||
s_version equ word ptr 78h ;ofst ver. str in SUP
|
||||
|
||||
rsp_top equ 0
|
||||
rsp_md equ 008h
|
||||
rsp_pd equ 010h
|
||||
rsp_uda equ 040h
|
||||
rsp_bottom equ 140h
|
||||
|
||||
e_no_memory equ 3 ; cant find memory
|
||||
e_no_pd equ 12 ; no free pd's
|
||||
e_q_full equ 15 ; full queue
|
||||
e_illdisk equ 23 ; illegal disk #
|
||||
e_badfname equ 24 ; illegal filename
|
||||
e_badftype equ 25 ; illegal filetype
|
||||
e_bad_load equ 28 ; bad ret. from BDOS load
|
||||
e_bad_read equ 29 ; bad ret. from BDOS read
|
||||
e_bad_open equ 30 ; bad ret. from BDOS open
|
||||
e_nullcmd equ 31 ; null command sent
|
||||
e_ill_lst equ 37 ; illegal list device
|
||||
e_ill_passwd equ 38 ; illegal password
|
||||
e_abort equ 40 ; aborted in CLI
|
||||
|
||||
;*****************************************************
|
||||
;*
|
||||
;* TMP Shared Code and Constant Area
|
||||
;*
|
||||
;*****************************************************
|
||||
|
||||
cseg
|
||||
org 0
|
||||
|
||||
;===
|
||||
mpm: ; INTERFACE ROUTINE FOR SYSTEM ENTRY POINTS
|
||||
;===
|
||||
|
||||
int mpmint ! ret
|
||||
|
||||
;===
|
||||
tmp: ; PROGRAM MAIN - INITIALIZATION
|
||||
;===
|
||||
|
||||
; set default console # = TMP#
|
||||
mov dl,defconsole ! call setconsole
|
||||
|
||||
; set default disk = system drive if MP/M, A: if CCP/M
|
||||
if mpm86
|
||||
push ds ! mov ds,sysdatseg
|
||||
mov dl,.s_sysdisk ! pop ds
|
||||
endif
|
||||
if not mpm86
|
||||
xor dl,dl
|
||||
endif
|
||||
call setdisk
|
||||
|
||||
if mpm86
|
||||
mov dl,defconsole ;set default user # = console
|
||||
endif
|
||||
if not mpm86
|
||||
xor dl,dl ;all TMPs come up user 0
|
||||
endif ;in CCP/M
|
||||
call setuser
|
||||
|
||||
call attach ;print version
|
||||
push ds ! mov ds,sysdatseg
|
||||
mov dx,.s_version
|
||||
mov ds,.s_mpmseg
|
||||
call print_ds_string ! pop ds
|
||||
call detach
|
||||
|
||||
mov al,defconsole ;look for startup file
|
||||
add tmpnum,al ;works for 1st 10 TMPS
|
||||
mov dx,offset fcb
|
||||
mov cl,mpm_openfile
|
||||
call mpm
|
||||
cmp al,0ffh
|
||||
je nostartup
|
||||
mov dx,offset clicb_cmd
|
||||
mov cl,mpm_setdma
|
||||
call mpm
|
||||
mov dx,offset fcb
|
||||
mov cl,mpm_readfile
|
||||
call mpm
|
||||
push ax
|
||||
mov dx,offset fcb
|
||||
mov cl,mpm_closefile
|
||||
call mpm
|
||||
pop ax
|
||||
test al,al
|
||||
jnz nostartup
|
||||
mov ax,ds
|
||||
mov es,ax
|
||||
mov al,cr
|
||||
mov cx, 128
|
||||
mov di,offset clicb_cmd
|
||||
repne scasb
|
||||
inc di ;include cr lf in line
|
||||
mov byte ptr [di],'$'
|
||||
sub di,offset clicb_cmd
|
||||
mov ax,di
|
||||
sub ax, 2
|
||||
mov read_blen, al
|
||||
mov dx,offset supmsg
|
||||
call printstring
|
||||
mov dx,offset clicb_cmd
|
||||
call print_ds_string
|
||||
jmps startup
|
||||
nostartup:
|
||||
|
||||
; THIS IS WHERE A LOGIN ROUTINE MIGHT
|
||||
; BE IMPLEMENTED. THE DATA FILE THAT
|
||||
; CONTAINS THE USER NAME AND PASSWORD
|
||||
; MIGHT ALSO CONTAIN AN INITIAL DEFAULT
|
||||
; DISK AND USER NUMBER FOR THAT USER.
|
||||
|
||||
;===========
|
||||
nextcommand: ; LOOP FOREVER
|
||||
;===========
|
||||
|
||||
; free drive
|
||||
mov dx,0ffffh ! call freedrive
|
||||
|
||||
; attach console
|
||||
call attach
|
||||
|
||||
; print CR,LF if we just sent command
|
||||
cmp cmdsent,false ! je noclearline
|
||||
mov cmdsent,false
|
||||
call crlf
|
||||
noclearline:
|
||||
|
||||
; set up and print user prompt
|
||||
; get current default user # and disk
|
||||
; this call should be made on every
|
||||
; loop in case the last command
|
||||
; has changed the default.
|
||||
|
||||
mov dl,cr ! call prchar
|
||||
call getuser
|
||||
mov dl,bl ! call prnum
|
||||
call getdisk
|
||||
mov dl,'A' ! add dl,bl
|
||||
call prchar
|
||||
mov dx,offset prompt
|
||||
call print_string
|
||||
|
||||
; Read Command from Console
|
||||
mov dx,offset read_buf ! call conread
|
||||
|
||||
startup:
|
||||
; echo newline
|
||||
mov dl,lf ! call prchar
|
||||
|
||||
; make sure not a null command
|
||||
lea bx,clicb_cmd
|
||||
cmp read_blen,0 ! je gonextcmd
|
||||
cmp byte ptr [bx],';' ! je gonextcmd
|
||||
|
||||
; see if disk change
|
||||
; if 'X:' change def disk to X
|
||||
cmp read_blen,2 ! jne clicall
|
||||
cmp byte ptr 1[bx],':'
|
||||
jne clicall
|
||||
|
||||
; change default disk
|
||||
mov dl,[bx] ;get disk name
|
||||
and dl,5fh ;Upper Case
|
||||
sub dl,'A' ;disk number
|
||||
|
||||
; check bounds
|
||||
cmp dl,0 ! jb gonextcmd
|
||||
cmp dl,15 ! ja gonextcmd
|
||||
|
||||
; select default disk
|
||||
call setdisk
|
||||
gonextcmd: jmp nextcommand
|
||||
|
||||
;=======
|
||||
clicall: ; SEND CLI COMMAND
|
||||
;=======
|
||||
; put null at end of input
|
||||
mov bx,offset clicb_cmd
|
||||
mov al,read_blen ! mov ah,0
|
||||
add bx,ax ! mov byte ptr [bx],0
|
||||
|
||||
; copy command string for error
|
||||
; reporting later and to check
|
||||
; for built in commands...
|
||||
mov cx,64
|
||||
mov si,offset clicb_cmd
|
||||
mov di,offset savebuf
|
||||
push ds ! pop es
|
||||
rep movsw
|
||||
|
||||
; parse front to see if
|
||||
; built in command
|
||||
mov si,offset fcb
|
||||
mov di,offset savebuf
|
||||
call parsefilename
|
||||
jcxz goodparse
|
||||
sub bx,bx ! mov bl,read_blen
|
||||
add bx,offset savebuf
|
||||
mov byte ptr [bx],'$'
|
||||
jmp clierror
|
||||
|
||||
|
||||
goodparse: mov parseret,bx
|
||||
cmp bx,0 ! jne haveatail
|
||||
mov bl,read_blen
|
||||
add bx,offset savebuf
|
||||
haveatail: mov byte ptr [bx],'$' ! inc bx
|
||||
cmp fcb,0 ! je try_builtin
|
||||
jmp not_builtin
|
||||
; is it USER command?
|
||||
|
||||
try_builtin: mov si,offset fcb ! inc si
|
||||
mov di,offset usercmd
|
||||
push cs ! pop es
|
||||
mov cx,4 ! repz cmpsw
|
||||
jnz notuser
|
||||
mov si,offset fcb
|
||||
mov di,parseret
|
||||
cmp di,0 ! je pruser
|
||||
inc di
|
||||
call parsefilename
|
||||
cmp cx,0 ! jne pruser
|
||||
mov si,offset fcb
|
||||
inc si
|
||||
mov dx,[si]
|
||||
call a_to_b
|
||||
cmp bl,15 ! ja usererr
|
||||
mov dl,bl
|
||||
call setuser
|
||||
jmp pruser
|
||||
usererr: mov dx,offset usererrmsg
|
||||
call printstring
|
||||
pruser: mov dx,offset usermsg
|
||||
call printstring
|
||||
call getuser
|
||||
mov dl,bl ! call prnum
|
||||
call crlf
|
||||
jmp nextcommand
|
||||
notuser:
|
||||
mov si,offset fcb ! inc si
|
||||
mov di,offset printercmd
|
||||
push cs ! pop es
|
||||
mov cx,4 ! repz cmpsw
|
||||
jnz notprinter
|
||||
mov si,offset fcb
|
||||
mov di,parseret
|
||||
cmp di,0 ! je prprinter
|
||||
inc di
|
||||
call parsefilename
|
||||
cmp cx,0 ! jne prprinter
|
||||
mov si,offset fcb
|
||||
inc si
|
||||
mov dx,[si]
|
||||
call a_to_b
|
||||
cmp bl,0ffh
|
||||
je printererr
|
||||
mov dl,bl
|
||||
call setlist
|
||||
jcxz prprinter
|
||||
printererr: mov dx,offset printemsg
|
||||
call printstring
|
||||
prprinter: mov dx,offset printermsg
|
||||
call printstring
|
||||
call getlist
|
||||
mov dl,bl ! call prnum
|
||||
call crlf
|
||||
jmp nextcommand
|
||||
notprinter:
|
||||
not_builtin:
|
||||
; initialize Cli Control Block
|
||||
|
||||
mov clicb_net,0
|
||||
; make cli call
|
||||
|
||||
mov cmdsent,true
|
||||
lea dx,clicb ! mov cl,mpm_clicmd
|
||||
call mpm
|
||||
cmp bx,0 ! jne clierror
|
||||
jmp nextcommand
|
||||
|
||||
;========
|
||||
clierror:
|
||||
;========
|
||||
; Cli call unsuccesful, analyze and display err msg
|
||||
; input: CX = ERROR CODE
|
||||
|
||||
mov si,(offset clierrtab)-4
|
||||
nexterr:
|
||||
add si,4
|
||||
cmp word ptr [si],0ffffh ! je unknownerr
|
||||
cmp cx,[si] ! jne nexterr
|
||||
unknownerr:
|
||||
mov dx,2[si]
|
||||
; jmps showerr
|
||||
|
||||
|
||||
showerr: ; Print Error String
|
||||
;------- ; input: DX = address of Error
|
||||
; string in CSEG
|
||||
; if DX=0 then NULL COMMAND
|
||||
|
||||
cmp dx,0 ! jne perr
|
||||
mov cmdsent,false ! jmp nextcommand
|
||||
perr: push dx
|
||||
mov dx,offset savebuf ! call print_ds_string
|
||||
mov dl,':' ! call prchar
|
||||
mov dl,' ' ! call prchar
|
||||
pop dx
|
||||
call printstring ! call crlf
|
||||
jmp nextcommand
|
||||
|
||||
parsefilename: ; SI = fcb DI = string
|
||||
mov cx,mpm_parse
|
||||
mov bx,offset pcb
|
||||
mov [bx],di ! mov 2[bx],si
|
||||
mov dx,bx ! jmp mpm
|
||||
a_to_b: ;dl = 1st char, dh = 2nd char
|
||||
cmp dh,' ' ! jne atob2char
|
||||
mov dh,dl ! mov dl,'0'
|
||||
atob2char: cmp dh,'0' ! jb atoberr
|
||||
cmp dh,'9' ! ja atoberr
|
||||
cmp dl,'0' ! jb atoberr
|
||||
cmp dl,'9' ! ja atoberr
|
||||
sub dh,'0' ! sub dl,'0'
|
||||
mov ax,0 ! mov al,dl
|
||||
push dx ! mov cl,10
|
||||
mul cl ! pop dx
|
||||
mov dl,dh ! mov dh,0
|
||||
add ax,dx
|
||||
mov bx,ax ! ret
|
||||
atoberr: mov bl,0ffh ! ret
|
||||
prnum: ; dl = num (0-15)
|
||||
cmp dl,10 ! jb prnum_one
|
||||
push dx
|
||||
mov dl,'1' ! call prchar
|
||||
pop dx ! sub dl,10
|
||||
prnum_one: add dl,'0'
|
||||
; jmp prchar
|
||||
prchar: mov cl,mpm_conout ! jmp mpm1
|
||||
getuser: mov dl,0ffh
|
||||
setuser: mov cl,mpm_usercode ! jmp mpm1
|
||||
crlf: mov dx,offset crlfstr
|
||||
;jmp printstring
|
||||
printstring: push ds ! mov ax,cs ! mov ds,ax
|
||||
call print_ds_string ! pop ds ! ret
|
||||
print_ds_string:mov cl,mpm_conwrite ! jmps mpm1
|
||||
setconsole: mov cl,mpm_setdefcon ! jmps mpm1
|
||||
setdisk: mov cl,mpm_diskselect ! jmps mpm1
|
||||
getdisk: mov cl,mpm_getdefdisk ! jmps mpm1
|
||||
setlist: mov cl,mpm_setdeflst ! jmps mpm1
|
||||
getlist: mov cl,mpm_getdeflst ! jmps mpm1
|
||||
attach: mov cl,mpm_conattach ! jmps mpm1
|
||||
detach: mov cl,mpm_condetach ! jmps mpm1
|
||||
conread: mov cl,mpm_conread ! jmps mpm1
|
||||
freedrive: mov cl,mpm_freedrive ! jmps mpm1
|
||||
mpm1: jmp mpm
|
||||
|
||||
;*****************************************************
|
||||
;*
|
||||
;* CONSTANTS (IN SHARED CODE SEGMENT)
|
||||
;*
|
||||
;*****************************************************
|
||||
|
||||
clierrtab dw e_nullcmd, 0 ;null command
|
||||
dw e_no_memory, memerr ;No memory
|
||||
dw e_no_pd, pderr ;No unused PD
|
||||
dw e_badfname, fnameerr;Ill. command
|
||||
dw e_illdisk, fnameerr;Ill. disk
|
||||
dw e_ill_passwd, fnameerr;Ill. password
|
||||
dw e_badftype, fnameerr;Ill. type
|
||||
dw e_bad_load, loaderr ;
|
||||
dw e_bad_read, loaderr ;
|
||||
dw e_bad_open, openerr ;
|
||||
dw e_q_full, qfullerr;
|
||||
dw e_abort, aborterr;
|
||||
|
||||
; a few extra entries for future errors
|
||||
|
||||
dw 0ffffh, catcherr;
|
||||
dw 0ffffh, catcherr;
|
||||
dw 0ffffh, catcherr;
|
||||
dw 0ffffh, catcherr;
|
||||
|
||||
prompt db '>$'
|
||||
crlfstr db 13,10,'$'
|
||||
memerr db '?Not Enough Memory$'
|
||||
pderr db '?PD Table Full$'
|
||||
fnameerr db '?Bad File Spec$'
|
||||
catcherr rb 0 ;Unknown Errs give
|
||||
loaderr db '?Load Error$' ; Load Error Msg
|
||||
openerr db '?Can''t Find Command$'
|
||||
qfullerr db '?RSP Command Que Full$'
|
||||
aborterr db '?CLI Abort$'
|
||||
|
||||
usererrmsg db 13,10,'Invalid User Number,'
|
||||
db ' IGNORED',13,10,'$'
|
||||
usermsg db 13,10,'User Number = $'
|
||||
|
||||
printemsg db 13,10,'Invalid Printer Number,'
|
||||
db ' IGNORED',13,10,'$'
|
||||
printermsg db 13,10,'Printer Number = $'
|
||||
|
||||
usercmd db 'USER '
|
||||
printercmd db 'PRINTER '
|
||||
|
||||
supmsg db 'Start up command: $'
|
||||
|
||||
;*****************************************************
|
||||
;*
|
||||
;* TMP Data Area - this area is copied once for
|
||||
;* each system console. The 'defconsole'
|
||||
;* field is unique for each copy
|
||||
;* - Each Data Area is run by a common
|
||||
;* shared code segment.
|
||||
;*
|
||||
;*****************************************************
|
||||
|
||||
DSEG
|
||||
org rsp_top
|
||||
|
||||
sysdatseg dw 0
|
||||
sdatvar dw s_ncns
|
||||
defconsole db 0,0
|
||||
dw 0,0,0,0,0
|
||||
|
||||
org rsp_pd
|
||||
|
||||
pd dw 0,0 ; link fields
|
||||
db ps_run ; status
|
||||
db 198 ; priority
|
||||
dw pf_sys+pf_keep ; flags
|
||||
db 'Tmp ' ; Name
|
||||
dw offset uda/10h ; uda seg
|
||||
db 0,0 ; disk,user
|
||||
db 0,0 ; ldisk,luser
|
||||
dw 0ffffh ; mem
|
||||
dw 0,0 ; dvract,wait
|
||||
db 0,0 ; org,net
|
||||
dw 0 ; parent
|
||||
db 0,0 ; cns,abort
|
||||
db 0,0 ; cin,cout
|
||||
db 0,0 ; lst,sf3
|
||||
db 0,0 ; sf4,sf5
|
||||
dw 0,0 ; reserved
|
||||
dw 0,0 ; pret,scratch
|
||||
|
||||
org rsp_uda
|
||||
|
||||
uda dw 0,offset dma,0,0 ;0-7
|
||||
dw 0,0,0,0 ;8-fh
|
||||
dw 0,0,0,0 ;10-17
|
||||
dw 0,0,0,0 ;18-1f
|
||||
dw 0,0,0,0 ;20-27
|
||||
dw 0,0,0,0 ;28-2f
|
||||
dw 0,0,offset stack_top,0 ;30-37
|
||||
dw 0,0,0,0 ;38-3f
|
||||
dw 0,0,0,0 ;40-47
|
||||
dw 0,0,0,0 ;48-4f
|
||||
dw 0,0,0,0 ;50-57
|
||||
dw 0,0,0,0 ;58-5f
|
||||
dw 0,0,0,0 ;60-67
|
||||
|
||||
|
||||
org rsp_bottom
|
||||
|
||||
dma rb 128
|
||||
|
||||
stack dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
dw 0cccch,0cccch,0cccch
|
||||
stack_top dw offset tmp ; code offset
|
||||
dw unknown ; code seg
|
||||
dw unknown ; init. flags
|
||||
|
||||
maxcmdlen equ 128
|
||||
|
||||
; the Read Console Buffer and the
|
||||
; Cli Control Block share the same memory
|
||||
|
||||
read_buf rb 0
|
||||
read_maxcmd db 128
|
||||
clicb rb 0
|
||||
clicb_net rb 0
|
||||
read_blen rb 1
|
||||
clicb_cmd rb maxcmdlen + 1
|
||||
|
||||
cmdsent db false
|
||||
|
||||
parseret dw 0
|
||||
|
||||
pcb dw offset savebuf
|
||||
dw offset fcb
|
||||
|
||||
fcb db 0, '$'
|
||||
tmpnum db '0'
|
||||
db '$ SUP'
|
||||
rb 20
|
||||
db 0 ;current record
|
||||
|
||||
savebuf rb 128
|
||||
|
||||
db 0 ;make sure hex is formed
|
||||
end
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
0:8:0:81n:console:System support
|
||||
1:8:0:81n:tty1:Interfacer 3 port 0
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
0:8:0:81n:console:System support
|
||||
|
||||
9
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WIND.INP
Normal file
9
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WIND.INP
Normal file
@@ -0,0 +1,9 @@
|
||||
wind=a:crt0.sml,
|
||||
wind,
|
||||
windout,
|
||||
logo2,
|
||||
bios,
|
||||
a:oscrt.sml[search,libsyms],
|
||||
a:machdep.sml[search,libsyms],
|
||||
a:edata
|
||||
|
||||
11
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WINDED.INP
Normal file
11
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WINDED.INP
Normal file
@@ -0,0 +1,11 @@
|
||||
wind=a:crt0.sml,
|
||||
wind,
|
||||
winded,
|
||||
windsc,
|
||||
windout,
|
||||
logo2,
|
||||
bios,
|
||||
a:oscrt.sml[search,libsyms],
|
||||
a:machdep.sml[search,libsyms],
|
||||
a:edata
|
||||
|
||||
62
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WM.HLP
Normal file
62
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WM.HLP
Normal file
@@ -0,0 +1,62 @@
|
||||
VIDEO MODE SUMMARY (TYPE ^J FOR NEXT FRAME)
|
||||
|
||||
^O INSERTION ON/OFF RUB DELETE CHR LEFT
|
||||
^S CURSOR LEFT CHAR ^G DELETE CHR RIGHT
|
||||
^D CURSOR RIGHT CHAR ^\ DELETE WORD LEFT
|
||||
^A CURSOR LEFT WORD ^T DELETE WORD RIGHT
|
||||
^F CURSOR RIGHT WORD ^U DELETE LINE LEFT
|
||||
^Q CURSOR RIGHT TAB ^K DELETE LINE RIGHT
|
||||
^E CURSOR UP LINE ^Y DELETE WHOLE LINE
|
||||
^X CURSOR DOWN LINE ^I PUT TAB IN FILE
|
||||
^^ CURSOR TOP/BOT (^HOME) ^N PUT CRLF IN FILE
|
||||
^B CURSOR RIGHT/LEFT ^@ DO NEXT CHR 4X
|
||||
^W FILE DOWN 1 LINE ^P NEXT CHR IN FILE
|
||||
^Z FILE UP 1 LINE ^V VIO CONTROL
|
||||
^R FILE DOWN SCREEN ESC EXIT VIDEO MODE
|
||||
^C FILE UP SCREEN ^J DISPLAY THIS
|
||||
COMMAND MODE SUMMARY (TYPE ^J FOR NEXT FRAME)
|
||||
|
||||
+- MEANS + OR - ALLOWED HERE, + ASSUMED IF OMITTED
|
||||
@ MEANS CARRIAGE RETURN OR LINE FEED NECESSARY HERE
|
||||
$ MEANS ESC OR ^Z OR CARRIAGE RETURN NECESSARY HERE
|
||||
n MEANS A NUMBER, 1 ASSUMED IF OMITTED, # = 65535
|
||||
|
||||
+-nC MOVE n CHARACTERS +-nD DELETE n CHARACTERS
|
||||
+-nL MOVE n LINES +-nK KILL(DELETE) n LINES
|
||||
+-nT TYPE n LINES nZ SLEEP n SECONDS
|
||||
+-nP MOVE, TYPE n PAGES +-n@ MOVE n LINES, TYPE 1
|
||||
|
||||
nItext$ INSERT text n TIMES
|
||||
I@ ENTER INSERT MODE (ESC OR ^Z EXITS MODE)
|
||||
A@, nAtext$ (APPEND) DO 1L THEN JUST LIKE INSERT
|
||||
n<....> LOOP: REPEAT .... n TIMES (DEFAULT = 65535)
|
||||
COMMAND MODE SUMMARY (TYPE ^J FOR NEXT FRAME)
|
||||
|
||||
+-nFkey$ (FIND) SHORT SEARCH FOR key n TIMES
|
||||
+-nNkey$ (NEXT) LONG SEARCH FOR key n TIMES
|
||||
+-nSkey$text$ SUBSTITUTE AFTER SHORT SEARCH n TIMES
|
||||
+-nRkey$text$ (REPLACE) SUBSTITUTE AFTER LONG SEARCH
|
||||
/F,/N,/S,/R SAME, EXCEPT EXIT <..> OR QX IF NOT FOUND
|
||||
|
||||
Y[d:]name.typ$ (YANK) READS FILE IN AT CURSOR
|
||||
nW[d:]name.typ$ WRITE n LINES INTO THE FILE NAMED
|
||||
|
||||
^N CRLF INSIDE TEXT OR KEY ^Y ESC INSIDE TEXT OR KEY
|
||||
^A MATCHES ANY IN KEY ^A MATCHES SEPERATOR IN KEY
|
||||
^OX MATCHES NOT X IN KEY
|
||||
COMMAMD MODE SUMMARY (TYPE ^J TO RETURN TO EDITING)
|
||||
|
||||
nQP PUT n LINES INTO Q BUFFER, DELETE FROM FILE
|
||||
n/QP APPEND n LINES TO Q BUFFER, DELETE FROM FILE
|
||||
nQG (GET) COPY Q BUFFER INTO FILE n TIMES
|
||||
QT TYPE Q BUFFER
|
||||
QK (KILL) CLEAR Q BUFFER
|
||||
QX EXECUTE COMMANDS IN Q BUFFER
|
||||
QLtext$ (LOAD) PUT text INTO Q BUFFER
|
||||
n/QLtext$ APPEND text TO Q BUFFER n TIMES
|
||||
|
||||
V ENTER VIDEO MODE N! PUT CHR CODE N INTO FILE
|
||||
; ALL FOLLOWING IS COMMENT E END EDIT
|
||||
H END EDIT AND START OVER Q (QUIT) ABANDON EDIT
|
||||
O RETURN TO ORIGINAL FILE ^J DISPLAY HELP FILE
|
||||
|
||||
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WS.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WS.CPM
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WSA.CPM
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WSA.CPM
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WSMSGS.OVR
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WSMSGS.OVR
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WSOVLY1.OVR
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WSOVLY1.OVR
Normal file
Binary file not shown.
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WTMP.DBF
Normal file
BIN
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/WTMP.DBF
Normal file
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
pip ttys=ttysxfr.off
|
||||
;
|
||||
; remember to SYNC
|
||||
; --- BEFORE ___
|
||||
; hitting "RESET"
|
||||
;
|
||||
|
||||
12
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/XFRON.SUB
Normal file
12
MPM OPERATING SYSTEMS/MPM-86/MISC DRI DISKS/10/XFRON.SUB
Normal file
@@ -0,0 +1,12 @@
|
||||
pip ttys=ttysxfr.on
|
||||
;
|
||||
; remember to SYNC
|
||||
; --- BEFORE ___
|
||||
; hitting "RESET"
|
||||
;
|
||||
; after rebooting
|
||||
; remember to PSOFTCOM
|
||||
; ----- BEFORE -----
|
||||
; running SOFTCOM
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user