Home » Archimedes archive » Micro User » MU 1991-05.adf » Listings » ModuleHead

ModuleHead

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1991-05.adf » Listings
Filename: ModuleHead
Read OK:
File size: 3181 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > <BasicSave$dir>.ModuleHead
   20REM By Paul Mason
   30REM (c) The Micro User
   40
   50MODE 0
   60PROCinit
   70PROCgetinfo
   80END
   90
  100DEFPROCinit
  110DIM bin% 256
  120DIM swiname$(63),commname$(63),flags%(63)
  130DIM minparams%(63),maxparams%(63)
  140DIM actualcommand%(63),gsmap%(63)
  150DIM syntaxmess$(63),helpmess$(63)
  160DIM menuf$(31),menun$(31)
  170PROCinitallyoucan
  180ENDPROC
  190
  200DEFPROCinitallyoucan
  210start%=0
  220init%=0
  230finish%=0
  240service%=0
  250title$="TestMod"
  260commands%=0
  270swi%=0
  280version$="1.00"
  290noofswis%=0
  300chunknumber$="000000000001"
  310quit%=FALSE
  320noofcomms%=0
  330swiname$()=""
  340commname$()=""
  350flags%()=0
  360minparams%()=0
  370maxparams%()=0
  380actualcommand%()=-1
  390gsmap%()=0
  400syntaxmess$()=""
  410helpmess$()=""
  420commname$=""
  430swiname$=""
  440ENDPROC
  450
  460DEFPROCsave(n$)
  470RESTORE
  480fn%=OPENOUTn$
  490end%=FALSE
  500REPEAT
  510  READ data$
  520  CASE data$ OF
  530    WHEN "start"        : PROCtrue(start%,data$)
  540    WHEN "init"         : PROCtrue(init%,data$)
  550    WHEN "finish"       : PROCtrue(finish%,data$)
  560    WHEN "service"      : PROCtrue(service%,data$)
  570    WHEN "title"        : PROCtitle
  580    WHEN "help"         : PROChelp
  590    WHEN "commandtable" : PROCtrue(commands%,"commandtable")
  600    WHEN "swih"         : PROCtrue(swi%,data$)
  610    WHEN "swin"         : PROCtrue(swi%,data$)
  620    WHEN "00"           : PROC00
  630    WHEN "01"           : PROC01
  640    WHEN "02"           : PROC02
  650    WHEN "03"           : PROC03
  660    WHEN "04"           : PROC04
  670    WHEN "05"           : PROC05
  680    WHEN "06"           : PROC06
  690    WHEN "07"           : PROCcommandit
  700                          end%=TRUE
  710    ENDCASE
  720  IF NOT end% AND data$<>"" BPUT#fn%,data$
  730  UNTIL end%
  740CLOSE #fn%
  750ENDPROC
  760
  770DEFPROCtrue(true%,data$)
  780IF true% THEN
  790    data$="DCD "+data$
  800  ELSE
  810    data$="DCD 0"
  820  ENDIF
  830ENDPROC
  840
  850DEFPROCcommandit
  860data$=""
  870IF commands% THEN
  880    BPUT#fn%,".commandtable"
  890    FOR comm%=0 TO noofcomms%-1
  900      BPUT#fn%,"DCB "+CHR$34+commname$(comm%)+CHR$34
  910      BPUT#fn%,"DCB 0"
  920      BPUT#fn%,"ALIGN"
  930      IF actualcommand%(comm%) THEN
  940          BPUT#fn%,"DCD command"+STR$comm%
  950          BPUT#fn%,"DCD &"+STR$~flags%(comm%)+STR$~maxparams%(comm%)+STR$~gsmap%(comm%)+STR$~minparams%(comm%)
  960        ELSE
  970          BPUT#fn%,"DCD 0"
  980          BPUT#fn%,"DCD 0"
  990        ENDIF
 1000      IF syntaxmess$(comm%)<>"" THEN
 1010          BPUT#fn%,"DCD syntax"+STR$comm%
 1020        ELSE
 1030          BPUT#fn%,"DCD 0"
 1040        ENDIF
 1050      IF helpmess$(comm%)<>"" THEN
 1060          BPUT#fn%,"DCD help"+STR$comm%
 1070        ELSE
 1080          BPUT#fn%,"DCD 0"
 1090        ENDIF
 1100      NEXT
 1110    BPUT#fn%,"DCD 0"
 1120    FOR comm%=0 TO noofcomms%-1
 1130      IF helpmess$(comm%)<>"" THEN
 1140          BPUT#fn%,".help"+STR$comm%
 1150          BPUT#fn%,"DCB "+CHR$34+helpmess$(comm%)+CHR$34
 1160          BPUT#fn%,"DCB 13"
 1170          IF syntaxmess$(comm%)="" THEN
 1180              BPUT#fn%,"DCB 0"
 1190              BPUT#fn%,"ALIGN"
 1200            ENDIF
 1210        ENDIF
 1220      IF syntaxmess$(comm%)<>"" THEN
 1230          BPUT#fn%,".syntax"+STR$comm%
 1240          BPUT#fn%,"DCB "+CHR$34+syntaxmess$(comm%)+CHR$34
 1250          BPUT#fn%,"DCB 0"
 1260          BPUT#fn%,"ALIGN"
 1270        ENDIF
 1280      NEXT
 1290ENDPROC
 1300
 1310DEFPROC00 : REM chunk number
 1320IF NOTswi% data$="DCD 0" ELSE data$="DCD %10"+chunknumber$+"000000"
 1340ENDPROC
 1341
 1350DEFPROC01 : REM title
 1360BPUT#fn%,"DCB "+CHR$34+title$+CHR$34
 1370BPUT#fn%,"DCB 0"
 1380data$="ALIGN"
 1390ENDPROC
 1391
 1400DEFPROC02 : REM help
 1410temp$="DCB "+CHR$34+title$+CHR$34
 1420IF LENtitle$<16 temp$+="+CHR$9"
 1430IF LENtitle$<8 temp$+="+CHR$9"
 1440temp$+="+"+CHR$34+version$+" ("+CHR$34+"+MID$(TIME$,5,11)+"+CHR$34+")"+CHR$34
 1450BPUT#fn%,temp$
 1460BPUT#fn%,"DCB 0"
 1470data$="ALIGN"
 1480ENDPROC
 1481
 1490DEFPROC03 : REM swi warning
 1500data$=""
 1510IF NOTswi% RESTORE 5570
 1520ENDPROC
 1521
 1530DEFPROC04 : REM swi names
 1540BPUT#fn%,"DCB "+CHR$34+title$+CHR$34
 1550BPUT#fn%,"DCB 0"
 1560FOR swinum%=0 TO noofswis%-1
 1570BPUT#fn%,"DCB "+CHR$34+swiname$(swinum%)+CHR$34
 1580BPUT#fn%,"DCB 0"
 1590NEXT
 1600BPUT#fn%,"DCB 0"
 1610data$="ALIGN"
 1620ENDPROC
 1621
 1630DEFPROC05 : REM swi table
 1640data$=""
 1650FOR swinum%=0 TO noofswis%-1
 1660BPUT#fn%,"B swi"+STR$swinum%
 1670NEXT
 1680ENDPROC
 1690DEFPROC06 : REM swi error
 1700BPUT#fn%,"DCB "+CHR$34+"Unknown "+title$+" operation"+CHR$34
 1710BPUT#fn%,"DCB 0"
 1720data$="ALIGN"
 1730ENDPROC
 1740DEFPROCgetinfo
 1750REPEAT
 1760ONERROROFF
 1770CLS
 1780PROCmenu("New module>FNnewmodule,Save module>FNsavemodule,Name module>FNnamemodule,Commands>FNcommands,SWIs>FNswis,Code>FNcode")
 1790UNTIL quit%
 1800ENDPROC
 1810DEFFNnewmodule
 1820CLS
 1830PRINT"Warning - All current data will be lost!"
 1840PRINT'"Are you sure you want to proceed?"
 1850PRINT''
 1860PROCmenu("Yes>FNclearspace,No>FNnoresult")
 1870=0
 1880DEFFNclearspace
 1890PROCinitallyoucan
 1900=0
 1910DEFFNnoresult
 1920=7
 1930DEFFNsavemodule
 1940CLS
 1950INPUT"Enter filename to save as : "fname$
 1960ONERRORVDU7:PROCgetinfo
 1970IF fname$="" =7
 1980PROCsave(fname$)
 1990=0
 2000DEFFNnamemodule
 2010CLS
 2020PRINT"Current module name is : ";title$
 2030INPUT"New name is            : "newtit$
 2040IF newtit$="" =7
 2050IF LEN(newtit$)>15 =7
 2060title$=newtit$
 2070=0
 2080DEFFNcommands
 2090CLS
 2100PROCmenu("Create command>FNcreatecommand,Edit command>FNeditcommand,Exit>FNnoresult")
 2110=0
 2120DEFFNcreatecommand
 2130IF noofcomms%=64 =7
 2140CLS
 2150INPUT"Enter command name : "comm2name$
 2160PROCtestforcommand(comm2name$)
 2170IF commno%=256 =7
 2180commname$=comm2name$
 2190commname$(noofcomms%)=commname$
 2200commandnumber%=noofcomms%
 2210noofcomms%+=1
 2220commands%=TRUE
 2230=0
 2240DEFPROCtestforcommand(commname$)
 2250commandno%=-1
 2260commno%=0
 2270REPEAT
 2280IF FNeq(commname$,commname$(commno%)) commandno%=commno%:commno%=255
 2290commno%+=1
 2300UNTIL commno%>=noofcomms%
 2310ENDPROC
 2320DEFFNeditcommand
 2330IF NOT commands% =7
 2340CLS
 2350PROCmenu("Name>FNcommandname,Rename>FNcommandrename,Help>FNcommandhelp,Syntax>FNcommandsyntax,Code>FNcommandcode,Max params>FNcommandmax,Min params>FNcommandmin,GS map>FNcommandgs,Flags>FNcommandflags,Exit>FNnoresult")
 2360=0
 2370DEFFNcommandname
 2380CLS
 2390IF commname$<>"" PRINT"Current command name is : ";commname$
 2400INPUT"Enter new command name  : "comm2name$
 2410IF comm2name$="" =7
 2420PROCtestforcommand(comm2name$)
 2430IF commandno%=-1 =7
 2440commandnumber%=commandno%
 2450commname$=comm2name$
 2460=0
 2470DEFFNcommandrename
 2480IF commname$="" =7
 2490CLS
 2500PRINT"Current command name is : ";commname$
 2510INPUT"Enter new command name  : "comm2name$
 2520IF comm2name$="" =7
 2530PROCtestforcommand(comm2name$)
 2540IF commandno%>-1 =7
 2550commname$=comm2name$
 2560commname$(commandnumber%)=commname$
 2570=0
 2580DEFFNcommandhelp
 2590IF commname$="" =7
 2600CLS
 2610IF helpmess$(commandnumber%)="" THEN
 2620PRINT"No help text"
 2630ELSE
 2640PRINT"Current help text : "
 2650SYS "OS_PrettyPrint",helpmess$(commandnumber%),0,-1
 2660ENDIF
 2670INPUT"Enter new help text : "helptext$
 2680IF helptext$="" =7
 2690helpmess$(commandnumber%)=helptext$
 2700=0
 2710DEFFNcommandsyntax
 2720IF commname$="" =7
 2730CLS
 2740IF syntaxmess$(commandnumber%)="" THEN
 2750PRINT"Default syntax message"
 2760ELSE
 2770PRINT"Current syntax message : ";syntaxmess$(commandnumber%)
 2780ENDIF
 2790INPUT"Enter new syntax text : "syntaxtext$
 2800IF syntaxtext$="" =7
 2810syntaxmess$(commandnumber%)=helptext$
 2820=0
 2830DEFFNcommandcode
 2840IF commname$="" =7
 2850CLS
 2860PRINT"Command currently has ";
 2870IF NOT actualcommand%(commandnumber%) PRINT"no ";
 2880PRINT"run-code associated with it."
 2890PRINT"Do you wish to have run-code?"
 2900PRINT''
 2910PROCmenu("Yes>FNruncode,No>FNnoruncode,Exit>FNnoresult")
 2920=0
 2930DEFFNruncode
 2940actualcommand%(commandnumber%)=-1
 2950=0
 2960DEFFNnoruncode
 2970actualcommand%(commandnumber%)=0
 2980=0
 2990 
 3000DEFFNcommandmin
 3010IF commname$="" =7
 3020CLS
 3030PRINT"Command currently has a minimum of ";STR$(minparams%(commandnumber%));" parameters."
 3040INPUT"Enter number of minimum parameters : "param$
 3050IF param$<"0" OR param$>"99" =7
 3060param%=VALparam$
 3070IF param%<0 OR param%>255 =7
 3080minparams%(commandnumber%)=param%
 3090=0
 3100DEFFNcommandmax
 3110IF commname$="" =7
 3120CLS
 3130PRINT"Command currently has a maximum of ";STR$(maxparams%(commandnumber%));" parameters."
 3140INPUT"Enter number of maximum parameters : "param$
 3150IF param$<"0" OR param$>"99" =7
 3160param%=VALparam$
 3170IF param%<minparams%(commandnumber%) OR param%>255 =7
 3180maxparams%(commandnumber%)=param%
 3190=0
 3200DEFFNcommandgs
 3210IF commname$="" =7
 3220CLS
 3230PRINT"                                    76543210"
 3240PRINT"Command currently has a GS map of : ";
 3250bin$=""
 3260SYS "OS_ConvertBinary1",gsmap%(commandnumber%),bin%,255
 3270count%=0
 3280WHILE bin%?count%>31
 3290bin$+=CHR$(bin%?count%)
 3300count%+=1
 3310ENDWHILE
 3320PRINTbin$
 3330INPUT"New GS map is                     : "gsmap$
 3340IF gsmap$<"00000000" OR gsmap$>"11111111" =7
 3350gsmap%(commandnumber%)=EVAL("%"+gsmap$)
 3360=0
 3370DEFFNcommandflags
 3380IF commname$="" =7
 3390CLS
 3400PROCmenu("File command>FNfilecommand,Configure command>FNconfigure,Exit>FNnoresult")
 3410=0
 3420DEFFNfilecommand
 3430IF commname$="" =7
 3440CLS
 3450PRINT"Command currently is ";
 3460IF (flags%(commandnumber%)AND(1<<31))=0 PRINT"not ";
 3470PRINT"a file command."
 3480PRINT"Do you wish it to be a file command?"
 3490PRINT''
 3500PROCmenu("Yes>FNfilecomm,No>FNnotfilecomm,Exit>FNnoresult")
 3510=0
 3520DEFFNfilecomm
 3530flags%(commandnumber%)=flags%(commandnumber%)OR(1<<31)
 3540=0
 3550DEFFNnotfilecomm
 3560flags%(commandnumber%)=flags%(commandnumber%)ANDNOT(1<<31)
 3570=0
 3580DEFFNconfigure
 3590IF commname$="" =7
 3600CLS
 3610PRINT"Command currently is ";
 3620IF (flags%(commandnumber%)AND(1<<30))=0 PRINT"not ";
 3630PRINT"a configure command."
 3640PRINT"Do you wish it to be a configure command?"
 3650PRINT''
 3660PROCmenu("Yes>FNconfig,No>FNnotconfig,Exit>FNnoresult")
 3670=0
 3680DEFFNconfig
 3690flags%(commandnumber%)=flags%(commandnumber%)OR(1<<30)
 3700=0
 3710DEFFNnotconfig
 3720flags%(commandnumber%)=flags%(commandnumber%)ANDNOT(1<<30)
 3730=0
 3740DEFFNswis
 3750CLS
 3760PROCmenu("Create swi>FNcreateswi,Define chunk number>FNchunk,Edit swi>FNeditswi,Exit>FNnoresult")
 3770=0
 3780DEFFNcreateswi
 3790IF noofswis%=64 =7
 3800CLS
 3810INPUT"Enter swi name : "swi2name$
 3820PROCtestforswi(swi2name$)
 3830IF swino%=256 =7
 3840swiname$=swi2name$
 3850swiname$(noofswis%)=swiname$
 3860currswinumber%=noofswis%
 3870noofswis%+=1
 3880swi%=TRUE
 3890=0
 3900DEFPROCtestforswi(swiname$)
 3910currswino%=-1
 3920swino%=0
 3930REPEAT
 3940IF swiname$=swiname$(swino%) currswino%=swino%:swino%=255
 3950swino%+=1
 3960UNTIL swino%>=noofswis%
 3970ENDPROC
 3980DEFFNeditswi
 3990IF swi% =7
 4000CLS
 4010PROCmenu("Name>FNswiname,Rename>FNswirename,Exit>FNnoresult")
 4020=0
 4030DEFFNswiname
 4040CLS
 4050IF swiname$<>"" PRINT"Current SWI name is : ";swiname$
 4060INPUT"Enter new SWI name  : "swi2name$
 4070IF swi2name$="" =7
 4080PROCtestforswi(swi2name$)
 4090IF currswino%=-1 =7
 4100currswinumber%=currswino%
 4110swiname$=swi2name$
 4120=0
 4130DEFFNswirename
 4140IF swiname$="" =7
 4150CLS
 4160PRINT"Current SWI name is : ";swiname$
 4170INPUT"Enter new SWI name  : "swi2name$
 4180IF swi2name$="" =7
 4190PROCtestforswi(swi2name$)
 4200IF currswino%>-1 =7
 4210swiname$=swi2name$
 4220swiname$(currswinumber%)=swiname$
 4230=0
 4240DEFFNchunk
 4250CLS
 4260PRINT"Current SWI chunk number is : ";chunknumber$
 4270INPUT"Enter new SWI chunk number  : "chunk2number$
 4280IF chunk2number$<"000000000001" OR chunk2number$>"111111111111" OR LEN(chunk2number$)<>12 =7
 4290chunknumber$=chunk2number$
 4300=0
 4310DEFFNcode
 4320CLS
 4330PROCmenu("Start code>FNstartcode,Initialisation code>FNinitcode,Finalisation code>FNfinishcode,Service code>FNservicecode,Exit>FNnoresult")
 4340=0
 4350DEFFNstartcode
 4360CLS
 4370PRINT"Module currently has ";
 4380IF NOT start% PRINT"no ";
 4390PRINT"start code."
 4400PRINT"Do you wish it to have a start code?"
 4410PRINT''
 4420PROCmenu("Yes>FNc(start%),No>FNnoc(start%),Exit>FNnoresult")
 4430=0
 4440DEFFNinitcode
 4450CLS
 4460PRINT"Module currently has ";
 4470IF NOT init% PRINT"no ";
 4480PRINT"initialisation code."
 4490PRINT"Do you wish it to have an initialisation code?"
 4500PRINT''
 4510PROCmenu("Yes>FNc(init%),No>FNnoc(init%),Exit>FNnoresult")
 4520=0
 4530DEFFNfinishcode
 4540CLS
 4550PRINT"Module currently has ";
 4560IF NOT finish% PRINT"no ";
 4570PRINT"finalisation code."
 4580PRINT"Do you wish it to have a finalisation code?"
 4590PRINT''
 4600PROCmenu("Yes>FNc(finish%),No>FNnoc(finish%),Exit>FNnoresult")
 4610=0
 4620DEFFNservicecode
 4630CLS
 4640PRINT"Module currently has ";
 4650IF NOT service% PRINT"no ";
 4660PRINT"service code."
 4670PRINT"Do you wish it to have a service code?"
 4680PRINT''
 4690PROCmenu("Yes>FNc(service%),No>FNnoc(service%),Exit>FNnoresult")
 4700=0
 4710DEFFNc(RETURN code%)
 4720code%=TRUE
 4730=0
 4740DEFFNnoc(RETURN code%)
 4750code%=FALSE
 4760=0
 4770DEFPROCmenu(menu1$)
 4780LOCAL q%
 4790REPEAT
 4800q%=TRUE
 4810menu$=menu1$
 4820VDU23,17,7,%110,16;16;0,0
 4830menun$()=""
 4840menuf$()=""
 4850noofitems%=0
 4860REPEAT
 4870menun$(noofitems%)=LEFT$(menu$,INSTR(menu$,">")-1)
 4880menu$=MID$(menu$,INSTR(menu$,">")+1)
 4890menuf$(noofitems%)=LEFT$(menu$,INSTR(menu$,",")-1)
 4900IF INSTR(menu$,",")=0 menu$="" ELSE menu$=MID$(menu$,INSTR(menu$,",")+1)
 4910noofitems%+=1
 4920UNTIL menu$=""
 4930top%=VPOS
 4940bottom%=VPOS+noofitems%
 4950VDU5
 4960FOR count%=0 TO noofitems%
 4970MOVE (1280-LEN(menun$(count%))*32)/2,1024-((count%+top%)*64)
 4980PRINT menun$(count%)
 4990NEXT
 5000VDU4
 5010OFF
 5020*Pointer 1
 5030REPEAT
 5040REPEAT
 5050*FX15,0
 5060MOUSE x%,y%,z%
 5070UNTIL z%>0
 5080IF z%=1 q%=FALSE
 5090UNTIL (1024-y%)DIV64>=top% AND (1024-y%)DIV64<bottom%
 5100select%=((1024-y%)DIV64)-top%
 5110*Pointer 0
 5120ON
 5130VDU EVAL(menuf$(select%))
 5140CLS
 5150UNTIL q%
 5160ENDPROC
 5170DEFFNeq(a$,b$)
 5180IF LENa$<>LENb$=0
 5190FOR c%=1 TO LENa$
 5200a%=(ASC(MID$(a$,c%,1)))OR32
 5210b%=(ASC(MID$(b$,c%,1)))OR32
 5220IF a%<>b% c%=1000:NEXT:=0
 5230NEXT
 5240=-1
 5250DATA "[OPT pass%"
 5260DATA "start"
 5270DATA "init"
 5280DATA "finish"
 5290DATA "service"
 5300DATA "DCD title"
 5310DATA "DCD help"
 5320DATA "commandtable"
 5330DATA "00"
 5340DATA "swih"
 5350DATA "swin"
 5360DATA "DCD 0"
 5370DATA ".title"
 5380DATA "01"
 5390DATA ".help"
 5400DATA "02"
 5410DATA "03"
 5420DATA ".swin"
 5430DATA "04"
 5440DATA ".swih"
 5450DATA "CMP R11,#(swite-swit)/4"
 5460DATA "ADDCC PC,PC,R11,LSL#2"
 5470DATA "B swie"
 5480DATA ".swit"
 5490DATA "05"
 5500DATA ".swite"
 5510DATA ".swie"
 5520DATA "ADR R0,swierror"
 5530DATA "ORRS PC,R14,#268435456"
 5540DATA ".swierror"
 5550DATA "DCD &1E6"
 5560DATA "06"
 5570DATA "07"

