home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ENTERPRS
/
CPM
/
UTILS
/
S
/
ZSIM12.ZIP
/
EMUMENU.DEF
< prev
next >
Wrap
Text File
|
1992-01-12
|
2KB
|
57 lines
DEFINITION MODULE EmuMenu;
FROM SYSTEM IMPORT BYTE,WORD;
TYPE PhysDiskPars = RECORD
cpm_drive : BYTE;
first_phys_sec : BYTE;
phys_tracks : BYTE;
phys_sec_pt : BYTE;
bytes_per_sec : BYTE;
autologin_flag : BYTE;
END;
dpb = RECORD
spt : WORD;
bsh : BYTE;
blm : BYTE;
exm : BYTE;
dsm : WORD;
drm : WORD;
al0 : BYTE;
al1 : BYTE;
cks : WORD;
off : WORD;
END;
DPBPtr = POINTER TO dpb;
PDPPtr = POINTER TO PhysDiskPars;
PROCEDURE DoMenue(x,y:CARDINAL;messages:ARRAY OF CHAR;
VAR WinSave:ARRAY OF CHAR;VAR res:CARDINAL);
(* Pop Up Menue, obere linke Ecke des Rahmens bei x,y.
messages = String mit darzustellenden Menuepunkten; Stringende = 0C.
Menuepunkte werden durch | getrennt, auch nach letztem Menuepunkt
MUSS | stehen.
Jeder Menuepunkt darf durch Druecken eines einzigen Zeichens angewaehlt
werden, das hell dargestellt wird. Diesem Zeichen muss der Backslash \
vorangestellt werden.
Es duerfen maximal 20 Menuepunkte sein.
WinSave muss genug Platz enthalten, um Hintergrund + dessen Attribute
abzuspeichern, = (Laengster Menuepunkt+2)*2*(Menuepunkte+2)
*)
PROCEDURE EditDPB(p:DPBPtr;q:PDPPtr;
VAR WinSave:ARRAY OF CHAR;VAR OK:BOOLEAN);
(* Len WinSave=20*18*2=720 *)
PROCEDURE InputString(VAR WinSave,s,p:ARRAY OF CHAR);
(* Es wird vorrausgesetzt, daß prompt p < 30 und string s < 30 *)
PROCEDURE About(VAR WinSave:ARRAY OF CHAR);
(* Author ausgeben *)
END EmuMenu.