home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
utility
/
midinet.arc
/
ANETMCTR.MOD
Wrap
Text File
|
1992-10-31
|
9KB
|
214 lines
MODULE Control; (* by fred brooks logictek san diego ca PD software *)
IMPORT GEMVDIbase, GEMAESbase, AESMenus, AESForms, AESObjects, AESEvents,
AESResources ;
FROM AESGraphics IMPORT GrafMouse;
FROM AESObjects IMPORT ObjectDraw;
FROM MYLIB IMPORT InitResource,Terminate,
DeselectObject,
dTree,MenuTree,x,y,w,h,InitWindow,CloseWindow;
FROM SYSTEM IMPORT ADR,ADDRESS,CODE,TSIZE;
FROM Strings IMPORT String, Concat;
FROM XBIOS IMPORT SuperExec;
FROM BIOS IMPORT DriveSet;
FROM GEMDOS IMPORT ExecMode,Exec,Open,Close,Read,Write,Create;
FROM Streams IMPORT StreamKinds;
FROM M2Conversions IMPORT ConvertToCardinal;
TYPE
SequenceNr = [0..1];
control = RECORD
magic : LONGCARD;
USER : CARDINAL;
REMOTEUSER : CARDINAL;
reset : BOOLEAN;
networkactive : BOOLEAN;
remotedrive : CARDINAL;
drivemap : DriveSet;
nextframetosend : ARRAY [0..15] OF SequenceNr;
frameexpected : ARRAY [0..15] OF SequenceNr;
sendreset : BOOLEAN;
END;
consave = RECORD
magic : LONGCARD;
USER : CARDINAL;
REMOTEUSER : CARDINAL;
reset : BOOLEAN;
networkactive : BOOLEAN;
END;
CONST
resourcefilename = "ANETMIDI.RSC" ;
RTS = 04E75H ;
CONST
ABOUT = 1 ;
ABOUTOK = 1 ;
MENU = 0 ;
DESK = 3 ;
MODE = 5 ;
FILE = 4 ;
USERID = 6 ;
OPTIONS = 7 ;
SEQ = 8 ;
ABOUTNET = 11 ;
QUIT = 21 ;
LOAD = 20 ;
INT = 23 ;
MODE2 = 25 ;
MODE1 = 24 ;
REBOOTOK = 27 ;
USERID1 = 29 ;
USERID2 = 30 ;
USERID3 = 31 ;
USERID5 = 33 ;
USERID4 = 32 ;
USERID6 = 34 ;
USERID7 = 35 ;
USERID9 = 37 ;
USERID8 = 36 ;
USERID10 = 38 ;
USERID11 = 39 ;
USERID13 = 41 ;
USERID12 = 40 ;
USERID14 = 42 ;
USERID15 = 43 ;
USERID16 = 44 ;
DRVA = 46 ;
DRVB = 47 ;
DRVD = 49 ;
DRVC = 48 ;
DRVE = 50 ;
DRVF = 51 ;
SEQUP = 53 ;
S00 = 54 ;
S10 = 55 ;
S11 = 57 ;
S01 = 56 ;
VAR status : INTEGER;
resourcename,nulls,on,off,netdrv : ARRAY [0..16] OF CHAR ;
tempchar : ARRAY [0..2] OF CHAR;
char : CHAR;
result,handle : INTEGER ;
done,OK : BOOLEAN;
Cptr [0210H] : ADDRESS;
Dptr [0214H] : DriveSet;
Mptr [0218H] ,count : LONGCARD;
C : POINTER TO control;
CSAVE : POINTER TO consave;
drvnr,i,usernumber,e : CARDINAL;
idnumber : ARRAY [0..15] OF String;
PROCEDURE DoAboutDialog ;
BEGIN
AESResources.ResourceGetAddr(GEMAESbase.RTree,ABOUT,dTree) ;
AESForms.FormCenter(dTree,x,y,w,h) ;
AESForms.FormDialogue(GEMAESbase.FormStart,0,0,0,0,x,y,w,h) ;
AESForms.FormDialogue(GEMAESbase.FormGrow,0,0,0,0,x,y,w,h) ;
ObjectDraw(dTree,0,10,x,y,w,h) ;
result := AESForms.FormDo(dTree,-1) ;
DeselectObject(ABOUT,ABOUTOK) ;
AESForms.FormDialogue(GEMAESbase.FormShrink,0,0,0,0,x,y,w,h) ;
AESForms.FormDialogue(GEMAESbase.FormFinish,0,0,0,0,x,y,w,h) ;
END DoAboutDialog ;
(* ------------------------------------------------------------------- *)
PROCEDURE Events ;
(* Handle resource events *)
VAR
pipeBuff : ARRAY [0..9] OF INTEGER ;
PROCEDURE SelectMenu( Menu, Item : INTEGER ) ;
BEGIN
CASE Menu OF
DESK : IF Item = ABOUTNET THEN
DoAboutDialog ;
END ; |
FILE : CASE Item OF
LOAD : C^.networkactive:=(NOT C^.networkactive); |
QUIT : done := TRUE ; |
ELSE
END ;
IF C^.networkactive THEN
AESMenus.MenuText(MenuTree,LOAD,ADR(on));
ELSE
AESMenus.MenuText(MenuTree,LOAD,ADR(off));
END; |
MODE : CASE Item OF
INT : Create("ANETMIDI.INT",0,handle);
count:=TSIZE(consave);
Write(handle,count,CSAVE);
OK:=Close(handle); |
REBOOTOK : CODE(03F3CH,0020H,04E41H,
042B9H,0,0420H,042B9H,0,043AH,
02079H,0,4,04ED0H) ; |
ELSE
END ; |
USERID : CASE Item OF
USERID1 : i:=0 ; |
USERID2 : i:=1 ; |
USERID3 : i:=2 ; |
USERID4 : i:=3 ; |
USERID5 : i:=4 ; |
USERID6 : i:=5 ; |
USERID7 : i:=6 ; |
USERID8 : i:=7 ; |
USERID9 : i:=8 ; |
USERID10 : i:=9 ; |
USERID11 : i:=10 ; |
USERID12 : i:=11 ; |
USERID13 : i:=12 ; |
USERID14 : i:=13 ; |
USERID15 : i:=14 ; |
USERID16 : i:=15 ; |
ELSE
END ;
AESMenus.MenuItemCheck(MenuTree,29+C^.REMOTEUSER,0);
FOR e:=0 TO 30 DO
IF (idnumber[0][e]=0C) OR (idnumber[0][e]= "=") THEN
idnumber[0][e]:=0C;
END;
END;
ConvertToCardinal(idnumber[0],OK,usernumber);
IF OK THEN
C^.USER := usernumber; (* set local id *)
END;
FOR e:=0 TO 30 DO
IF (idnumber[i][e]=0C) OR (idnumber[i][e]= "=") THEN
idnumber[i][e]:=0C;
END;
END;
ConvertToCardinal(idnumber[i],OK,usernumber);
IF OK THEN
C^.REMOTEUSER := usernumber; (* set remote id *)
END;
AESMenus.MenuItemCheck(MenuTree,29+C^.REMOTEUSER,1); |
SEQ : CASE Item OF
SEQUP : C^.sendreset:= TRUE ; |
ELSE
END ; |
ELSE
END ;
(* put header back : i : ineODE TEoguegic US [0eto :Ç DOL⓪n ;
gic IMM Ms EM TE :
FRO2 SIMPO2C : CTEIZTEODE(✓ז@ ⇧A°`~)⇧&dOÿFז⑧éC ÅIAa®N⇨±ז✓✓A⓪:2î⑧a@)יÿFÿFúסג[)£Cø&AAJϕכÿ⌐gyגºÿFÿd±ז³@ÿFú¢g#$qΣי|b)τ)@ XAA^££ndגAA^τ,dτג[⇧Cøג[N⇨π[ϕ|AA^τ[¶ºYףºל³ןúסL)י⌐g##LLסס<z)י⌐Jז@ÿFÿ'f④%££#¡¢CàגögC:Œ±ז&Aπ[ÿFÿןןC⇨ϕº@AAA[&ססלñ)י#¡l{%))hç<N@±hçCף&U①צרb╱ף{⑨CøץτºA°2add⇧⇧4aÀגº♪A&AπijC:③❎³ןùoÄ\✓%⇨ϕτé`¡JJ⇦⑤º#¡l\✓♪)``דA&JgC:⇨⇩Jז✓✓)τזüé`$Jז&Aπ⑧é⇩)g,גt<Nãπ[ÿ~)iAA^τºÿLLקC ⑧a④%ə¬[כ@AaÀ¶ºJז✓✓ז@⑦əàiLLסYף♪d±F⇨Æϕº⇧⇧##ij[&✓כa✓✓⓪:$✓✓ג[⇧əLL✓✓גaÀaH① Pœ %①)gg⇨⑥✓gJgÑX✓éé,œ LLסf④π[ÿf⌐Yז✓✓⓪ªז@⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦Poo¶ÿ~)4∧~AN⇨π:Œl|⌠!WJז✓✓⓪ªג¥££]£⇧⇧)ש%%✓❎%aÀaסNכ%aAA^τº££מBJ44i⇨⇨ØëA¢(Æ44X@ÿ⇧)£ëB±זהIA44Ç⇧GJⁿ@ACë♪♪ijNÇa¡`③❎①IJAAⁿ♪Aô✓a` )τ✓³ן2NÇ8⓪|ⁿב ◆$⇦╱⓪ `⑧⇧◆0 \@⇧`⑨╱⇨ ijy⇨ ⓪³ƒ⇧⇦ ⓪`בב?@⇧@⑧⑧α◆⇧s◆◆wy⇨<!✓·Ç⇧⇨τ⇧S:::I°╱D`@⇨ןהp#⇩⇨α'⑧⇨t⇨✓â⑨◆Y⇧✓✓◆Ç≡c⑨°ⁿH<⑧✓7ⁿ②βôxÿ≥⇧✓⑧IJ`⇩ij✓xxij|⑧ &IJ`α"⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⑦⇩ו"Æ⇦ 3~ÇÇijDZ⓪③⇦2 ⓪@Ç~Ç◆Ç⇩^⓪Ç∩·ij`````````````````````````````````````````````````````````````⇧⑧!@ז0⇨⇦<®`①z⇨