"� > <BasicSave$dir>.ModuleHead
� By Paul Mason
� (c) The Micro User
(
2� 0
<	�init
F�getinfo
P�
Z
d
��init
n� bin% 256
x+� swiname$(63),commname$(63),flags%(63)
�#� minparams%(63),maxparams%(63)
�#� actualcommand%(63),gsmap%(63)
�#� syntaxmess$(63),helpmess$(63)
�� menuf$(31),menun$(31)
��initallyoucan
��
�
���initallyoucan
�start%=0
�init%=0
�
finish%=0
�service%=0
�title$="TestMod"
commands%=0

swi%=0
version$="1.00"
"noofswis%=0
,chunknumber$="000000000001"
6quit%=�
@noofcomms%=0
Jswiname$()=""
Tcommname$()=""
^flags%()=0
hminparams%()=0
rmaxparams%()=0
|actualcommand%()=-1
�gsmap%()=0
�syntaxmess$()=""
�helpmess$()=""
�commname$=""
�swiname$=""
��
�
���save(n$)
��
�fn%=�n$
�
end%=�
��
�
  � data$
  Ȏ data$ �
.    � "start"        : �true(start%,data$)
-    � "init"         : �true(init%,data$)
&/    � "finish"       : �true(finish%,data$)
00    � "service"      : �true(service%,data$)
:!    � "title"        : �title
D     � "help"         : �help
N:    � "commandtable" : �true(commands%,"commandtable")
X,    � "swih"         : �true(swi%,data$)
b,    � "swin"         : �true(swi%,data$)
l    � "00"           : �00
v    � "01"           : �01
�    � "02"           : �02
�    � "03"           : �03
�    � "04"           : �04
�    � "05"           : �05
�    � "06"           : �06
�%    � "07"           : �commandit
�$                          end%=�
�	    �
�&  � � end% � data$<>"" �#fn%,data$
�  � end%
�
� #fn%
��
�
��true(true%,data$)

� true% �
    data$="DCD "+data$
   �
*    data$="DCD 0"
4  �
>�
H
R��commandit
\data$=""
f� commands% �
p    �#fn%,".commandtable"
z     � comm%=0 � noofcomms%-1
�/      �#fn%,"DCB "+�34+commname$(comm%)+�34
�      �#fn%,"DCB 0"
�      �#fn%,"ALIGN"
�#      � actualcommand%(comm%) �
�(          �#fn%,"DCD command"+�comm%
�c          �#fn%,"DCD &"+�~flags%(comm%)+�~maxparams%(comm%)+�~gsmap%(comm%)+�~minparams%(comm%)
�
        �
�          �#fn%,"DCD 0"
�          �#fn%,"DCD 0"
�
        �
�$      � syntaxmess$(comm%)<>"" �
�'          �#fn%,"DCD syntax"+�comm%
�
        �
          �#fn%,"DCD 0"

        �
"      � helpmess$(comm%)<>"" �
$%          �#fn%,"DCD help"+�comm%
.
        �
8          �#fn%,"DCD 0"
B
        �
L      �
V    �#fn%,"DCD 0"
`     � comm%=0 � noofcomms%-1
j"      � helpmess$(comm%)<>"" �
t"          �#fn%,".help"+�comm%
~3          �#fn%,"DCB "+�34+helpmess$(comm%)+�34
�          �#fn%,"DCB 13"
�'          � syntaxmess$(comm%)="" �
�              �#fn%,"DCB 0"
�              �#fn%,"ALIGN"
�            �
�
        �
�$      � syntaxmess$(comm%)<>"" �
�$          �#fn%,".syntax"+�comm%
�5          �#fn%,"DCB "+�34+syntaxmess$(comm%)+�34
�          �#fn%,"DCB 0"
�          �#fn%,"ALIGN"
�
        �
      �

�

��00 : � chunk number
(A� �swi% data$="DCD 0" � data$="DCD %10"+chunknumber$+"000000"
<�
=
F��01 : � title
P�#fn%,"DCB "+�34+title$+�34
Z�#fn%,"DCB 0"
ddata$="ALIGN"
n�
o
x��02 : � help
�temp$="DCB "+�34+title$+�34
� � �title$<16 temp$+="+CHR$9"
�� �title$<8 temp$+="+CHR$9"
�Etemp$+="+"+�34+version$+" ("+�34+"+MID$(TIME$,5,11)+"+�34+")"+�34
��#fn%,temp$
��#fn%,"DCB 0"
�data$="ALIGN"
��
�
���03 : � swi warning
�data$=""
�� �swi% � �dBU
��
�
���04 : � swi names
�#fn%,"DCB "+�34+title$+�34
�#fn%,"DCB 0"
� swinum%=0 � noofswis%-1
"*�#fn%,"DCB "+�34+swiname$(swinum%)+�34
,�#fn%,"DCB 0"
6�
@�#fn%,"DCB 0"
Jdata$="ALIGN"
T�
U
^��05 : � swi table
hdata$=""
r� swinum%=0 � noofswis%-1
|�#fn%,"B swi"+�swinum%
��
��
���06 : � swi error
�7�#fn%,"DCB "+�34+"Unknown "+title$+" operation"+�34
��#fn%,"DCB 0"
�data$="ALIGN"
��
�
��getinfo
��
�
��
��menu("New module>FNnewmodule,Save module>FNsavemodule,Name module>FNnamemodule,Commands>FNcommands,SWIs>FNswis,Code>FNcode")
�� quit%
�
ݤnewmodule
�
&/�"Warning - All current data will be lost!"
0)�'"Are you sure you want to proceed?"
:�''
D+�menu("Yes>FNclearspace,No>FNnoresult")
N=0
Xݤclearspace
b�initallyoucan
l=0
vݤnoresult
�=7
�ݤsavemodule
��
�)�"Enter filename to save as : "fname$
���7:�getinfo
�� fname$="" =7
��save(fname$)
�=0
�ݤnamemodule
��
�'�"Current module name is : ";title$
�'�"New name is            : "newtit$
�� newtit$="" =7
� �(newtit$)>15 =7
title$=newtit$
=0
 ݤcommands
*�
4V�menu("Create command>FNcreatecommand,Edit command>FNeditcommand,Exit>FNnoresult")
>=0
Hݤcreatecommand
R� noofcomms%=64 =7
\�
f&�"Enter command name : "comm2name$
p�testforcommand(comm2name$)
z� commno%=256 =7
�commname$=comm2name$
�#commname$(noofcomms%)=commname$
�commandnumber%=noofcomms%
�noofcomms%+=1
�commands%=�
�=0
���testforcommand(commname$)
�commandno%=-1
�
commno%=0
��
�F� �eq(commname$,commname$(commno%)) commandno%=commno%:commno%=255
�commno%+=1
�� commno%>=noofcomms%
	�
	ݤeditcommand
	� � commands% =7
	$�
	.��menu("Name>FNcommandname,Rename>FNcommandrename,Help>FNcommandhelp,Syntax>FNcommandsyntax,Code>FNcommandcode,Max params>FNcommandmax,Min params>FNcommandmin,GS map>FNcommandgs,Flags>FNcommandflags,Exit>FNnoresult")
	8=0
	Bݤcommandname
	L�
	V;� commname$<>"" �"Current command name is : ";commname$
	`+�"Enter new command name  : "comm2name$
	j� comm2name$="" =7
	t�testforcommand(comm2name$)
	~� commandno%=-1 =7
	�commandnumber%=commandno%
	�commname$=comm2name$
	�=0
	�ݤcommandrename
	�� commname$="" =7
	��
	�+�"Current command name is : ";commname$
	�+�"Enter new command name  : "comm2name$
	�� comm2name$="" =7
	��testforcommand(comm2name$)
	�� commandno%>-1 =7
	�commname$=comm2name$
'commname$(commandnumber%)=commname$

=0
ݤcommandhelp
� commname$="" =7
(�
2$� helpmess$(commandnumber%)="" �
<�"No help text"
F�
P�"Current help text : "
Z6ș "OS_PrettyPrint",helpmess$(commandnumber%),0,-1
d�
n&�"Enter new help text : "helptext$
x� helptext$="" =7
�'helpmess$(commandnumber%)=helptext$
�=0
�ݤcommandsyntax
�� commname$="" =7
��
�&� syntaxmess$(commandnumber%)="" �
��"Default syntax message"
��
�<�"Current syntax message : ";syntaxmess$(commandnumber%)
��
�*�"Enter new syntax text : "syntaxtext$
�� syntaxtext$="" =7
�)syntaxmess$(commandnumber%)=helptext$
=0
ݤcommandcode
� commname$="" =7
"�
,�"Command currently has ";
6.� � actualcommand%(commandnumber%) �"no ";
@#�"run-code associated with it."
J$�"Do you wish to have run-code?"
T�''
^9�menu("Yes>FNruncode,No>FNnoruncode,Exit>FNnoresult")
h=0
r
ݤruncode
|%actualcommand%(commandnumber%)=-1
�=0
�ݤnoruncode
�$actualcommand%(commandnumber%)=0
�=0
� 
�ݤcommandmin
�� commname$="" =7
��
�W�"Command currently has a minimum of ";�(minparams%(commandnumber%));" parameters."
�2�"Enter number of minimum parameters : "param$
�!� param$<"0" � param$>"99" =7
�param%=�param$
�� param%<0 � param%>255 =7
%minparams%(commandnumber%)=param%
=0
ݤcommandmax
&� commname$="" =7
0�
:W�"Command currently has a maximum of ";�(maxparams%(commandnumber%));" parameters."
D2�"Enter number of maximum parameters : "param$
N!� param$<"0" � param$>"99" =7
Xparam%=�param$
b7� param%<minparams%(commandnumber%) � param%>255 =7
l%maxparams%(commandnumber%)=param%
v=0
�ݤcommandgs
�� commname$="" =7
��
�3�"                                    76543210"
�,�"Command currently has a GS map of : ";
�bin$=""
�:ș "OS_ConvertBinary1",gsmap%(commandnumber%),bin%,255
�count%=0
�ȕ bin%?count%>31
�bin$+=�(bin%?count%)
�
count%+=1
��
�	�bin$

1�"New GS map is                     : "gsmap$

.� gsmap$<"00000000" � gsmap$>"11111111" =7

(gsmap%(commandnumber%)=�("%"+gsmap$)

 =0

*ݤcommandflags

4� commname$="" =7

>�

HU�menu("File command>FNfilecommand,Configure command>FNconfigure,Exit>FNnoresult")

R=0

\ݤfilecommand

f� commname$="" =7

p�

z�"Command currently is ";

�1� (flags%(commandnumber%)�(1<<31))=0 �"not ";

��"a file command."

�+�"Do you wish it to be a file command?"

��''

�<�menu("Yes>FNfilecomm,No>FNnotfilecomm,Exit>FNnoresult")

�=0

�ݤfilecomm

�9flags%(commandnumber%)=flags%(commandnumber%)�(1<<31)

�=0

�ݤnotfilecomm

�:flags%(commandnumber%)=flags%(commandnumber%)��(1<<31)

�=0

�ݤconfigure
� commname$="" =7
�
�"Command currently is ";
$1� (flags%(commandnumber%)�(1<<30))=0 �"not ";
.�"a configure command."
80�"Do you wish it to be a configure command?"
B�''
L8�menu("Yes>FNconfig,No>FNnotconfig,Exit>FNnoresult")
V=0
`ݤconfig
j9flags%(commandnumber%)=flags%(commandnumber%)�(1<<30)
t=0
~ݤnotconfig
�:flags%(commandnumber%)=flags%(commandnumber%)��(1<<30)
�=0
�
ݤswis
��
�b�menu("Create swi>FNcreateswi,Define chunk number>FNchunk,Edit swi>FNeditswi,Exit>FNnoresult")
�=0
�ݤcreateswi
�� noofswis%=64 =7
��
�!�"Enter swi name : "swi2name$
��testforswi(swi2name$)
�� swino%=256 =7
swiname$=swi2name$

 swiname$(noofswis%)=swiname$
currswinumber%=noofswis%
noofswis%+=1
(
swi%=�
2=0
<��testforswi(swiname$)
Fcurrswino%=-1
Pswino%=0
Z�
d<� swiname$=swiname$(swino%) currswino%=swino%:swino%=255
n
swino%+=1
x� swino%>=noofswis%
��
�
ݤeditswi
�
� swi% =7
��
�>�menu("Name>FNswiname,Rename>FNswirename,Exit>FNnoresult")
�=0
�
ݤswiname
��
�5� swiname$<>"" �"Current SWI name is : ";swiname$
�&�"Enter new SWI name  : "swi2name$
�� swi2name$="" =7
��testforswi(swi2name$)
�� currswino%=-1 =7
currswinumber%=currswino%
swiname$=swi2name$
=0
"ݤswirename
,� swiname$="" =7
6�
@&�"Current SWI name is : ";swiname$
J&�"Enter new SWI name  : "swi2name$
T� swi2name$="" =7
^�testforswi(swi2name$)
h� currswino%>-1 =7
rswiname$=swi2name$
|%swiname$(currswinumber%)=swiname$
�=0
�ݤchunk
��
�2�"Current SWI chunk number is : ";chunknumber$
�2�"Enter new SWI chunk number  : "chunk2number$
�[� chunk2number$<"000000000001" � chunk2number$>"111111111111" � �(chunk2number$)<>12 =7
�chunknumber$=chunk2number$
�=0
�
ݤcode
��
��menu("Start code>FNstartcode,Initialisation code>FNinitcode,Finalisation code>FNfinishcode,Service code>FNservicecode,Exit>FNnoresult")
�=0
�ݤstartcode
�
�"Module currently has ";
� � start% �"no ";
&�"start code."
0+�"Do you wish it to have a start code?"
:�''
D=�menu("Yes>FNc(start%),No>FNnoc(start%),Exit>FNnoresult")
N=0
Xݤinitcode
b�
l�"Module currently has ";
v� � init% �"no ";
��"initialisation code."
�5�"Do you wish it to have an initialisation code?"
��''
�;�menu("Yes>FNc(init%),No>FNnoc(init%),Exit>FNnoresult")
�=0
�ݤfinishcode
��
��"Module currently has ";
�� � finish% �"no ";
��"finalisation code."
�2�"Do you wish it to have a finalisation code?"
��''
�?�menu("Yes>FNc(finish%),No>FNnoc(finish%),Exit>FNnoresult")
=0
ݤservicecode
�
 �"Module currently has ";
*� � service% �"no ";
4�"service code."
>-�"Do you wish it to have a service code?"
H�''
RA�menu("Yes>FNc(service%),No>FNnoc(service%),Exit>FNnoresult")
\=0
fݤc(� code%)
pcode%=�
z=0
�ݤnoc(� code%)
�code%=�
�=0
���menu(menu1$)
�� q%
��
�q%=�
�menu$=menu1$
��23,17,7,%110,16;16;0,0
�menun$()=""
�menuf$()=""
�noofitems%=0
��
,menun$(noofitems%)=�menu$,�menu$,">")-1)
menu$=�menu$,�menu$,">")+1)
,menuf$(noofitems%)=�menu$,�menu$,",")-1)
$:� �menu$,",")=0 menu$="" � menu$=�menu$,�menu$,",")+1)
.noofitems%+=1
8� menu$=""
B
top%=�
Lbottom%=�+noofitems%
V�5
`� count%=0 � noofitems%
j;� (1280-�(menun$(count%))*32)/2,1024-((count%+top%)*64)
t� menun$(count%)
~�
��4
��
�*Pointer 1
��
��
�*FX15,0
�ȗ x%,y%,z%
�
� z%>0
�� z%=1 q%=�
�/� (1024-y%)�64>=top% � (1024-y%)�64<bottom%
�select%=((1024-y%)�64)-top%
�*Pointer 0
�

� �(menuf$(select%))
�
� q%
(�
2ݤeq(a$,b$)
<� �a$<>�b$=0
F� c%=1 � �a$
Pa%=(�(�a$,c%,1)))�32
Zb%=(�(�b$,c%,1)))�32
d� a%<>b% c%=1000:�:=0
n�
x=-1
�� "[OPT pass%"
�
� "start"
�� "init"
�� "finish"
�� "service"
�� "DCD title"
�� "DCD help"
�� "commandtable"
�
� "00"
�� "swih"
�� "swin"
�
� "DCD 0"
�� ".title"

� "01"

� ".help"

� "02"
"
� "03"
,
� ".swin"
6
� "04"
@
� ".swih"
J� "CMP R11,#(swite-swit)/4"
T� "ADDCC PC,PC,R11,LSL#2"
^� "B swie"
h
� ".swit"
r
� "05"
|� ".swite"
�
� ".swie"
�� "ADR R0,swierror"
�� "ORRS PC,R14,#268435456"
�� ".swierror"
�� "DCD &1E6"
�
� "06"
�
� "07"
�
00000000  0d 00 0a 22 f4 20 3e 20  3c 42 61 73 69 63 53 61  |...". > <BasicSa|
00000010  76 65 24 64 69 72 3e 2e  4d 6f 64 75 6c 65 48 65  |ve$dir>.ModuleHe|
00000020  61 64 0d 00 14 13 f4 20  42 79 20 50 61 75 6c 20  |ad..... By Paul |
00000030  4d 61 73 6f 6e 0d 00 1e  18 f4 20 28 63 29 20 54  |Mason..... (c) T|
00000040  68 65 20 4d 69 63 72 6f  20 55 73 65 72 0d 00 28  |he Micro User..(|
00000050  04 0d 00 32 07 eb 20 30  0d 00 3c 09 f2 69 6e 69  |...2.. 0..<..ini|
00000060  74 0d 00 46 0c f2 67 65  74 69 6e 66 6f 0d 00 50  |t..F..getinfo..P|
00000070  05 e0 0d 00 5a 04 0d 00  64 0a dd f2 69 6e 69 74  |....Z...d...init|
00000080  0d 00 6e 0e de 20 62 69  6e 25 20 32 35 36 0d 00  |..n.. bin% 256..|
00000090  78 2b de 20 73 77 69 6e  61 6d 65 24 28 36 33 29  |x+. swiname$(63)|
000000a0  2c 63 6f 6d 6d 6e 61 6d  65 24 28 36 33 29 2c 66  |,commname$(63),f|
000000b0  6c 61 67 73 25 28 36 33  29 0d 00 82 23 de 20 6d  |lags%(63)...#. m|
000000c0  69 6e 70 61 72 61 6d 73  25 28 36 33 29 2c 6d 61  |inparams%(63),ma|
000000d0  78 70 61 72 61 6d 73 25  28 36 33 29 0d 00 8c 23  |xparams%(63)...#|
000000e0  de 20 61 63 74 75 61 6c  63 6f 6d 6d 61 6e 64 25  |. actualcommand%|
000000f0  28 36 33 29 2c 67 73 6d  61 70 25 28 36 33 29 0d  |(63),gsmap%(63).|
00000100  00 96 23 de 20 73 79 6e  74 61 78 6d 65 73 73 24  |..#. syntaxmess$|
00000110  28 36 33 29 2c 68 65 6c  70 6d 65 73 73 24 28 36  |(63),helpmess$(6|
00000120  33 29 0d 00 a0 1b de 20  6d 65 6e 75 66 24 28 33  |3)..... menuf$(3|
00000130  31 29 2c 6d 65 6e 75 6e  24 28 33 31 29 0d 00 aa  |1),menun$(31)...|
00000140  12 f2 69 6e 69 74 61 6c  6c 79 6f 75 63 61 6e 0d  |..initallyoucan.|
00000150  00 b4 05 e1 0d 00 be 04  0d 00 c8 13 dd f2 69 6e  |..............in|
00000160  69 74 61 6c 6c 79 6f 75  63 61 6e 0d 00 d2 0c 73  |itallyoucan....s|
00000170  74 61 72 74 25 3d 30 0d  00 dc 0b 69 6e 69 74 25  |tart%=0....init%|
00000180  3d 30 0d 00 e6 0d 66 69  6e 69 73 68 25 3d 30 0d  |=0....finish%=0.|
00000190  00 f0 0e 73 65 72 76 69  63 65 25 3d 30 0d 00 fa  |...service%=0...|
000001a0  14 74 69 74 6c 65 24 3d  22 54 65 73 74 4d 6f 64  |.title$="TestMod|
000001b0  22 0d 01 04 0f 63 6f 6d  6d 61 6e 64 73 25 3d 30  |"....commands%=0|
000001c0  0d 01 0e 0a 73 77 69 25  3d 30 0d 01 18 13 76 65  |....swi%=0....ve|
000001d0  72 73 69 6f 6e 24 3d 22  31 2e 30 30 22 0d 01 22  |rsion$="1.00".."|
000001e0  0f 6e 6f 6f 66 73 77 69  73 25 3d 30 0d 01 2c 1f  |.noofswis%=0..,.|
000001f0  63 68 75 6e 6b 6e 75 6d  62 65 72 24 3d 22 30 30  |chunknumber$="00|
00000200  30 30 30 30 30 30 30 30  30 31 22 0d 01 36 0b 71  |0000000001"..6.q|
00000210  75 69 74 25 3d a3 0d 01  40 10 6e 6f 6f 66 63 6f  |uit%=...@.noofco|
00000220  6d 6d 73 25 3d 30 0d 01  4a 11 73 77 69 6e 61 6d  |mms%=0..J.swinam|
00000230  65 24 28 29 3d 22 22 0d  01 54 12 63 6f 6d 6d 6e  |e$()=""..T.commn|
00000240  61 6d 65 24 28 29 3d 22  22 0d 01 5e 0e 66 6c 61  |ame$()=""..^.fla|
00000250  67 73 25 28 29 3d 30 0d  01 68 12 6d 69 6e 70 61  |gs%()=0..h.minpa|
00000260  72 61 6d 73 25 28 29 3d  30 0d 01 72 12 6d 61 78  |rams%()=0..r.max|
00000270  70 61 72 61 6d 73 25 28  29 3d 30 0d 01 7c 17 61  |params%()=0..|.a|
00000280  63 74 75 61 6c 63 6f 6d  6d 61 6e 64 25 28 29 3d  |ctualcommand%()=|
00000290  2d 31 0d 01 86 0e 67 73  6d 61 70 25 28 29 3d 30  |-1....gsmap%()=0|
000002a0  0d 01 90 14 73 79 6e 74  61 78 6d 65 73 73 24 28  |....syntaxmess$(|
000002b0  29 3d 22 22 0d 01 9a 12  68 65 6c 70 6d 65 73 73  |)=""....helpmess|
000002c0  24 28 29 3d 22 22 0d 01  a4 10 63 6f 6d 6d 6e 61  |$()=""....commna|
000002d0  6d 65 24 3d 22 22 0d 01  ae 0f 73 77 69 6e 61 6d  |me$=""....swinam|
000002e0  65 24 3d 22 22 0d 01 b8  05 e1 0d 01 c2 04 0d 01  |e$=""...........|
000002f0  cc 0e dd f2 73 61 76 65  28 6e 24 29 0d 01 d6 05  |....save(n$)....|
00000300  f7 0d 01 e0 0b 66 6e 25  3d ae 6e 24 0d 01 ea 0a  |.....fn%=.n$....|
00000310  65 6e 64 25 3d a3 0d 01  f4 05 f5 0d 01 fe 0d 20  |end%=.......... |
00000320  20 f3 20 64 61 74 61 24  0d 02 08 10 20 20 c8 8e  | . data$....  ..|
00000330  20 64 61 74 61 24 20 ca  0d 02 12 2e 20 20 20 20  | data$ .....    |
00000340  c9 20 22 73 74 61 72 74  22 20 20 20 20 20 20 20  |. "start"       |
00000350  20 3a 20 f2 74 72 75 65  28 73 74 61 72 74 25 2c  | : .true(start%,|
00000360  64 61 74 61 24 29 0d 02  1c 2d 20 20 20 20 c9 20  |data$)...-    . |
00000370  22 69 6e 69 74 22 20 20  20 20 20 20 20 20 20 3a  |"init"         :|
00000380  20 f2 74 72 75 65 28 69  6e 69 74 25 2c 64 61 74  | .true(init%,dat|
00000390  61 24 29 0d 02 26 2f 20  20 20 20 c9 20 22 66 69  |a$)..&/    . "fi|
000003a0  6e 69 73 68 22 20 20 20  20 20 20 20 3a 20 f2 74  |nish"       : .t|
000003b0  72 75 65 28 66 69 6e 69  73 68 25 2c 64 61 74 61  |rue(finish%,data|
000003c0  24 29 0d 02 30 30 20 20  20 20 c9 20 22 73 65 72  |$)..00    . "ser|
000003d0  76 69 63 65 22 20 20 20  20 20 20 3a 20 f2 74 72  |vice"      : .tr|
000003e0  75 65 28 73 65 72 76 69  63 65 25 2c 64 61 74 61  |ue(service%,data|
000003f0  24 29 0d 02 3a 21 20 20  20 20 c9 20 22 74 69 74  |$)..:!    . "tit|
00000400  6c 65 22 20 20 20 20 20  20 20 20 3a 20 f2 74 69  |le"        : .ti|
00000410  74 6c 65 0d 02 44 20 20  20 20 20 c9 20 22 68 65  |tle..D     . "he|
00000420  6c 70 22 20 20 20 20 20  20 20 20 20 3a 20 f2 68  |lp"         : .h|
00000430  65 6c 70 0d 02 4e 3a 20  20 20 20 c9 20 22 63 6f  |elp..N:    . "co|
00000440  6d 6d 61 6e 64 74 61 62  6c 65 22 20 3a 20 f2 74  |mmandtable" : .t|
00000450  72 75 65 28 63 6f 6d 6d  61 6e 64 73 25 2c 22 63  |rue(commands%,"c|
00000460  6f 6d 6d 61 6e 64 74 61  62 6c 65 22 29 0d 02 58  |ommandtable")..X|
00000470  2c 20 20 20 20 c9 20 22  73 77 69 68 22 20 20 20  |,    . "swih"   |
00000480  20 20 20 20 20 20 3a 20  f2 74 72 75 65 28 73 77  |      : .true(sw|
00000490  69 25 2c 64 61 74 61 24  29 0d 02 62 2c 20 20 20  |i%,data$)..b,   |
000004a0  20 c9 20 22 73 77 69 6e  22 20 20 20 20 20 20 20  | . "swin"       |
000004b0  20 20 3a 20 f2 74 72 75  65 28 73 77 69 25 2c 64  |  : .true(swi%,d|
000004c0  61 74 61 24 29 0d 02 6c  1e 20 20 20 20 c9 20 22  |ata$)..l.    . "|
000004d0  30 30 22 20 20 20 20 20  20 20 20 20 20 20 3a 20  |00"           : |
000004e0  f2 30 30 0d 02 76 1e 20  20 20 20 c9 20 22 30 31  |.00..v.    . "01|
000004f0  22 20 20 20 20 20 20 20  20 20 20 20 3a 20 f2 30  |"           : .0|
00000500  31 0d 02 80 1e 20 20 20  20 c9 20 22 30 32 22 20  |1....    . "02" |
00000510  20 20 20 20 20 20 20 20  20 20 3a 20 f2 30 32 0d  |          : .02.|
00000520  02 8a 1e 20 20 20 20 c9  20 22 30 33 22 20 20 20  |...    . "03"   |
00000530  20 20 20 20 20 20 20 20  3a 20 f2 30 33 0d 02 94  |        : .03...|
00000540  1e 20 20 20 20 c9 20 22  30 34 22 20 20 20 20 20  |.    . "04"     |
00000550  20 20 20 20 20 20 3a 20  f2 30 34 0d 02 9e 1e 20  |      : .04.... |
00000560  20 20 20 c9 20 22 30 35  22 20 20 20 20 20 20 20  |   . "05"       |
00000570  20 20 20 20 3a 20 f2 30  35 0d 02 a8 1e 20 20 20  |    : .05....   |
00000580  20 c9 20 22 30 36 22 20  20 20 20 20 20 20 20 20  | . "06"         |
00000590  20 20 3a 20 f2 30 36 0d  02 b2 25 20 20 20 20 c9  |  : .06...%    .|
000005a0  20 22 30 37 22 20 20 20  20 20 20 20 20 20 20 20  | "07"           |
000005b0  3a 20 f2 63 6f 6d 6d 61  6e 64 69 74 0d 02 bc 24  |: .commandit...$|
000005c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000005d0  20 20 20 20 20 20 20 20  20 20 65 6e 64 25 3d b9  |          end%=.|
000005e0  0d 02 c6 09 20 20 20 20  cb 0d 02 d0 26 20 20 e7  |....    ....&  .|
000005f0  20 ac 20 65 6e 64 25 20  80 20 64 61 74 61 24 3c  | . end% . data$<|
00000600  3e 22 22 20 d5 23 66 6e  25 2c 64 61 74 61 24 0d  |>"" .#fn%,data$.|
00000610  02 da 0c 20 20 fd 20 65  6e 64 25 0d 02 e4 0a d9  |...  . end%.....|
00000620  20 23 66 6e 25 0d 02 ee  05 e1 0d 02 f8 04 0d 03  | #fn%...........|
00000630  02 17 dd f2 74 72 75 65  28 74 72 75 65 25 2c 64  |....true(true%,d|
00000640  61 74 61 24 29 0d 03 0c  0d e7 20 74 72 75 65 25  |ata$)..... true%|
00000650  20 8c 0d 03 16 1a 20 20  20 20 64 61 74 61 24 3d  | .....    data$=|
00000660  22 44 43 44 20 22 2b 64  61 74 61 24 0d 03 20 07  |"DCD "+data$.. .|
00000670  20 20 cc 0d 03 2a 15 20  20 20 20 64 61 74 61 24  |  ...*.    data$|
00000680  3d 22 44 43 44 20 30 22  0d 03 34 07 20 20 cd 0d  |="DCD 0"..4.  ..|
00000690  03 3e 05 e1 0d 03 48 04  0d 03 52 0f dd f2 63 6f  |.>....H...R...co|
000006a0  6d 6d 61 6e 64 69 74 0d  03 5c 0c 64 61 74 61 24  |mmandit..\.data$|
000006b0  3d 22 22 0d 03 66 11 e7  20 63 6f 6d 6d 61 6e 64  |=""..f.. command|
000006c0  73 25 20 8c 0d 03 70 1d  20 20 20 20 d5 23 66 6e  |s% ...p.    .#fn|
000006d0  25 2c 22 2e 63 6f 6d 6d  61 6e 64 74 61 62 6c 65  |%,".commandtable|
000006e0  22 0d 03 7a 20 20 20 20  20 e3 20 63 6f 6d 6d 25  |"..z     . comm%|
000006f0  3d 30 20 b8 20 6e 6f 6f  66 63 6f 6d 6d 73 25 2d  |=0 . noofcomms%-|
00000700  31 0d 03 84 2f 20 20 20  20 20 20 d5 23 66 6e 25  |1.../      .#fn%|
00000710  2c 22 44 43 42 20 22 2b  bd 33 34 2b 63 6f 6d 6d  |,"DCB "+.34+comm|
00000720  6e 61 6d 65 24 28 63 6f  6d 6d 25 29 2b bd 33 34  |name$(comm%)+.34|
00000730  0d 03 8e 17 20 20 20 20  20 20 d5 23 66 6e 25 2c  |....      .#fn%,|
00000740  22 44 43 42 20 30 22 0d  03 98 17 20 20 20 20 20  |"DCB 0"....     |
00000750  20 d5 23 66 6e 25 2c 22  41 4c 49 47 4e 22 0d 03  | .#fn%,"ALIGN"..|
00000760  a2 23 20 20 20 20 20 20  e7 20 61 63 74 75 61 6c  |.#      . actual|
00000770  63 6f 6d 6d 61 6e 64 25  28 63 6f 6d 6d 25 29 20  |command%(comm%) |
00000780  8c 0d 03 ac 28 20 20 20  20 20 20 20 20 20 20 d5  |....(          .|
00000790  23 66 6e 25 2c 22 44 43  44 20 63 6f 6d 6d 61 6e  |#fn%,"DCD comman|
000007a0  64 22 2b c3 63 6f 6d 6d  25 0d 03 b6 63 20 20 20  |d"+.comm%...c   |
000007b0  20 20 20 20 20 20 20 d5  23 66 6e 25 2c 22 44 43  |       .#fn%,"DC|
000007c0  44 20 26 22 2b c3 7e 66  6c 61 67 73 25 28 63 6f  |D &"+.~flags%(co|
000007d0  6d 6d 25 29 2b c3 7e 6d  61 78 70 61 72 61 6d 73  |mm%)+.~maxparams|
000007e0  25 28 63 6f 6d 6d 25 29  2b c3 7e 67 73 6d 61 70  |%(comm%)+.~gsmap|
000007f0  25 28 63 6f 6d 6d 25 29  2b c3 7e 6d 69 6e 70 61  |%(comm%)+.~minpa|
00000800  72 61 6d 73 25 28 63 6f  6d 6d 25 29 0d 03 c0 0d  |rams%(comm%)....|
00000810  20 20 20 20 20 20 20 20  cc 0d 03 ca 1b 20 20 20  |        .....   |
00000820  20 20 20 20 20 20 20 d5  23 66 6e 25 2c 22 44 43  |       .#fn%,"DC|
00000830  44 20 30 22 0d 03 d4 1b  20 20 20 20 20 20 20 20  |D 0"....        |
00000840  20 20 d5 23 66 6e 25 2c  22 44 43 44 20 30 22 0d  |  .#fn%,"DCD 0".|
00000850  03 de 0d 20 20 20 20 20  20 20 20 cd 0d 03 e8 24  |...        ....$|
00000860  20 20 20 20 20 20 e7 20  73 79 6e 74 61 78 6d 65  |      . syntaxme|
00000870  73 73 24 28 63 6f 6d 6d  25 29 3c 3e 22 22 20 8c  |ss$(comm%)<>"" .|
00000880  0d 03 f2 27 20 20 20 20  20 20 20 20 20 20 d5 23  |...'          .#|
00000890  66 6e 25 2c 22 44 43 44  20 73 79 6e 74 61 78 22  |fn%,"DCD syntax"|
000008a0  2b c3 63 6f 6d 6d 25 0d  03 fc 0d 20 20 20 20 20  |+.comm%....     |
000008b0  20 20 20 cc 0d 04 06 1b  20 20 20 20 20 20 20 20  |   .....        |
000008c0  20 20 d5 23 66 6e 25 2c  22 44 43 44 20 30 22 0d  |  .#fn%,"DCD 0".|
000008d0  04 10 0d 20 20 20 20 20  20 20 20 cd 0d 04 1a 22  |...        ...."|
000008e0  20 20 20 20 20 20 e7 20  68 65 6c 70 6d 65 73 73  |      . helpmess|
000008f0  24 28 63 6f 6d 6d 25 29  3c 3e 22 22 20 8c 0d 04  |$(comm%)<>"" ...|
00000900  24 25 20 20 20 20 20 20  20 20 20 20 d5 23 66 6e  |$%          .#fn|
00000910  25 2c 22 44 43 44 20 68  65 6c 70 22 2b c3 63 6f  |%,"DCD help"+.co|
00000920  6d 6d 25 0d 04 2e 0d 20  20 20 20 20 20 20 20 cc  |mm%....        .|
00000930  0d 04 38 1b 20 20 20 20  20 20 20 20 20 20 d5 23  |..8.          .#|
00000940  66 6e 25 2c 22 44 43 44  20 30 22 0d 04 42 0d 20  |fn%,"DCD 0"..B. |
00000950  20 20 20 20 20 20 20 cd  0d 04 4c 0b 20 20 20 20  |       ...L.    |
00000960  20 20 ed 0d 04 56 15 20  20 20 20 d5 23 66 6e 25  |  ...V.    .#fn%|
00000970  2c 22 44 43 44 20 30 22  0d 04 60 20 20 20 20 20  |,"DCD 0"..`     |
00000980  e3 20 63 6f 6d 6d 25 3d  30 20 b8 20 6e 6f 6f 66  |. comm%=0 . noof|
00000990  63 6f 6d 6d 73 25 2d 31  0d 04 6a 22 20 20 20 20  |comms%-1..j"    |
000009a0  20 20 e7 20 68 65 6c 70  6d 65 73 73 24 28 63 6f  |  . helpmess$(co|
000009b0  6d 6d 25 29 3c 3e 22 22  20 8c 0d 04 74 22 20 20  |mm%)<>"" ...t"  |
000009c0  20 20 20 20 20 20 20 20  d5 23 66 6e 25 2c 22 2e  |        .#fn%,".|
000009d0  68 65 6c 70 22 2b c3 63  6f 6d 6d 25 0d 04 7e 33  |help"+.comm%..~3|
000009e0  20 20 20 20 20 20 20 20  20 20 d5 23 66 6e 25 2c  |          .#fn%,|
000009f0  22 44 43 42 20 22 2b bd  33 34 2b 68 65 6c 70 6d  |"DCB "+.34+helpm|
00000a00  65 73 73 24 28 63 6f 6d  6d 25 29 2b bd 33 34 0d  |ess$(comm%)+.34.|
00000a10  04 88 1c 20 20 20 20 20  20 20 20 20 20 d5 23 66  |...          .#f|
00000a20  6e 25 2c 22 44 43 42 20  31 33 22 0d 04 92 27 20  |n%,"DCB 13"...' |
00000a30  20 20 20 20 20 20 20 20  20 e7 20 73 79 6e 74 61  |         . synta|
00000a40  78 6d 65 73 73 24 28 63  6f 6d 6d 25 29 3d 22 22  |xmess$(comm%)=""|
00000a50  20 8c 0d 04 9c 1f 20 20  20 20 20 20 20 20 20 20  | .....          |
00000a60  20 20 20 20 d5 23 66 6e  25 2c 22 44 43 42 20 30  |    .#fn%,"DCB 0|
00000a70  22 0d 04 a6 1f 20 20 20  20 20 20 20 20 20 20 20  |"....           |
00000a80  20 20 20 d5 23 66 6e 25  2c 22 41 4c 49 47 4e 22  |   .#fn%,"ALIGN"|
00000a90  0d 04 b0 11 20 20 20 20  20 20 20 20 20 20 20 20  |....            |
00000aa0  cd 0d 04 ba 0d 20 20 20  20 20 20 20 20 cd 0d 04  |.....        ...|
00000ab0  c4 24 20 20 20 20 20 20  e7 20 73 79 6e 74 61 78  |.$      . syntax|
00000ac0  6d 65 73 73 24 28 63 6f  6d 6d 25 29 3c 3e 22 22  |mess$(comm%)<>""|
00000ad0  20 8c 0d 04 ce 24 20 20  20 20 20 20 20 20 20 20  | ....$          |
00000ae0  d5 23 66 6e 25 2c 22 2e  73 79 6e 74 61 78 22 2b  |.#fn%,".syntax"+|
00000af0  c3 63 6f 6d 6d 25 0d 04  d8 35 20 20 20 20 20 20  |.comm%...5      |
00000b00  20 20 20 20 d5 23 66 6e  25 2c 22 44 43 42 20 22  |    .#fn%,"DCB "|
00000b10  2b bd 33 34 2b 73 79 6e  74 61 78 6d 65 73 73 24  |+.34+syntaxmess$|
00000b20  28 63 6f 6d 6d 25 29 2b  bd 33 34 0d 04 e2 1b 20  |(comm%)+.34.... |
00000b30  20 20 20 20 20 20 20 20  20 d5 23 66 6e 25 2c 22  |         .#fn%,"|
00000b40  44 43 42 20 30 22 0d 04  ec 1b 20 20 20 20 20 20  |DCB 0"....      |
00000b50  20 20 20 20 d5 23 66 6e  25 2c 22 41 4c 49 47 4e  |    .#fn%,"ALIGN|
00000b60  22 0d 04 f6 0d 20 20 20  20 20 20 20 20 cd 0d 05  |"....        ...|
00000b70  00 0b 20 20 20 20 20 20  ed 0d 05 0a 05 e1 0d 05  |..      ........|
00000b80  14 04 0d 05 1e 19 dd f2  30 30 20 3a 20 f4 20 63  |........00 : . c|
00000b90  68 75 6e 6b 20 6e 75 6d  62 65 72 0d 05 28 41 e7  |hunk number..(A.|
00000ba0  20 ac 73 77 69 25 20 64  61 74 61 24 3d 22 44 43  | .swi% data$="DC|
00000bb0  44 20 30 22 20 8b 20 64  61 74 61 24 3d 22 44 43  |D 0" . data$="DC|
00000bc0  44 20 25 31 30 22 2b 63  68 75 6e 6b 6e 75 6d 62  |D %10"+chunknumb|
00000bd0  65 72 24 2b 22 30 30 30  30 30 30 22 0d 05 3c 05  |er$+"000000"..<.|
00000be0  e1 0d 05 3d 04 0d 05 46  12 dd f2 30 31 20 3a 20  |...=...F...01 : |
00000bf0  f4 20 74 69 74 6c 65 0d  05 50 1f d5 23 66 6e 25  |. title..P..#fn%|
00000c00  2c 22 44 43 42 20 22 2b  bd 33 34 2b 74 69 74 6c  |,"DCB "+.34+titl|
00000c10  65 24 2b bd 33 34 0d 05  5a 11 d5 23 66 6e 25 2c  |e$+.34..Z..#fn%,|
00000c20  22 44 43 42 20 30 22 0d  05 64 11 64 61 74 61 24  |"DCB 0"..d.data$|
00000c30  3d 22 41 4c 49 47 4e 22  0d 05 6e 05 e1 0d 05 6f  |="ALIGN"..n....o|
00000c40  04 0d 05 78 11 dd f2 30  32 20 3a 20 f4 20 68 65  |...x...02 : . he|
00000c50  6c 70 0d 05 82 1f 74 65  6d 70 24 3d 22 44 43 42  |lp....temp$="DCB|
00000c60  20 22 2b bd 33 34 2b 74  69 74 6c 65 24 2b bd 33  | "+.34+title$+.3|
00000c70  34 0d 05 8c 20 e7 20 a9  74 69 74 6c 65 24 3c 31  |4... . .title$<1|
00000c80  36 20 74 65 6d 70 24 2b  3d 22 2b 43 48 52 24 39  |6 temp$+="+CHR$9|
00000c90  22 0d 05 96 1f e7 20 a9  74 69 74 6c 65 24 3c 38  |"..... .title$<8|
00000ca0  20 74 65 6d 70 24 2b 3d  22 2b 43 48 52 24 39 22  | temp$+="+CHR$9"|
00000cb0  0d 05 a0 45 74 65 6d 70  24 2b 3d 22 2b 22 2b bd  |...Etemp$+="+"+.|
00000cc0  33 34 2b 76 65 72 73 69  6f 6e 24 2b 22 20 28 22  |34+version$+" ("|
00000cd0  2b bd 33 34 2b 22 2b 4d  49 44 24 28 54 49 4d 45  |+.34+"+MID$(TIME|
00000ce0  24 2c 35 2c 31 31 29 2b  22 2b bd 33 34 2b 22 29  |$,5,11)+"+.34+")|
00000cf0  22 2b bd 33 34 0d 05 aa  0f d5 23 66 6e 25 2c 74  |"+.34.....#fn%,t|
00000d00  65 6d 70 24 0d 05 b4 11  d5 23 66 6e 25 2c 22 44  |emp$.....#fn%,"D|
00000d10  43 42 20 30 22 0d 05 be  11 64 61 74 61 24 3d 22  |CB 0"....data$="|
00000d20  41 4c 49 47 4e 22 0d 05  c8 05 e1 0d 05 c9 04 0d  |ALIGN"..........|
00000d30  05 d2 18 dd f2 30 33 20  3a 20 f4 20 73 77 69 20  |.....03 : . swi |
00000d40  77 61 72 6e 69 6e 67 0d  05 dc 0c 64 61 74 61 24  |warning....data$|
00000d50  3d 22 22 0d 05 e6 12 e7  20 ac 73 77 69 25 20 f7  |=""..... .swi% .|
00000d60  20 8d 64 42 55 0d 05 f0  05 e1 0d 05 f1 04 0d 05  | .dBU...........|
00000d70  fa 16 dd f2 30 34 20 3a  20 f4 20 73 77 69 20 6e  |....04 : . swi n|
00000d80  61 6d 65 73 0d 06 04 1f  d5 23 66 6e 25 2c 22 44  |ames.....#fn%,"D|
00000d90  43 42 20 22 2b bd 33 34  2b 74 69 74 6c 65 24 2b  |CB "+.34+title$+|
00000da0  bd 33 34 0d 06 0e 11 d5  23 66 6e 25 2c 22 44 43  |.34.....#fn%,"DC|
00000db0  42 20 30 22 0d 06 18 1d  e3 20 73 77 69 6e 75 6d  |B 0"..... swinum|
00000dc0  25 3d 30 20 b8 20 6e 6f  6f 66 73 77 69 73 25 2d  |%=0 . noofswis%-|
00000dd0  31 0d 06 22 2a d5 23 66  6e 25 2c 22 44 43 42 20  |1.."*.#fn%,"DCB |
00000de0  22 2b bd 33 34 2b 73 77  69 6e 61 6d 65 24 28 73  |"+.34+swiname$(s|
00000df0  77 69 6e 75 6d 25 29 2b  bd 33 34 0d 06 2c 11 d5  |winum%)+.34..,..|
00000e00  23 66 6e 25 2c 22 44 43  42 20 30 22 0d 06 36 05  |#fn%,"DCB 0"..6.|
00000e10  ed 0d 06 40 11 d5 23 66  6e 25 2c 22 44 43 42 20  |...@..#fn%,"DCB |
00000e20  30 22 0d 06 4a 11 64 61  74 61 24 3d 22 41 4c 49  |0"..J.data$="ALI|
00000e30  47 4e 22 0d 06 54 05 e1  0d 06 55 04 0d 06 5e 16  |GN"..T....U...^.|
00000e40  dd f2 30 35 20 3a 20 f4  20 73 77 69 20 74 61 62  |..05 : . swi tab|
00000e50  6c 65 0d 06 68 0c 64 61  74 61 24 3d 22 22 0d 06  |le..h.data$=""..|
00000e60  72 1d e3 20 73 77 69 6e  75 6d 25 3d 30 20 b8 20  |r.. swinum%=0 . |
00000e70  6e 6f 6f 66 73 77 69 73  25 2d 31 0d 06 7c 1a d5  |noofswis%-1..|..|
00000e80  23 66 6e 25 2c 22 42 20  73 77 69 22 2b c3 73 77  |#fn%,"B swi"+.sw|
00000e90  69 6e 75 6d 25 0d 06 86  05 ed 0d 06 90 05 e1 0d  |inum%...........|
00000ea0  06 9a 16 dd f2 30 36 20  3a 20 f4 20 73 77 69 20  |.....06 : . swi |
00000eb0  65 72 72 6f 72 0d 06 a4  37 d5 23 66 6e 25 2c 22  |error...7.#fn%,"|
00000ec0  44 43 42 20 22 2b bd 33  34 2b 22 55 6e 6b 6e 6f  |DCB "+.34+"Unkno|
00000ed0  77 6e 20 22 2b 74 69 74  6c 65 24 2b 22 20 6f 70  |wn "+title$+" op|
00000ee0  65 72 61 74 69 6f 6e 22  2b bd 33 34 0d 06 ae 11  |eration"+.34....|
00000ef0  d5 23 66 6e 25 2c 22 44  43 42 20 30 22 0d 06 b8  |.#fn%,"DCB 0"...|
00000f00  11 64 61 74 61 24 3d 22  41 4c 49 47 4e 22 0d 06  |.data$="ALIGN"..|
00000f10  c2 05 e1 0d 06 cc 0d dd  f2 67 65 74 69 6e 66 6f  |.........getinfo|
00000f20  0d 06 d6 05 f5 0d 06 e0  07 ee 85 87 0d 06 ea 05  |................|
00000f30  db 0d 06 f4 81 f2 6d 65  6e 75 28 22 4e 65 77 20  |......menu("New |
00000f40  6d 6f 64 75 6c 65 3e 46  4e 6e 65 77 6d 6f 64 75  |module>FNnewmodu|
00000f50  6c 65 2c 53 61 76 65 20  6d 6f 64 75 6c 65 3e 46  |le,Save module>F|
00000f60  4e 73 61 76 65 6d 6f 64  75 6c 65 2c 4e 61 6d 65  |Nsavemodule,Name|
00000f70  20 6d 6f 64 75 6c 65 3e  46 4e 6e 61 6d 65 6d 6f  | module>FNnamemo|
00000f80  64 75 6c 65 2c 43 6f 6d  6d 61 6e 64 73 3e 46 4e  |dule,Commands>FN|
00000f90  63 6f 6d 6d 61 6e 64 73  2c 53 57 49 73 3e 46 4e  |commands,SWIs>FN|
00000fa0  73 77 69 73 2c 43 6f 64  65 3e 46 4e 63 6f 64 65  |swis,Code>FNcode|
00000fb0  22 29 0d 06 fe 0b fd 20  71 75 69 74 25 0d 07 08  |")..... quit%...|
00000fc0  05 e1 0d 07 12 0f dd a4  6e 65 77 6d 6f 64 75 6c  |........newmodul|
00000fd0  65 0d 07 1c 05 db 0d 07  26 2f f1 22 57 61 72 6e  |e.......&/."Warn|
00000fe0  69 6e 67 20 2d 20 41 6c  6c 20 63 75 72 72 65 6e  |ing - All curren|
00000ff0  74 20 64 61 74 61 20 77  69 6c 6c 20 62 65 20 6c  |t data will be l|
00001000  6f 73 74 21 22 0d 07 30  29 f1 27 22 41 72 65 20  |ost!"..0).'"Are |
00001010  79 6f 75 20 73 75 72 65  20 79 6f 75 20 77 61 6e  |you sure you wan|
00001020  74 20 74 6f 20 70 72 6f  63 65 65 64 3f 22 0d 07  |t to proceed?"..|
00001030  3a 07 f1 27 27 0d 07 44  2b f2 6d 65 6e 75 28 22  |:..''..D+.menu("|
00001040  59 65 73 3e 46 4e 63 6c  65 61 72 73 70 61 63 65  |Yes>FNclearspace|
00001050  2c 4e 6f 3e 46 4e 6e 6f  72 65 73 75 6c 74 22 29  |,No>FNnoresult")|
00001060  0d 07 4e 06 3d 30 0d 07  58 10 dd a4 63 6c 65 61  |..N.=0..X...clea|
00001070  72 73 70 61 63 65 0d 07  62 12 f2 69 6e 69 74 61  |rspace..b..inita|
00001080  6c 6c 79 6f 75 63 61 6e  0d 07 6c 06 3d 30 0d 07  |llyoucan..l.=0..|
00001090  76 0e dd a4 6e 6f 72 65  73 75 6c 74 0d 07 80 06  |v...noresult....|
000010a0  3d 37 0d 07 8a 10 dd a4  73 61 76 65 6d 6f 64 75  |=7......savemodu|
000010b0  6c 65 0d 07 94 05 db 0d  07 9e 29 e8 22 45 6e 74  |le........)."Ent|
000010c0  65 72 20 66 69 6c 65 6e  61 6d 65 20 74 6f 20 73  |er filename to s|
000010d0  61 76 65 20 61 73 20 3a  20 22 66 6e 61 6d 65 24  |ave as : "fname$|
000010e0  0d 07 a8 11 ee 85 ef 37  3a f2 67 65 74 69 6e 66  |.......7:.getinf|
000010f0  6f 0d 07 b2 12 e7 20 66  6e 61 6d 65 24 3d 22 22  |o..... fname$=""|
00001100  20 3d 37 0d 07 bc 11 f2  73 61 76 65 28 66 6e 61  | =7.....save(fna|
00001110  6d 65 24 29 0d 07 c6 06  3d 30 0d 07 d0 10 dd a4  |me$)....=0......|
00001120  6e 61 6d 65 6d 6f 64 75  6c 65 0d 07 da 05 db 0d  |namemodule......|
00001130  07 e4 27 f1 22 43 75 72  72 65 6e 74 20 6d 6f 64  |..'."Current mod|
00001140  75 6c 65 20 6e 61 6d 65  20 69 73 20 3a 20 22 3b  |ule name is : ";|
00001150  74 69 74 6c 65 24 0d 07  ee 27 e8 22 4e 65 77 20  |title$...'."New |
00001160  6e 61 6d 65 20 69 73 20  20 20 20 20 20 20 20 20  |name is         |
00001170  20 20 20 3a 20 22 6e 65  77 74 69 74 24 0d 07 f8  |   : "newtit$...|
00001180  13 e7 20 6e 65 77 74 69  74 24 3d 22 22 20 3d 37  |.. newtit$="" =7|
00001190  0d 08 02 16 e7 20 a9 28  6e 65 77 74 69 74 24 29  |..... .(newtit$)|
000011a0  3e 31 35 20 3d 37 0d 08  0c 12 74 69 74 6c 65 24  |>15 =7....title$|
000011b0  3d 6e 65 77 74 69 74 24  0d 08 16 06 3d 30 0d 08  |=newtit$....=0..|
000011c0  20 0e dd a4 63 6f 6d 6d  61 6e 64 73 0d 08 2a 05  | ...commands..*.|
000011d0  db 0d 08 34 56 f2 6d 65  6e 75 28 22 43 72 65 61  |...4V.menu("Crea|
000011e0  74 65 20 63 6f 6d 6d 61  6e 64 3e 46 4e 63 72 65  |te command>FNcre|
000011f0  61 74 65 63 6f 6d 6d 61  6e 64 2c 45 64 69 74 20  |atecommand,Edit |
00001200  63 6f 6d 6d 61 6e 64 3e  46 4e 65 64 69 74 63 6f  |command>FNeditco|
00001210  6d 6d 61 6e 64 2c 45 78  69 74 3e 46 4e 6e 6f 72  |mmand,Exit>FNnor|
00001220  65 73 75 6c 74 22 29 0d  08 3e 06 3d 30 0d 08 48  |esult")..>.=0..H|
00001230  13 dd a4 63 72 65 61 74  65 63 6f 6d 6d 61 6e 64  |...createcommand|
00001240  0d 08 52 16 e7 20 6e 6f  6f 66 63 6f 6d 6d 73 25  |..R.. noofcomms%|
00001250  3d 36 34 20 3d 37 0d 08  5c 05 db 0d 08 66 26 e8  |=64 =7..\....f&.|
00001260  22 45 6e 74 65 72 20 63  6f 6d 6d 61 6e 64 20 6e  |"Enter command n|
00001270  61 6d 65 20 3a 20 22 63  6f 6d 6d 32 6e 61 6d 65  |ame : "comm2name|
00001280  24 0d 08 70 1f f2 74 65  73 74 66 6f 72 63 6f 6d  |$..p..testforcom|
00001290  6d 61 6e 64 28 63 6f 6d  6d 32 6e 61 6d 65 24 29  |mand(comm2name$)|
000012a0  0d 08 7a 14 e7 20 63 6f  6d 6d 6e 6f 25 3d 32 35  |..z.. commno%=25|
000012b0  36 20 3d 37 0d 08 84 18  63 6f 6d 6d 6e 61 6d 65  |6 =7....commname|
000012c0  24 3d 63 6f 6d 6d 32 6e  61 6d 65 24 0d 08 8e 23  |$=comm2name$...#|
000012d0  63 6f 6d 6d 6e 61 6d 65  24 28 6e 6f 6f 66 63 6f  |commname$(noofco|
000012e0  6d 6d 73 25 29 3d 63 6f  6d 6d 6e 61 6d 65 24 0d  |mms%)=commname$.|
000012f0  08 98 1d 63 6f 6d 6d 61  6e 64 6e 75 6d 62 65 72  |...commandnumber|
00001300  25 3d 6e 6f 6f 66 63 6f  6d 6d 73 25 0d 08 a2 11  |%=noofcomms%....|
00001310  6e 6f 6f 66 63 6f 6d 6d  73 25 2b 3d 31 0d 08 ac  |noofcomms%+=1...|
00001320  0f 63 6f 6d 6d 61 6e 64  73 25 3d b9 0d 08 b6 06  |.commands%=.....|
00001330  3d 30 0d 08 c0 1f dd f2  74 65 73 74 66 6f 72 63  |=0......testforc|
00001340  6f 6d 6d 61 6e 64 28 63  6f 6d 6d 6e 61 6d 65 24  |ommand(commname$|
00001350  29 0d 08 ca 11 63 6f 6d  6d 61 6e 64 6e 6f 25 3d  |)....commandno%=|
00001360  2d 31 0d 08 d4 0d 63 6f  6d 6d 6e 6f 25 3d 30 0d  |-1....commno%=0.|
00001370  08 de 05 f5 0d 08 e8 46  e7 20 a4 65 71 28 63 6f  |.......F. .eq(co|
00001380  6d 6d 6e 61 6d 65 24 2c  63 6f 6d 6d 6e 61 6d 65  |mmname$,commname|
00001390  24 28 63 6f 6d 6d 6e 6f  25 29 29 20 63 6f 6d 6d  |$(commno%)) comm|
000013a0  61 6e 64 6e 6f 25 3d 63  6f 6d 6d 6e 6f 25 3a 63  |andno%=commno%:c|
000013b0  6f 6d 6d 6e 6f 25 3d 32  35 35 0d 08 f2 0e 63 6f  |ommno%=255....co|
000013c0  6d 6d 6e 6f 25 2b 3d 31  0d 08 fc 19 fd 20 63 6f  |mmno%+=1..... co|
000013d0  6d 6d 6e 6f 25 3e 3d 6e  6f 6f 66 63 6f 6d 6d 73  |mmno%>=noofcomms|
000013e0  25 0d 09 06 05 e1 0d 09  10 11 dd a4 65 64 69 74  |%...........edit|
000013f0  63 6f 6d 6d 61 6e 64 0d  09 1a 14 e7 20 ac 20 63  |command..... . c|
00001400  6f 6d 6d 61 6e 64 73 25  20 3d 37 0d 09 24 05 db  |ommands% =7..$..|
00001410  0d 09 2e db f2 6d 65 6e  75 28 22 4e 61 6d 65 3e  |.....menu("Name>|
00001420  46 4e 63 6f 6d 6d 61 6e  64 6e 61 6d 65 2c 52 65  |FNcommandname,Re|
00001430  6e 61 6d 65 3e 46 4e 63  6f 6d 6d 61 6e 64 72 65  |name>FNcommandre|
00001440  6e 61 6d 65 2c 48 65 6c  70 3e 46 4e 63 6f 6d 6d  |name,Help>FNcomm|
00001450  61 6e 64 68 65 6c 70 2c  53 79 6e 74 61 78 3e 46  |andhelp,Syntax>F|
00001460  4e 63 6f 6d 6d 61 6e 64  73 79 6e 74 61 78 2c 43  |Ncommandsyntax,C|
00001470  6f 64 65 3e 46 4e 63 6f  6d 6d 61 6e 64 63 6f 64  |ode>FNcommandcod|
00001480  65 2c 4d 61 78 20 70 61  72 61 6d 73 3e 46 4e 63  |e,Max params>FNc|
00001490  6f 6d 6d 61 6e 64 6d 61  78 2c 4d 69 6e 20 70 61  |ommandmax,Min pa|
000014a0  72 61 6d 73 3e 46 4e 63  6f 6d 6d 61 6e 64 6d 69  |rams>FNcommandmi|
000014b0  6e 2c 47 53 20 6d 61 70  3e 46 4e 63 6f 6d 6d 61  |n,GS map>FNcomma|
000014c0  6e 64 67 73 2c 46 6c 61  67 73 3e 46 4e 63 6f 6d  |ndgs,Flags>FNcom|
000014d0  6d 61 6e 64 66 6c 61 67  73 2c 45 78 69 74 3e 46  |mandflags,Exit>F|
000014e0  4e 6e 6f 72 65 73 75 6c  74 22 29 0d 09 38 06 3d  |Nnoresult")..8.=|
000014f0  30 0d 09 42 11 dd a4 63  6f 6d 6d 61 6e 64 6e 61  |0..B...commandna|
00001500  6d 65 0d 09 4c 05 db 0d  09 56 3b e7 20 63 6f 6d  |me..L....V;. com|
00001510  6d 6e 61 6d 65 24 3c 3e  22 22 20 f1 22 43 75 72  |mname$<>"" ."Cur|
00001520  72 65 6e 74 20 63 6f 6d  6d 61 6e 64 20 6e 61 6d  |rent command nam|
00001530  65 20 69 73 20 3a 20 22  3b 63 6f 6d 6d 6e 61 6d  |e is : ";commnam|
00001540  65 24 0d 09 60 2b e8 22  45 6e 74 65 72 20 6e 65  |e$..`+."Enter ne|
00001550  77 20 63 6f 6d 6d 61 6e  64 20 6e 61 6d 65 20 20  |w command name  |
00001560  3a 20 22 63 6f 6d 6d 32  6e 61 6d 65 24 0d 09 6a  |: "comm2name$..j|
00001570  16 e7 20 63 6f 6d 6d 32  6e 61 6d 65 24 3d 22 22  |.. comm2name$=""|
00001580  20 3d 37 0d 09 74 1f f2  74 65 73 74 66 6f 72 63  | =7..t..testforc|
00001590  6f 6d 6d 61 6e 64 28 63  6f 6d 6d 32 6e 61 6d 65  |ommand(comm2name|
000015a0  24 29 0d 09 7e 16 e7 20  63 6f 6d 6d 61 6e 64 6e  |$)..~.. commandn|
000015b0  6f 25 3d 2d 31 20 3d 37  0d 09 88 1d 63 6f 6d 6d  |o%=-1 =7....comm|
000015c0  61 6e 64 6e 75 6d 62 65  72 25 3d 63 6f 6d 6d 61  |andnumber%=comma|
000015d0  6e 64 6e 6f 25 0d 09 92  18 63 6f 6d 6d 6e 61 6d  |ndno%....commnam|
000015e0  65 24 3d 63 6f 6d 6d 32  6e 61 6d 65 24 0d 09 9c  |e$=comm2name$...|
000015f0  06 3d 30 0d 09 a6 13 dd  a4 63 6f 6d 6d 61 6e 64  |.=0......command|
00001600  72 65 6e 61 6d 65 0d 09  b0 15 e7 20 63 6f 6d 6d  |rename..... comm|
00001610  6e 61 6d 65 24 3d 22 22  20 3d 37 0d 09 ba 05 db  |name$="" =7.....|
00001620  0d 09 c4 2b f1 22 43 75  72 72 65 6e 74 20 63 6f  |...+."Current co|
00001630  6d 6d 61 6e 64 20 6e 61  6d 65 20 69 73 20 3a 20  |mmand name is : |
00001640  22 3b 63 6f 6d 6d 6e 61  6d 65 24 0d 09 ce 2b e8  |";commname$...+.|
00001650  22 45 6e 74 65 72 20 6e  65 77 20 63 6f 6d 6d 61  |"Enter new comma|
00001660  6e 64 20 6e 61 6d 65 20  20 3a 20 22 63 6f 6d 6d  |nd name  : "comm|
00001670  32 6e 61 6d 65 24 0d 09  d8 16 e7 20 63 6f 6d 6d  |2name$..... comm|
00001680  32 6e 61 6d 65 24 3d 22  22 20 3d 37 0d 09 e2 1f  |2name$="" =7....|
00001690  f2 74 65 73 74 66 6f 72  63 6f 6d 6d 61 6e 64 28  |.testforcommand(|
000016a0  63 6f 6d 6d 32 6e 61 6d  65 24 29 0d 09 ec 16 e7  |comm2name$).....|
000016b0  20 63 6f 6d 6d 61 6e 64  6e 6f 25 3e 2d 31 20 3d  | commandno%>-1 =|
000016c0  37 0d 09 f6 18 63 6f 6d  6d 6e 61 6d 65 24 3d 63  |7....commname$=c|
000016d0  6f 6d 6d 32 6e 61 6d 65  24 0d 0a 00 27 63 6f 6d  |omm2name$...'com|
000016e0  6d 6e 61 6d 65 24 28 63  6f 6d 6d 61 6e 64 6e 75  |mname$(commandnu|
000016f0  6d 62 65 72 25 29 3d 63  6f 6d 6d 6e 61 6d 65 24  |mber%)=commname$|
00001700  0d 0a 0a 06 3d 30 0d 0a  14 11 dd a4 63 6f 6d 6d  |....=0......comm|
00001710  61 6e 64 68 65 6c 70 0d  0a 1e 15 e7 20 63 6f 6d  |andhelp..... com|
00001720  6d 6e 61 6d 65 24 3d 22  22 20 3d 37 0d 0a 28 05  |mname$="" =7..(.|
00001730  db 0d 0a 32 24 e7 20 68  65 6c 70 6d 65 73 73 24  |...2$. helpmess$|
00001740  28 63 6f 6d 6d 61 6e 64  6e 75 6d 62 65 72 25 29  |(commandnumber%)|
00001750  3d 22 22 20 8c 0d 0a 3c  13 f1 22 4e 6f 20 68 65  |="" ...<.."No he|
00001760  6c 70 20 74 65 78 74 22  0d 0a 46 05 cc 0d 0a 50  |lp text"..F....P|
00001770  1b f1 22 43 75 72 72 65  6e 74 20 68 65 6c 70 20  |.."Current help |
00001780  74 65 78 74 20 3a 20 22  0d 0a 5a 36 c8 99 20 22  |text : "..Z6.. "|
00001790  4f 53 5f 50 72 65 74 74  79 50 72 69 6e 74 22 2c  |OS_PrettyPrint",|
000017a0  68 65 6c 70 6d 65 73 73  24 28 63 6f 6d 6d 61 6e  |helpmess$(comman|
000017b0  64 6e 75 6d 62 65 72 25  29 2c 30 2c 2d 31 0d 0a  |dnumber%),0,-1..|
000017c0  64 05 cd 0d 0a 6e 26 e8  22 45 6e 74 65 72 20 6e  |d....n&."Enter n|
000017d0  65 77 20 68 65 6c 70 20  74 65 78 74 20 3a 20 22  |ew help text : "|
000017e0  68 65 6c 70 74 65 78 74  24 0d 0a 78 15 e7 20 68  |helptext$..x.. h|
000017f0  65 6c 70 74 65 78 74 24  3d 22 22 20 3d 37 0d 0a  |elptext$="" =7..|
00001800  82 27 68 65 6c 70 6d 65  73 73 24 28 63 6f 6d 6d  |.'helpmess$(comm|
00001810  61 6e 64 6e 75 6d 62 65  72 25 29 3d 68 65 6c 70  |andnumber%)=help|
00001820  74 65 78 74 24 0d 0a 8c  06 3d 30 0d 0a 96 13 dd  |text$....=0.....|
00001830  a4 63 6f 6d 6d 61 6e 64  73 79 6e 74 61 78 0d 0a  |.commandsyntax..|
00001840  a0 15 e7 20 63 6f 6d 6d  6e 61 6d 65 24 3d 22 22  |... commname$=""|
00001850  20 3d 37 0d 0a aa 05 db  0d 0a b4 26 e7 20 73 79  | =7........&. sy|
00001860  6e 74 61 78 6d 65 73 73  24 28 63 6f 6d 6d 61 6e  |ntaxmess$(comman|
00001870  64 6e 75 6d 62 65 72 25  29 3d 22 22 20 8c 0d 0a  |dnumber%)="" ...|
00001880  be 1d f1 22 44 65 66 61  75 6c 74 20 73 79 6e 74  |..."Default synt|
00001890  61 78 20 6d 65 73 73 61  67 65 22 0d 0a c8 05 cc  |ax message".....|
000018a0  0d 0a d2 3c f1 22 43 75  72 72 65 6e 74 20 73 79  |...<."Current sy|
000018b0  6e 74 61 78 20 6d 65 73  73 61 67 65 20 3a 20 22  |ntax message : "|
000018c0  3b 73 79 6e 74 61 78 6d  65 73 73 24 28 63 6f 6d  |;syntaxmess$(com|
000018d0  6d 61 6e 64 6e 75 6d 62  65 72 25 29 0d 0a dc 05  |mandnumber%)....|
000018e0  cd 0d 0a e6 2a e8 22 45  6e 74 65 72 20 6e 65 77  |....*."Enter new|
000018f0  20 73 79 6e 74 61 78 20  74 65 78 74 20 3a 20 22  | syntax text : "|
00001900  73 79 6e 74 61 78 74 65  78 74 24 0d 0a f0 17 e7  |syntaxtext$.....|
00001910  20 73 79 6e 74 61 78 74  65 78 74 24 3d 22 22 20  | syntaxtext$="" |
00001920  3d 37 0d 0a fa 29 73 79  6e 74 61 78 6d 65 73 73  |=7...)syntaxmess|
00001930  24 28 63 6f 6d 6d 61 6e  64 6e 75 6d 62 65 72 25  |$(commandnumber%|
00001940  29 3d 68 65 6c 70 74 65  78 74 24 0d 0b 04 06 3d  |)=helptext$....=|
00001950  30 0d 0b 0e 11 dd a4 63  6f 6d 6d 61 6e 64 63 6f  |0......commandco|
00001960  64 65 0d 0b 18 15 e7 20  63 6f 6d 6d 6e 61 6d 65  |de..... commname|
00001970  24 3d 22 22 20 3d 37 0d  0b 22 05 db 0d 0b 2c 1e  |$="" =7.."....,.|
00001980  f1 22 43 6f 6d 6d 61 6e  64 20 63 75 72 72 65 6e  |."Command curren|
00001990  74 6c 79 20 68 61 73 20  22 3b 0d 0b 36 2e e7 20  |tly has ";..6.. |
000019a0  ac 20 61 63 74 75 61 6c  63 6f 6d 6d 61 6e 64 25  |. actualcommand%|
000019b0  28 63 6f 6d 6d 61 6e 64  6e 75 6d 62 65 72 25 29  |(commandnumber%)|
000019c0  20 f1 22 6e 6f 20 22 3b  0d 0b 40 23 f1 22 72 75  | ."no ";..@#."ru|
000019d0  6e 2d 63 6f 64 65 20 61  73 73 6f 63 69 61 74 65  |n-code associate|
000019e0  64 20 77 69 74 68 20 69  74 2e 22 0d 0b 4a 24 f1  |d with it."..J$.|
000019f0  22 44 6f 20 79 6f 75 20  77 69 73 68 20 74 6f 20  |"Do you wish to |
00001a00  68 61 76 65 20 72 75 6e  2d 63 6f 64 65 3f 22 0d  |have run-code?".|
00001a10  0b 54 07 f1 27 27 0d 0b  5e 39 f2 6d 65 6e 75 28  |.T..''..^9.menu(|
00001a20  22 59 65 73 3e 46 4e 72  75 6e 63 6f 64 65 2c 4e  |"Yes>FNruncode,N|
00001a30  6f 3e 46 4e 6e 6f 72 75  6e 63 6f 64 65 2c 45 78  |o>FNnoruncode,Ex|
00001a40  69 74 3e 46 4e 6e 6f 72  65 73 75 6c 74 22 29 0d  |it>FNnoresult").|
00001a50  0b 68 06 3d 30 0d 0b 72  0d dd a4 72 75 6e 63 6f  |.h.=0..r...runco|
00001a60  64 65 0d 0b 7c 25 61 63  74 75 61 6c 63 6f 6d 6d  |de..|%actualcomm|
00001a70  61 6e 64 25 28 63 6f 6d  6d 61 6e 64 6e 75 6d 62  |and%(commandnumb|
00001a80  65 72 25 29 3d 2d 31 0d  0b 86 06 3d 30 0d 0b 90  |er%)=-1....=0...|
00001a90  0f dd a4 6e 6f 72 75 6e  63 6f 64 65 0d 0b 9a 24  |...noruncode...$|
00001aa0  61 63 74 75 61 6c 63 6f  6d 6d 61 6e 64 25 28 63  |actualcommand%(c|
00001ab0  6f 6d 6d 61 6e 64 6e 75  6d 62 65 72 25 29 3d 30  |ommandnumber%)=0|
00001ac0  0d 0b a4 06 3d 30 0d 0b  ae 05 20 0d 0b b8 10 dd  |....=0.... .....|
00001ad0  a4 63 6f 6d 6d 61 6e 64  6d 69 6e 0d 0b c2 15 e7  |.commandmin.....|
00001ae0  20 63 6f 6d 6d 6e 61 6d  65 24 3d 22 22 20 3d 37  | commname$="" =7|
00001af0  0d 0b cc 05 db 0d 0b d6  57 f1 22 43 6f 6d 6d 61  |........W."Comma|
00001b00  6e 64 20 63 75 72 72 65  6e 74 6c 79 20 68 61 73  |nd currently has|
00001b10  20 61 20 6d 69 6e 69 6d  75 6d 20 6f 66 20 22 3b  | a minimum of ";|
00001b20  c3 28 6d 69 6e 70 61 72  61 6d 73 25 28 63 6f 6d  |.(minparams%(com|
00001b30  6d 61 6e 64 6e 75 6d 62  65 72 25 29 29 3b 22 20  |mandnumber%));" |
00001b40  70 61 72 61 6d 65 74 65  72 73 2e 22 0d 0b e0 32  |parameters."...2|
00001b50  e8 22 45 6e 74 65 72 20  6e 75 6d 62 65 72 20 6f  |."Enter number o|
00001b60  66 20 6d 69 6e 69 6d 75  6d 20 70 61 72 61 6d 65  |f minimum parame|
00001b70  74 65 72 73 20 3a 20 22  70 61 72 61 6d 24 0d 0b  |ters : "param$..|
00001b80  ea 21 e7 20 70 61 72 61  6d 24 3c 22 30 22 20 84  |.!. param$<"0" .|
00001b90  20 70 61 72 61 6d 24 3e  22 39 39 22 20 3d 37 0d  | param$>"99" =7.|
00001ba0  0b f4 12 70 61 72 61 6d  25 3d bb 70 61 72 61 6d  |...param%=.param|
00001bb0  24 0d 0b fe 1e e7 20 70  61 72 61 6d 25 3c 30 20  |$..... param%<0 |
00001bc0  84 20 70 61 72 61 6d 25  3e 32 35 35 20 3d 37 0d  |. param%>255 =7.|
00001bd0  0c 08 25 6d 69 6e 70 61  72 61 6d 73 25 28 63 6f  |..%minparams%(co|
00001be0  6d 6d 61 6e 64 6e 75 6d  62 65 72 25 29 3d 70 61  |mmandnumber%)=pa|
00001bf0  72 61 6d 25 0d 0c 12 06  3d 30 0d 0c 1c 10 dd a4  |ram%....=0......|
00001c00  63 6f 6d 6d 61 6e 64 6d  61 78 0d 0c 26 15 e7 20  |commandmax..&.. |
00001c10  63 6f 6d 6d 6e 61 6d 65  24 3d 22 22 20 3d 37 0d  |commname$="" =7.|
00001c20  0c 30 05 db 0d 0c 3a 57  f1 22 43 6f 6d 6d 61 6e  |.0....:W."Comman|
00001c30  64 20 63 75 72 72 65 6e  74 6c 79 20 68 61 73 20  |d currently has |
00001c40  61 20 6d 61 78 69 6d 75  6d 20 6f 66 20 22 3b c3  |a maximum of ";.|
00001c50  28 6d 61 78 70 61 72 61  6d 73 25 28 63 6f 6d 6d  |(maxparams%(comm|
00001c60  61 6e 64 6e 75 6d 62 65  72 25 29 29 3b 22 20 70  |andnumber%));" p|
00001c70  61 72 61 6d 65 74 65 72  73 2e 22 0d 0c 44 32 e8  |arameters."..D2.|
00001c80  22 45 6e 74 65 72 20 6e  75 6d 62 65 72 20 6f 66  |"Enter number of|
00001c90  20 6d 61 78 69 6d 75 6d  20 70 61 72 61 6d 65 74  | maximum paramet|
00001ca0  65 72 73 20 3a 20 22 70  61 72 61 6d 24 0d 0c 4e  |ers : "param$..N|
00001cb0  21 e7 20 70 61 72 61 6d  24 3c 22 30 22 20 84 20  |!. param$<"0" . |
00001cc0  70 61 72 61 6d 24 3e 22  39 39 22 20 3d 37 0d 0c  |param$>"99" =7..|
00001cd0  58 12 70 61 72 61 6d 25  3d bb 70 61 72 61 6d 24  |X.param%=.param$|
00001ce0  0d 0c 62 37 e7 20 70 61  72 61 6d 25 3c 6d 69 6e  |..b7. param%<min|
00001cf0  70 61 72 61 6d 73 25 28  63 6f 6d 6d 61 6e 64 6e  |params%(commandn|
00001d00  75 6d 62 65 72 25 29 20  84 20 70 61 72 61 6d 25  |umber%) . param%|
00001d10  3e 32 35 35 20 3d 37 0d  0c 6c 25 6d 61 78 70 61  |>255 =7..l%maxpa|
00001d20  72 61 6d 73 25 28 63 6f  6d 6d 61 6e 64 6e 75 6d  |rams%(commandnum|
00001d30  62 65 72 25 29 3d 70 61  72 61 6d 25 0d 0c 76 06  |ber%)=param%..v.|
00001d40  3d 30 0d 0c 80 0f dd a4  63 6f 6d 6d 61 6e 64 67  |=0......commandg|
00001d50  73 0d 0c 8a 15 e7 20 63  6f 6d 6d 6e 61 6d 65 24  |s..... commname$|
00001d60  3d 22 22 20 3d 37 0d 0c  94 05 db 0d 0c 9e 33 f1  |="" =7........3.|
00001d70  22 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |"               |
00001d80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001d90  20 20 20 20 20 37 36 35  34 33 32 31 30 22 0d 0c  |     76543210"..|
00001da0  a8 2c f1 22 43 6f 6d 6d  61 6e 64 20 63 75 72 72  |.,."Command curr|
00001db0  65 6e 74 6c 79 20 68 61  73 20 61 20 47 53 20 6d  |ently has a GS m|
00001dc0  61 70 20 6f 66 20 3a 20  22 3b 0d 0c b2 0b 62 69  |ap of : ";....bi|
00001dd0  6e 24 3d 22 22 0d 0c bc  3a c8 99 20 22 4f 53 5f  |n$=""...:.. "OS_|
00001de0  43 6f 6e 76 65 72 74 42  69 6e 61 72 79 31 22 2c  |ConvertBinary1",|
00001df0  67 73 6d 61 70 25 28 63  6f 6d 6d 61 6e 64 6e 75  |gsmap%(commandnu|
00001e00  6d 62 65 72 25 29 2c 62  69 6e 25 2c 32 35 35 0d  |mber%),bin%,255.|
00001e10  0c c6 0c 63 6f 75 6e 74  25 3d 30 0d 0c d0 15 c8  |...count%=0.....|
00001e20  95 20 62 69 6e 25 3f 63  6f 75 6e 74 25 3e 33 31  |. bin%?count%>31|
00001e30  0d 0c da 18 62 69 6e 24  2b 3d bd 28 62 69 6e 25  |....bin$+=.(bin%|
00001e40  3f 63 6f 75 6e 74 25 29  0d 0c e4 0d 63 6f 75 6e  |?count%)....coun|
00001e50  74 25 2b 3d 31 0d 0c ee  05 ce 0d 0c f8 09 f1 62  |t%+=1..........b|
00001e60  69 6e 24 0d 0d 02 31 e8  22 4e 65 77 20 47 53 20  |in$...1."New GS |
00001e70  6d 61 70 20 69 73 20 20  20 20 20 20 20 20 20 20  |map is          |
00001e80  20 20 20 20 20 20 20 20  20 20 20 3a 20 22 67 73  |           : "gs|
00001e90  6d 61 70 24 0d 0d 0c 2e  e7 20 67 73 6d 61 70 24  |map$..... gsmap$|
00001ea0  3c 22 30 30 30 30 30 30  30 30 22 20 84 20 67 73  |<"00000000" . gs|
00001eb0  6d 61 70 24 3e 22 31 31  31 31 31 31 31 31 22 20  |map$>"11111111" |
00001ec0  3d 37 0d 0d 16 28 67 73  6d 61 70 25 28 63 6f 6d  |=7...(gsmap%(com|
00001ed0  6d 61 6e 64 6e 75 6d 62  65 72 25 29 3d a0 28 22  |mandnumber%)=.("|
00001ee0  25 22 2b 67 73 6d 61 70  24 29 0d 0d 20 06 3d 30  |%"+gsmap$).. .=0|
00001ef0  0d 0d 2a 12 dd a4 63 6f  6d 6d 61 6e 64 66 6c 61  |..*...commandfla|
00001f00  67 73 0d 0d 34 15 e7 20  63 6f 6d 6d 6e 61 6d 65  |gs..4.. commname|
00001f10  24 3d 22 22 20 3d 37 0d  0d 3e 05 db 0d 0d 48 55  |$="" =7..>....HU|
00001f20  f2 6d 65 6e 75 28 22 46  69 6c 65 20 63 6f 6d 6d  |.menu("File comm|
00001f30  61 6e 64 3e 46 4e 66 69  6c 65 63 6f 6d 6d 61 6e  |and>FNfilecomman|
00001f40  64 2c 43 6f 6e 66 69 67  75 72 65 20 63 6f 6d 6d  |d,Configure comm|
00001f50  61 6e 64 3e 46 4e 63 6f  6e 66 69 67 75 72 65 2c  |and>FNconfigure,|
00001f60  45 78 69 74 3e 46 4e 6e  6f 72 65 73 75 6c 74 22  |Exit>FNnoresult"|
00001f70  29 0d 0d 52 06 3d 30 0d  0d 5c 11 dd a4 66 69 6c  |)..R.=0..\...fil|
00001f80  65 63 6f 6d 6d 61 6e 64  0d 0d 66 15 e7 20 63 6f  |ecommand..f.. co|
00001f90  6d 6d 6e 61 6d 65 24 3d  22 22 20 3d 37 0d 0d 70  |mmname$="" =7..p|
00001fa0  05 db 0d 0d 7a 1d f1 22  43 6f 6d 6d 61 6e 64 20  |....z.."Command |
00001fb0  63 75 72 72 65 6e 74 6c  79 20 69 73 20 22 3b 0d  |currently is ";.|
00001fc0  0d 84 31 e7 20 28 66 6c  61 67 73 25 28 63 6f 6d  |..1. (flags%(com|
00001fd0  6d 61 6e 64 6e 75 6d 62  65 72 25 29 80 28 31 3c  |mandnumber%).(1<|
00001fe0  3c 33 31 29 29 3d 30 20  f1 22 6e 6f 74 20 22 3b  |<31))=0 ."not ";|
00001ff0  0d 0d 8e 16 f1 22 61 20  66 69 6c 65 20 63 6f 6d  |....."a file com|
00002000  6d 61 6e 64 2e 22 0d 0d  98 2b f1 22 44 6f 20 79  |mand."...+."Do y|
00002010  6f 75 20 77 69 73 68 20  69 74 20 74 6f 20 62 65  |ou wish it to be|
00002020  20 61 20 66 69 6c 65 20  63 6f 6d 6d 61 6e 64 3f  | a file command?|
00002030  22 0d 0d a2 07 f1 27 27  0d 0d ac 3c f2 6d 65 6e  |".....''...<.men|
00002040  75 28 22 59 65 73 3e 46  4e 66 69 6c 65 63 6f 6d  |u("Yes>FNfilecom|
00002050  6d 2c 4e 6f 3e 46 4e 6e  6f 74 66 69 6c 65 63 6f  |m,No>FNnotfileco|
00002060  6d 6d 2c 45 78 69 74 3e  46 4e 6e 6f 72 65 73 75  |mm,Exit>FNnoresu|
00002070  6c 74 22 29 0d 0d b6 06  3d 30 0d 0d c0 0e dd a4  |lt")....=0......|
00002080  66 69 6c 65 63 6f 6d 6d  0d 0d ca 39 66 6c 61 67  |filecomm...9flag|
00002090  73 25 28 63 6f 6d 6d 61  6e 64 6e 75 6d 62 65 72  |s%(commandnumber|
000020a0  25 29 3d 66 6c 61 67 73  25 28 63 6f 6d 6d 61 6e  |%)=flags%(comman|
000020b0  64 6e 75 6d 62 65 72 25  29 84 28 31 3c 3c 33 31  |dnumber%).(1<<31|
000020c0  29 0d 0d d4 06 3d 30 0d  0d de 11 dd a4 6e 6f 74  |)....=0......not|
000020d0  66 69 6c 65 63 6f 6d 6d  0d 0d e8 3a 66 6c 61 67  |filecomm...:flag|
000020e0  73 25 28 63 6f 6d 6d 61  6e 64 6e 75 6d 62 65 72  |s%(commandnumber|
000020f0  25 29 3d 66 6c 61 67 73  25 28 63 6f 6d 6d 61 6e  |%)=flags%(comman|
00002100  64 6e 75 6d 62 65 72 25  29 80 ac 28 31 3c 3c 33  |dnumber%)..(1<<3|
00002110  31 29 0d 0d f2 06 3d 30  0d 0d fc 0f dd a4 63 6f  |1)....=0......co|
00002120  6e 66 69 67 75 72 65 0d  0e 06 15 e7 20 63 6f 6d  |nfigure..... com|
00002130  6d 6e 61 6d 65 24 3d 22  22 20 3d 37 0d 0e 10 05  |mname$="" =7....|
00002140  db 0d 0e 1a 1d f1 22 43  6f 6d 6d 61 6e 64 20 63  |......"Command c|
00002150  75 72 72 65 6e 74 6c 79  20 69 73 20 22 3b 0d 0e  |urrently is ";..|
00002160  24 31 e7 20 28 66 6c 61  67 73 25 28 63 6f 6d 6d  |$1. (flags%(comm|
00002170  61 6e 64 6e 75 6d 62 65  72 25 29 80 28 31 3c 3c  |andnumber%).(1<<|
00002180  33 30 29 29 3d 30 20 f1  22 6e 6f 74 20 22 3b 0d  |30))=0 ."not ";.|
00002190  0e 2e 1b f1 22 61 20 63  6f 6e 66 69 67 75 72 65  |...."a configure|
000021a0  20 63 6f 6d 6d 61 6e 64  2e 22 0d 0e 38 30 f1 22  | command."..80."|
000021b0  44 6f 20 79 6f 75 20 77  69 73 68 20 69 74 20 74  |Do you wish it t|
000021c0  6f 20 62 65 20 61 20 63  6f 6e 66 69 67 75 72 65  |o be a configure|
000021d0  20 63 6f 6d 6d 61 6e 64  3f 22 0d 0e 42 07 f1 27  | command?"..B..'|
000021e0  27 0d 0e 4c 38 f2 6d 65  6e 75 28 22 59 65 73 3e  |'..L8.menu("Yes>|
000021f0  46 4e 63 6f 6e 66 69 67  2c 4e 6f 3e 46 4e 6e 6f  |FNconfig,No>FNno|
00002200  74 63 6f 6e 66 69 67 2c  45 78 69 74 3e 46 4e 6e  |tconfig,Exit>FNn|
00002210  6f 72 65 73 75 6c 74 22  29 0d 0e 56 06 3d 30 0d  |oresult")..V.=0.|
00002220  0e 60 0c dd a4 63 6f 6e  66 69 67 0d 0e 6a 39 66  |.`...config..j9f|
00002230  6c 61 67 73 25 28 63 6f  6d 6d 61 6e 64 6e 75 6d  |lags%(commandnum|
00002240  62 65 72 25 29 3d 66 6c  61 67 73 25 28 63 6f 6d  |ber%)=flags%(com|
00002250  6d 61 6e 64 6e 75 6d 62  65 72 25 29 84 28 31 3c  |mandnumber%).(1<|
00002260  3c 33 30 29 0d 0e 74 06  3d 30 0d 0e 7e 0f dd a4  |<30)..t.=0..~...|
00002270  6e 6f 74 63 6f 6e 66 69  67 0d 0e 88 3a 66 6c 61  |notconfig...:fla|
00002280  67 73 25 28 63 6f 6d 6d  61 6e 64 6e 75 6d 62 65  |gs%(commandnumbe|
00002290  72 25 29 3d 66 6c 61 67  73 25 28 63 6f 6d 6d 61  |r%)=flags%(comma|
000022a0  6e 64 6e 75 6d 62 65 72  25 29 80 ac 28 31 3c 3c  |ndnumber%)..(1<<|
000022b0  33 30 29 0d 0e 92 06 3d  30 0d 0e 9c 0a dd a4 73  |30)....=0......s|
000022c0  77 69 73 0d 0e a6 05 db  0d 0e b0 62 f2 6d 65 6e  |wis........b.men|
000022d0  75 28 22 43 72 65 61 74  65 20 73 77 69 3e 46 4e  |u("Create swi>FN|
000022e0  63 72 65 61 74 65 73 77  69 2c 44 65 66 69 6e 65  |createswi,Define|
000022f0  20 63 68 75 6e 6b 20 6e  75 6d 62 65 72 3e 46 4e  | chunk number>FN|
00002300  63 68 75 6e 6b 2c 45 64  69 74 20 73 77 69 3e 46  |chunk,Edit swi>F|
00002310  4e 65 64 69 74 73 77 69  2c 45 78 69 74 3e 46 4e  |Neditswi,Exit>FN|
00002320  6e 6f 72 65 73 75 6c 74  22 29 0d 0e ba 06 3d 30  |noresult")....=0|
00002330  0d 0e c4 0f dd a4 63 72  65 61 74 65 73 77 69 0d  |......createswi.|
00002340  0e ce 15 e7 20 6e 6f 6f  66 73 77 69 73 25 3d 36  |.... noofswis%=6|
00002350  34 20 3d 37 0d 0e d8 05  db 0d 0e e2 21 e8 22 45  |4 =7........!."E|
00002360  6e 74 65 72 20 73 77 69  20 6e 61 6d 65 20 3a 20  |nter swi name : |
00002370  22 73 77 69 32 6e 61 6d  65 24 0d 0e ec 1a f2 74  |"swi2name$.....t|
00002380  65 73 74 66 6f 72 73 77  69 28 73 77 69 32 6e 61  |estforswi(swi2na|
00002390  6d 65 24 29 0d 0e f6 13  e7 20 73 77 69 6e 6f 25  |me$)..... swino%|
000023a0  3d 32 35 36 20 3d 37 0d  0f 00 16 73 77 69 6e 61  |=256 =7....swina|
000023b0  6d 65 24 3d 73 77 69 32  6e 61 6d 65 24 0d 0f 0a  |me$=swi2name$...|
000023c0  20 73 77 69 6e 61 6d 65  24 28 6e 6f 6f 66 73 77  | swiname$(noofsw|
000023d0  69 73 25 29 3d 73 77 69  6e 61 6d 65 24 0d 0f 14  |is%)=swiname$...|
000023e0  1c 63 75 72 72 73 77 69  6e 75 6d 62 65 72 25 3d  |.currswinumber%=|
000023f0  6e 6f 6f 66 73 77 69 73  25 0d 0f 1e 10 6e 6f 6f  |noofswis%....noo|
00002400  66 73 77 69 73 25 2b 3d  31 0d 0f 28 0a 73 77 69  |fswis%+=1..(.swi|
00002410  25 3d b9 0d 0f 32 06 3d  30 0d 0f 3c 1a dd f2 74  |%=...2.=0..<...t|
00002420  65 73 74 66 6f 72 73 77  69 28 73 77 69 6e 61 6d  |estforswi(swinam|
00002430  65 24 29 0d 0f 46 11 63  75 72 72 73 77 69 6e 6f  |e$)..F.currswino|
00002440  25 3d 2d 31 0d 0f 50 0c  73 77 69 6e 6f 25 3d 30  |%=-1..P.swino%=0|
00002450  0d 0f 5a 05 f5 0d 0f 64  3c e7 20 73 77 69 6e 61  |..Z....d<. swina|
00002460  6d 65 24 3d 73 77 69 6e  61 6d 65 24 28 73 77 69  |me$=swiname$(swi|
00002470  6e 6f 25 29 20 63 75 72  72 73 77 69 6e 6f 25 3d  |no%) currswino%=|
00002480  73 77 69 6e 6f 25 3a 73  77 69 6e 6f 25 3d 32 35  |swino%:swino%=25|
00002490  35 0d 0f 6e 0d 73 77 69  6e 6f 25 2b 3d 31 0d 0f  |5..n.swino%+=1..|
000024a0  78 17 fd 20 73 77 69 6e  6f 25 3e 3d 6e 6f 6f 66  |x.. swino%>=noof|
000024b0  73 77 69 73 25 0d 0f 82  05 e1 0d 0f 8c 0d dd a4  |swis%...........|
000024c0  65 64 69 74 73 77 69 0d  0f 96 0d e7 20 73 77 69  |editswi..... swi|
000024d0  25 20 3d 37 0d 0f a0 05  db 0d 0f aa 3e f2 6d 65  |% =7........>.me|
000024e0  6e 75 28 22 4e 61 6d 65  3e 46 4e 73 77 69 6e 61  |nu("Name>FNswina|
000024f0  6d 65 2c 52 65 6e 61 6d  65 3e 46 4e 73 77 69 72  |me,Rename>FNswir|
00002500  65 6e 61 6d 65 2c 45 78  69 74 3e 46 4e 6e 6f 72  |ename,Exit>FNnor|
00002510  65 73 75 6c 74 22 29 0d  0f b4 06 3d 30 0d 0f be  |esult")....=0...|
00002520  0d dd a4 73 77 69 6e 61  6d 65 0d 0f c8 05 db 0d  |...swiname......|
00002530  0f d2 35 e7 20 73 77 69  6e 61 6d 65 24 3c 3e 22  |..5. swiname$<>"|
00002540  22 20 f1 22 43 75 72 72  65 6e 74 20 53 57 49 20  |" ."Current SWI |
00002550  6e 61 6d 65 20 69 73 20  3a 20 22 3b 73 77 69 6e  |name is : ";swin|
00002560  61 6d 65 24 0d 0f dc 26  e8 22 45 6e 74 65 72 20  |ame$...&."Enter |
00002570  6e 65 77 20 53 57 49 20  6e 61 6d 65 20 20 3a 20  |new SWI name  : |
00002580  22 73 77 69 32 6e 61 6d  65 24 0d 0f e6 15 e7 20  |"swi2name$..... |
00002590  73 77 69 32 6e 61 6d 65  24 3d 22 22 20 3d 37 0d  |swi2name$="" =7.|
000025a0  0f f0 1a f2 74 65 73 74  66 6f 72 73 77 69 28 73  |....testforswi(s|
000025b0  77 69 32 6e 61 6d 65 24  29 0d 0f fa 16 e7 20 63  |wi2name$)..... c|
000025c0  75 72 72 73 77 69 6e 6f  25 3d 2d 31 20 3d 37 0d  |urrswino%=-1 =7.|
000025d0  10 04 1d 63 75 72 72 73  77 69 6e 75 6d 62 65 72  |...currswinumber|
000025e0  25 3d 63 75 72 72 73 77  69 6e 6f 25 0d 10 0e 16  |%=currswino%....|
000025f0  73 77 69 6e 61 6d 65 24  3d 73 77 69 32 6e 61 6d  |swiname$=swi2nam|
00002600  65 24 0d 10 18 06 3d 30  0d 10 22 0f dd a4 73 77  |e$....=0.."...sw|
00002610  69 72 65 6e 61 6d 65 0d  10 2c 14 e7 20 73 77 69  |irename..,.. swi|
00002620  6e 61 6d 65 24 3d 22 22  20 3d 37 0d 10 36 05 db  |name$="" =7..6..|
00002630  0d 10 40 26 f1 22 43 75  72 72 65 6e 74 20 53 57  |..@&."Current SW|
00002640  49 20 6e 61 6d 65 20 69  73 20 3a 20 22 3b 73 77  |I name is : ";sw|
00002650  69 6e 61 6d 65 24 0d 10  4a 26 e8 22 45 6e 74 65  |iname$..J&."Ente|
00002660  72 20 6e 65 77 20 53 57  49 20 6e 61 6d 65 20 20  |r new SWI name  |
00002670  3a 20 22 73 77 69 32 6e  61 6d 65 24 0d 10 54 15  |: "swi2name$..T.|
00002680  e7 20 73 77 69 32 6e 61  6d 65 24 3d 22 22 20 3d  |. swi2name$="" =|
00002690  37 0d 10 5e 1a f2 74 65  73 74 66 6f 72 73 77 69  |7..^..testforswi|
000026a0  28 73 77 69 32 6e 61 6d  65 24 29 0d 10 68 16 e7  |(swi2name$)..h..|
000026b0  20 63 75 72 72 73 77 69  6e 6f 25 3e 2d 31 20 3d  | currswino%>-1 =|
000026c0  37 0d 10 72 16 73 77 69  6e 61 6d 65 24 3d 73 77  |7..r.swiname$=sw|
000026d0  69 32 6e 61 6d 65 24 0d  10 7c 25 73 77 69 6e 61  |i2name$..|%swina|
000026e0  6d 65 24 28 63 75 72 72  73 77 69 6e 75 6d 62 65  |me$(currswinumbe|
000026f0  72 25 29 3d 73 77 69 6e  61 6d 65 24 0d 10 86 06  |r%)=swiname$....|
00002700  3d 30 0d 10 90 0b dd a4  63 68 75 6e 6b 0d 10 9a  |=0......chunk...|
00002710  05 db 0d 10 a4 32 f1 22  43 75 72 72 65 6e 74 20  |.....2."Current |
00002720  53 57 49 20 63 68 75 6e  6b 20 6e 75 6d 62 65 72  |SWI chunk number|
00002730  20 69 73 20 3a 20 22 3b  63 68 75 6e 6b 6e 75 6d  | is : ";chunknum|
00002740  62 65 72 24 0d 10 ae 32  e8 22 45 6e 74 65 72 20  |ber$...2."Enter |
00002750  6e 65 77 20 53 57 49 20  63 68 75 6e 6b 20 6e 75  |new SWI chunk nu|
00002760  6d 62 65 72 20 20 3a 20  22 63 68 75 6e 6b 32 6e  |mber  : "chunk2n|
00002770  75 6d 62 65 72 24 0d 10  b8 5b e7 20 63 68 75 6e  |umber$...[. chun|
00002780  6b 32 6e 75 6d 62 65 72  24 3c 22 30 30 30 30 30  |k2number$<"00000|
00002790  30 30 30 30 30 30 31 22  20 84 20 63 68 75 6e 6b  |0000001" . chunk|
000027a0  32 6e 75 6d 62 65 72 24  3e 22 31 31 31 31 31 31  |2number$>"111111|
000027b0  31 31 31 31 31 31 22 20  84 20 a9 28 63 68 75 6e  |111111" . .(chun|
000027c0  6b 32 6e 75 6d 62 65 72  24 29 3c 3e 31 32 20 3d  |k2number$)<>12 =|
000027d0  37 0d 10 c2 1e 63 68 75  6e 6b 6e 75 6d 62 65 72  |7....chunknumber|
000027e0  24 3d 63 68 75 6e 6b 32  6e 75 6d 62 65 72 24 0d  |$=chunk2number$.|
000027f0  10 cc 06 3d 30 0d 10 d6  0a dd a4 63 6f 64 65 0d  |...=0......code.|
00002800  10 e0 05 db 0d 10 ea 8c  f2 6d 65 6e 75 28 22 53  |.........menu("S|
00002810  74 61 72 74 20 63 6f 64  65 3e 46 4e 73 74 61 72  |tart code>FNstar|
00002820  74 63 6f 64 65 2c 49 6e  69 74 69 61 6c 69 73 61  |tcode,Initialisa|
00002830  74 69 6f 6e 20 63 6f 64  65 3e 46 4e 69 6e 69 74  |tion code>FNinit|
00002840  63 6f 64 65 2c 46 69 6e  61 6c 69 73 61 74 69 6f  |code,Finalisatio|
00002850  6e 20 63 6f 64 65 3e 46  4e 66 69 6e 69 73 68 63  |n code>FNfinishc|
00002860  6f 64 65 2c 53 65 72 76  69 63 65 20 63 6f 64 65  |ode,Service code|
00002870  3e 46 4e 73 65 72 76 69  63 65 63 6f 64 65 2c 45  |>FNservicecode,E|
00002880  78 69 74 3e 46 4e 6e 6f  72 65 73 75 6c 74 22 29  |xit>FNnoresult")|
00002890  0d 10 f4 06 3d 30 0d 10  fe 0f dd a4 73 74 61 72  |....=0......star|
000028a0  74 63 6f 64 65 0d 11 08  05 db 0d 11 12 1d f1 22  |tcode.........."|
000028b0  4d 6f 64 75 6c 65 20 63  75 72 72 65 6e 74 6c 79  |Module currently|
000028c0  20 68 61 73 20 22 3b 0d  11 1c 16 e7 20 ac 20 73  | has ";..... . s|
000028d0  74 61 72 74 25 20 f1 22  6e 6f 20 22 3b 0d 11 26  |tart% ."no ";..&|
000028e0  12 f1 22 73 74 61 72 74  20 63 6f 64 65 2e 22 0d  |.."start code.".|
000028f0  11 30 2b f1 22 44 6f 20  79 6f 75 20 77 69 73 68  |.0+."Do you wish|
00002900  20 69 74 20 74 6f 20 68  61 76 65 20 61 20 73 74  | it to have a st|
00002910  61 72 74 20 63 6f 64 65  3f 22 0d 11 3a 07 f1 27  |art code?"..:..'|
00002920  27 0d 11 44 3d f2 6d 65  6e 75 28 22 59 65 73 3e  |'..D=.menu("Yes>|
00002930  46 4e 63 28 73 74 61 72  74 25 29 2c 4e 6f 3e 46  |FNc(start%),No>F|
00002940  4e 6e 6f 63 28 73 74 61  72 74 25 29 2c 45 78 69  |Nnoc(start%),Exi|
00002950  74 3e 46 4e 6e 6f 72 65  73 75 6c 74 22 29 0d 11  |t>FNnoresult")..|
00002960  4e 06 3d 30 0d 11 58 0e  dd a4 69 6e 69 74 63 6f  |N.=0..X...initco|
00002970  64 65 0d 11 62 05 db 0d  11 6c 1d f1 22 4d 6f 64  |de..b....l.."Mod|
00002980  75 6c 65 20 63 75 72 72  65 6e 74 6c 79 20 68 61  |ule currently ha|
00002990  73 20 22 3b 0d 11 76 15  e7 20 ac 20 69 6e 69 74  |s ";..v.. . init|
000029a0  25 20 f1 22 6e 6f 20 22  3b 0d 11 80 1b f1 22 69  |% ."no ";....."i|
000029b0  6e 69 74 69 61 6c 69 73  61 74 69 6f 6e 20 63 6f  |nitialisation co|
000029c0  64 65 2e 22 0d 11 8a 35  f1 22 44 6f 20 79 6f 75  |de."...5."Do you|
000029d0  20 77 69 73 68 20 69 74  20 74 6f 20 68 61 76 65  | wish it to have|
000029e0  20 61 6e 20 69 6e 69 74  69 61 6c 69 73 61 74 69  | an initialisati|
000029f0  6f 6e 20 63 6f 64 65 3f  22 0d 11 94 07 f1 27 27  |on code?".....''|
00002a00  0d 11 9e 3b f2 6d 65 6e  75 28 22 59 65 73 3e 46  |...;.menu("Yes>F|
00002a10  4e 63 28 69 6e 69 74 25  29 2c 4e 6f 3e 46 4e 6e  |Nc(init%),No>FNn|
00002a20  6f 63 28 69 6e 69 74 25  29 2c 45 78 69 74 3e 46  |oc(init%),Exit>F|
00002a30  4e 6e 6f 72 65 73 75 6c  74 22 29 0d 11 a8 06 3d  |Nnoresult")....=|
00002a40  30 0d 11 b2 10 dd a4 66  69 6e 69 73 68 63 6f 64  |0......finishcod|
00002a50  65 0d 11 bc 05 db 0d 11  c6 1d f1 22 4d 6f 64 75  |e.........."Modu|
00002a60  6c 65 20 63 75 72 72 65  6e 74 6c 79 20 68 61 73  |le currently has|
00002a70  20 22 3b 0d 11 d0 17 e7  20 ac 20 66 69 6e 69 73  | ";..... . finis|
00002a80  68 25 20 f1 22 6e 6f 20  22 3b 0d 11 da 19 f1 22  |h% ."no ";....."|
00002a90  66 69 6e 61 6c 69 73 61  74 69 6f 6e 20 63 6f 64  |finalisation cod|
00002aa0  65 2e 22 0d 11 e4 32 f1  22 44 6f 20 79 6f 75 20  |e."...2."Do you |
00002ab0  77 69 73 68 20 69 74 20  74 6f 20 68 61 76 65 20  |wish it to have |
00002ac0  61 20 66 69 6e 61 6c 69  73 61 74 69 6f 6e 20 63  |a finalisation c|
00002ad0  6f 64 65 3f 22 0d 11 ee  07 f1 27 27 0d 11 f8 3f  |ode?".....''...?|
00002ae0  f2 6d 65 6e 75 28 22 59  65 73 3e 46 4e 63 28 66  |.menu("Yes>FNc(f|
00002af0  69 6e 69 73 68 25 29 2c  4e 6f 3e 46 4e 6e 6f 63  |inish%),No>FNnoc|
00002b00  28 66 69 6e 69 73 68 25  29 2c 45 78 69 74 3e 46  |(finish%),Exit>F|
00002b10  4e 6e 6f 72 65 73 75 6c  74 22 29 0d 12 02 06 3d  |Nnoresult")....=|
00002b20  30 0d 12 0c 11 dd a4 73  65 72 76 69 63 65 63 6f  |0......serviceco|
00002b30  64 65 0d 12 16 05 db 0d  12 20 1d f1 22 4d 6f 64  |de....... .."Mod|
00002b40  75 6c 65 20 63 75 72 72  65 6e 74 6c 79 20 68 61  |ule currently ha|
00002b50  73 20 22 3b 0d 12 2a 18  e7 20 ac 20 73 65 72 76  |s ";..*.. . serv|
00002b60  69 63 65 25 20 f1 22 6e  6f 20 22 3b 0d 12 34 14  |ice% ."no ";..4.|
00002b70  f1 22 73 65 72 76 69 63  65 20 63 6f 64 65 2e 22  |."service code."|
00002b80  0d 12 3e 2d f1 22 44 6f  20 79 6f 75 20 77 69 73  |..>-."Do you wis|
00002b90  68 20 69 74 20 74 6f 20  68 61 76 65 20 61 20 73  |h it to have a s|
00002ba0  65 72 76 69 63 65 20 63  6f 64 65 3f 22 0d 12 48  |ervice code?"..H|
00002bb0  07 f1 27 27 0d 12 52 41  f2 6d 65 6e 75 28 22 59  |..''..RA.menu("Y|
00002bc0  65 73 3e 46 4e 63 28 73  65 72 76 69 63 65 25 29  |es>FNc(service%)|
00002bd0  2c 4e 6f 3e 46 4e 6e 6f  63 28 73 65 72 76 69 63  |,No>FNnoc(servic|
00002be0  65 25 29 2c 45 78 69 74  3e 46 4e 6e 6f 72 65 73  |e%),Exit>FNnores|
00002bf0  75 6c 74 22 29 0d 12 5c  06 3d 30 0d 12 66 10 dd  |ult")..\.=0..f..|
00002c00  a4 63 28 f8 20 63 6f 64  65 25 29 0d 12 70 0b 63  |.c(. code%)..p.c|
00002c10  6f 64 65 25 3d b9 0d 12  7a 06 3d 30 0d 12 84 12  |ode%=...z.=0....|
00002c20  dd a4 6e 6f 63 28 f8 20  63 6f 64 65 25 29 0d 12  |..noc(. code%)..|
00002c30  8e 0b 63 6f 64 65 25 3d  a3 0d 12 98 06 3d 30 0d  |..code%=.....=0.|
00002c40  12 a2 12 dd f2 6d 65 6e  75 28 6d 65 6e 75 31 24  |.....menu(menu1$|
00002c50  29 0d 12 ac 08 ea 20 71  25 0d 12 b6 05 f5 0d 12  |)..... q%.......|
00002c60  c0 08 71 25 3d b9 0d 12  ca 10 6d 65 6e 75 24 3d  |..q%=.....menu$=|
00002c70  6d 65 6e 75 31 24 0d 12  d4 1b ef 32 33 2c 31 37  |menu1$.....23,17|
00002c80  2c 37 2c 25 31 31 30 2c  31 36 3b 31 36 3b 30 2c  |,7,%110,16;16;0,|
00002c90  30 0d 12 de 0f 6d 65 6e  75 6e 24 28 29 3d 22 22  |0....menun$()=""|
00002ca0  0d 12 e8 0f 6d 65 6e 75  66 24 28 29 3d 22 22 0d  |....menuf$()="".|
00002cb0  12 f2 10 6e 6f 6f 66 69  74 65 6d 73 25 3d 30 0d  |...noofitems%=0.|
00002cc0  12 fc 05 f5 0d 13 06 2c  6d 65 6e 75 6e 24 28 6e  |.......,menun$(n|
00002cd0  6f 6f 66 69 74 65 6d 73  25 29 3d c0 6d 65 6e 75  |oofitems%)=.menu|
00002ce0  24 2c a7 6d 65 6e 75 24  2c 22 3e 22 29 2d 31 29  |$,.menu$,">")-1)|
00002cf0  0d 13 10 1f 6d 65 6e 75  24 3d c1 6d 65 6e 75 24  |....menu$=.menu$|
00002d00  2c a7 6d 65 6e 75 24 2c  22 3e 22 29 2b 31 29 0d  |,.menu$,">")+1).|
00002d10  13 1a 2c 6d 65 6e 75 66  24 28 6e 6f 6f 66 69 74  |..,menuf$(noofit|
00002d20  65 6d 73 25 29 3d c0 6d  65 6e 75 24 2c a7 6d 65  |ems%)=.menu$,.me|
00002d30  6e 75 24 2c 22 2c 22 29  2d 31 29 0d 13 24 3a e7  |nu$,",")-1)..$:.|
00002d40  20 a7 6d 65 6e 75 24 2c  22 2c 22 29 3d 30 20 6d  | .menu$,",")=0 m|
00002d50  65 6e 75 24 3d 22 22 20  8b 20 6d 65 6e 75 24 3d  |enu$="" . menu$=|
00002d60  c1 6d 65 6e 75 24 2c a7  6d 65 6e 75 24 2c 22 2c  |.menu$,.menu$,",|
00002d70  22 29 2b 31 29 0d 13 2e  11 6e 6f 6f 66 69 74 65  |")+1)....noofite|
00002d80  6d 73 25 2b 3d 31 0d 13  38 0e fd 20 6d 65 6e 75  |ms%+=1..8.. menu|
00002d90  24 3d 22 22 0d 13 42 0a  74 6f 70 25 3d bc 0d 13  |$=""..B.top%=...|
00002da0  4c 18 62 6f 74 74 6f 6d  25 3d bc 2b 6e 6f 6f 66  |L.bottom%=.+noof|
00002db0  69 74 65 6d 73 25 0d 13  56 06 ef 35 0d 13 60 1b  |items%..V..5..`.|
00002dc0  e3 20 63 6f 75 6e 74 25  3d 30 20 b8 20 6e 6f 6f  |. count%=0 . noo|
00002dd0  66 69 74 65 6d 73 25 0d  13 6a 3b ec 20 28 31 32  |fitems%..j;. (12|
00002de0  38 30 2d a9 28 6d 65 6e  75 6e 24 28 63 6f 75 6e  |80-.(menun$(coun|
00002df0  74 25 29 29 2a 33 32 29  2f 32 2c 31 30 32 34 2d  |t%))*32)/2,1024-|
00002e00  28 28 63 6f 75 6e 74 25  2b 74 6f 70 25 29 2a 36  |((count%+top%)*6|
00002e10  34 29 0d 13 74 14 f1 20  6d 65 6e 75 6e 24 28 63  |4)..t.. menun$(c|
00002e20  6f 75 6e 74 25 29 0d 13  7e 05 ed 0d 13 88 06 ef  |ount%)..~.......|
00002e30  34 0d 13 92 05 87 0d 13  9c 0e 2a 50 6f 69 6e 74  |4.........*Point|
00002e40  65 72 20 31 0d 13 a6 05  f5 0d 13 b0 05 f5 0d 13  |er 1............|
00002e50  ba 0b 2a 46 58 31 35 2c  30 0d 13 c4 0f c8 97 20  |..*FX15,0...... |
00002e60  78 25 2c 79 25 2c 7a 25  0d 13 ce 0a fd 20 7a 25  |x%,y%,z%..... z%|
00002e70  3e 30 0d 13 d8 0f e7 20  7a 25 3d 31 20 71 25 3d  |>0..... z%=1 q%=|
00002e80  a3 0d 13 e2 2f fd 20 28  31 30 32 34 2d 79 25 29  |..../. (1024-y%)|
00002e90  81 36 34 3e 3d 74 6f 70  25 20 80 20 28 31 30 32  |.64>=top% . (102|
00002ea0  34 2d 79 25 29 81 36 34  3c 62 6f 74 74 6f 6d 25  |4-y%).64<bottom%|
00002eb0  0d 13 ec 1f 73 65 6c 65  63 74 25 3d 28 28 31 30  |....select%=((10|
00002ec0  32 34 2d 79 25 29 81 36  34 29 2d 74 6f 70 25 0d  |24-y%).64)-top%.|
00002ed0  13 f6 0e 2a 50 6f 69 6e  74 65 72 20 30 0d 14 00  |...*Pointer 0...|
00002ee0  05 ee 0d 14 0a 18 ef 20  a0 28 6d 65 6e 75 66 24  |....... .(menuf$|
00002ef0  28 73 65 6c 65 63 74 25  29 29 0d 14 14 05 db 0d  |(select%))......|
00002f00  14 1e 08 fd 20 71 25 0d  14 28 05 e1 0d 14 32 0f  |.... q%..(....2.|
00002f10  dd a4 65 71 28 61 24 2c  62 24 29 0d 14 3c 10 e7  |..eq(a$,b$)..<..|
00002f20  20 a9 61 24 3c 3e a9 62  24 3d 30 0d 14 46 10 e3  | .a$<>.b$=0..F..|
00002f30  20 63 25 3d 31 20 b8 20  a9 61 24 0d 14 50 18 61  | c%=1 . .a$..P.a|
00002f40  25 3d 28 97 28 c1 61 24  2c 63 25 2c 31 29 29 29  |%=(.(.a$,c%,1)))|
00002f50  84 33 32 0d 14 5a 18 62  25 3d 28 97 28 c1 62 24  |.32..Z.b%=(.(.b$|
00002f60  2c 63 25 2c 31 29 29 29  84 33 32 0d 14 64 19 e7  |,c%,1))).32..d..|
00002f70  20 61 25 3c 3e 62 25 20  63 25 3d 31 30 30 30 3a  | a%<>b% c%=1000:|
00002f80  ed 3a 3d 30 0d 14 6e 05  ed 0d 14 78 07 3d 2d 31  |.:=0..n....x.=-1|
00002f90  0d 14 82 12 dc 20 22 5b  4f 50 54 20 70 61 73 73  |..... "[OPT pass|
00002fa0  25 22 0d 14 8c 0d dc 20  22 73 74 61 72 74 22 0d  |%"..... "start".|
00002fb0  14 96 0c dc 20 22 69 6e  69 74 22 0d 14 a0 0e dc  |.... "init".....|
00002fc0  20 22 66 69 6e 69 73 68  22 0d 14 aa 0f dc 20 22  | "finish"..... "|
00002fd0  73 65 72 76 69 63 65 22  0d 14 b4 11 dc 20 22 44  |service"..... "D|
00002fe0  43 44 20 74 69 74 6c 65  22 0d 14 be 10 dc 20 22  |CD title"..... "|
00002ff0  44 43 44 20 68 65 6c 70  22 0d 14 c8 14 dc 20 22  |DCD help"..... "|
00003000  63 6f 6d 6d 61 6e 64 74  61 62 6c 65 22 0d 14 d2  |commandtable"...|
00003010  0a dc 20 22 30 30 22 0d  14 dc 0c dc 20 22 73 77  |.. "00"..... "sw|
00003020  69 68 22 0d 14 e6 0c dc  20 22 73 77 69 6e 22 0d  |ih"..... "swin".|
00003030  14 f0 0d dc 20 22 44 43  44 20 30 22 0d 14 fa 0e  |.... "DCD 0"....|
00003040  dc 20 22 2e 74 69 74 6c  65 22 0d 15 04 0a dc 20  |. ".title"..... |
00003050  22 30 31 22 0d 15 0e 0d  dc 20 22 2e 68 65 6c 70  |"01"..... ".help|
00003060  22 0d 15 18 0a dc 20 22  30 32 22 0d 15 22 0a dc  |"..... "02".."..|
00003070  20 22 30 33 22 0d 15 2c  0d dc 20 22 2e 73 77 69  | "03"..,.. ".swi|
00003080  6e 22 0d 15 36 0a dc 20  22 30 34 22 0d 15 40 0d  |n"..6.. "04"..@.|
00003090  dc 20 22 2e 73 77 69 68  22 0d 15 4a 1f dc 20 22  |. ".swih"..J.. "|
000030a0  43 4d 50 20 52 31 31 2c  23 28 73 77 69 74 65 2d  |CMP R11,#(swite-|
000030b0  73 77 69 74 29 2f 34 22  0d 15 54 1d dc 20 22 41  |swit)/4"..T.. "A|
000030c0  44 44 43 43 20 50 43 2c  50 43 2c 52 31 31 2c 4c  |DDCC PC,PC,R11,L|
000030d0  53 4c 23 32 22 0d 15 5e  0e dc 20 22 42 20 73 77  |SL#2"..^.. "B sw|
000030e0  69 65 22 0d 15 68 0d dc  20 22 2e 73 77 69 74 22  |ie"..h.. ".swit"|
000030f0  0d 15 72 0a dc 20 22 30  35 22 0d 15 7c 0e dc 20  |..r.. "05"..|.. |
00003100  22 2e 73 77 69 74 65 22  0d 15 86 0d dc 20 22 2e  |".swite"..... ".|
00003110  73 77 69 65 22 0d 15 90  17 dc 20 22 41 44 52 20  |swie"..... "ADR |
00003120  52 30 2c 73 77 69 65 72  72 6f 72 22 0d 15 9a 1e  |R0,swierror"....|
00003130  dc 20 22 4f 52 52 53 20  50 43 2c 52 31 34 2c 23  |. "ORRS PC,R14,#|
00003140  32 36 38 34 33 35 34 35  36 22 0d 15 a4 11 dc 20  |268435456"..... |
00003150  22 2e 73 77 69 65 72 72  6f 72 22 0d 15 ae 10 dc  |".swierror".....|
00003160  20 22 44 43 44 20 26 31  45 36 22 0d 15 b8 0a dc  | "DCD &1E6".....|
00003170  20 22 30 36 22 0d 15 c2  0a dc 20 22 30 37 22 0d  | "06"..... "07".|
00003180  ff                                                |.|
00003181