<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=Chead</id>
	<title>Chead - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pickwiki.org/index.php?action=history&amp;feed=atom&amp;title=Chead"/>
	<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=Chead&amp;action=history"/>
	<updated>2026-04-28T22:13:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://pickwiki.org/index.php?title=Chead&amp;diff=1631&amp;oldid=prev</id>
		<title>Conversion script: link fix</title>
		<link rel="alternate" type="text/html" href="https://pickwiki.org/index.php?title=Chead&amp;diff=1631&amp;oldid=prev"/>
		<updated>2015-02-26T23:48:53Z</updated>

		<summary type="html">&lt;p&gt;link fix&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Back to [[BasicSource]]&lt;br /&gt;
&lt;br /&gt;
This is a QM-only utility to display information about compiled code. It can display the header information and the flags set in the header.&lt;br /&gt;
&lt;br /&gt;
It can also show the local and common variables used, the line concordance, and a dump of the code using decimal or hexadecimal output, but these are not accurate if the DEBUGGING compile option was used.&lt;br /&gt;
&lt;br /&gt;
It can also be used to display the opcodes QM uses (as at version 2.6). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
     program chead&lt;br /&gt;
*&lt;br /&gt;
* To investigate QMBASIC object code. Version 1.0&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
     copyright = &amp;#039;Copyright Keith Robert Johnson 2008&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*v This data is from the open source OPCODES.H - Version 2.6&lt;br /&gt;
* Simple opcodes&lt;br /&gt;
     opcodes = &amp;quot;STOP]ABORT]RETURN]JMP]JPO]JPZ]JNG]JZE&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]JNZ]]GOSUB]RETURNTO]CALL]ONGOTO]ONGOSUB]RUN&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]LDSINT]LDLINT]LDSTR]LDNULL]LDLCL]LDCOM]STOR]POP&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]DUP]LDSLCL]LDSYS]LD0]LD1]NULL]EXCH]VALUE&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]ADD]SUB]MUL]DIV]NEG]INT]INC]DEC&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]MOD]PWR]ABS]REM]LN]EXP]REUSE]IDIV&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]DSP]DSPNL]LDUNASS]AT]PROFF]PRON]PAGE]BREAKCT&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]KEYRDY]KEYIN]PRINTERR]PROMPT]GETPROMPT]KEYINC]BREAK]LOCATE&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]LEN]SUBSTR]SUBSTRE]CAT]REMOVE]CHAR]SEQ]EXTRACT&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]REPLACE]INS]DEL]LOCATES]SPACE]STR]DNCASE]UPCASE&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]RMVTKN]INSERT]FIELD]COL1]COL2]FLDSTOR]FMT]ICONV&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]OCONV]SUBSTRA]TRIM]TRIMF]TRIMB]COUNT]DCOUNT]INDEX&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]EQ]NE]GT]LT]NOT]AND]OR]BITAND&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]BITOR]BITNOT]GE]LE]SHIFT]BITXOR]BITSET]BITRESET&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]OPEN]READ]READV]WRITEV]DELETE]WRITE]CLOSE]QUOTIENT&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]FORLOOPS][[FOR1S]]]KEYINR]OPENPATH]SYSDIR]KEYINT]KEYINCT]TRANS&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]DIMLCL]DIMCOM]INDX1]INDX2]INMAT]INMATA]KEYINRT]MATCOPY&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]MATFILL]MATPARSE]MATBUILD]DELCOM]MATREAD]GETREM]SETREM]COMMON&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]STATUS]ONERROR]NOWAIT]SETMODE]CLRMODE]SETSTAT]SWAP]FOLD3&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]FILEINFO]OSPATH]TIME]DATE]TIMEDATE]EXECUTE]]ITYPE&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]ALPHA]NUM]APPEND]TRIMX]SOUNDEX]MATCHES]RAISE]LOWER&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]SUM]CONVERT]FCONVERT]COMPARE]FLDSTORF]MATCHFLD]QUOTE]RMVF&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]SELECT]CLEARSEL]CLEARALL]SLCTINFO]READNEXT]RDNXEXP]RDNXPOS]SSELECT&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]FORMLIST]READLIST]SYSMSG]]]]JFALSE]JTRUE&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]ACOS]ASIN]ATAN]COS]SIN]TAN]SQRT]RND&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]LDFLOAT]REP]STZ]STNULL]LDSYSV]UNASS]BITTEST]PREFIX&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]FORINIT]FORLOOP]FOR1]SLEEP]CLRFILE]QUIT]LOCK]UNLOCK&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]RELEASE]RECLCKD]FILELOCK]FLUNLOCK]LOCKREC]RLSALL]GETLOCKS]FOLD&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]SAVESCRN]RSTSCRN]TRACE]PRECISION]CHKCAT]CLEAR]CLRCOM]CHAIN&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]ULOCK]LLOCK]MVD]MVDS]MVDSS]MVDSSS]ASS]MVDD&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]CLRINPUT]HUSH]DATA]TESTLOCK]HEADING]FOOTING]PRNT]PRNL&amp;quot;&lt;br /&gt;
     opcodes := &amp;quot;]PSET]PRCLOSE]PRFILE]SH]DEBUG]DBGINF]DBGBRK]KERNEL&amp;quot;&lt;br /&gt;
     convert &amp;#039;]&amp;#039; to @vm in opcodes&lt;br /&gt;
&lt;br /&gt;
* Extended opcodes&lt;br /&gt;
     excodes = &amp;quot;PABORT]NAP]TOTAL]IFS]SETNLS]GETNLS]ITYPE2]CALLV&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]ABORTMSG]PWCRYPT]LOGIN]UMASK]TERMINFO]KEYCODE]ERRMSG]VARTYPE&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]CROP]FIND]CHANGE]VSLICE]FINDSTR]SUBSTRNG]SWAPCASE]REPADD&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]REPSUB]REPMUL]REPDIV]REPCAT]MAXIMUM]MINIMUM]CHANGED]REPSUBST&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]DBGON]DBGOFF]UNLOAD]CAPTURE]PHANTOM]RTNLIST]SYSTEM]ABTCAUSE&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]LOGOUT]USERNO]ISSUBR]LISTCOM]DBGWATCH]EVENTS]DBGSET]PCONFIG&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]TTYGET]TTYSET]INPUTAT]INPUT]PRNAME]PRDISP]COMO]PTERM&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]HEADINGN]PRRESET]EBCDIC]ASCII]DTX]GETLIST]SAVELIST]GETPU&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]RDIV]SUMMATION]SEED]SETPU]OPTION]ENV]CONFIG]SENDMAIL&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]SQUOTE]DELLIST]SORTDATA]SELECTV]SELECTE]PASSLIST]BINDKEY]CHECKSUM&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]SEEK]READBLK]WRITEBLK]ANALYSE]CONFIGFL]FLUSH]CREATESQ]UNLK&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]UNLKFL]OSRENAME]GRPSTAT]SETTRIG]KEYCODET]KEYEDIT]KEYEXIT]KEYTRAP&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]OPENSEQ]READSEQ]WRITESEQ]WEOFSEQ]WRITESEQF]OPENSEQP]CREATEAK]AKRELEASE&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]AKWRITE]AKREAD]AKDELETE]DELETEAK]SELINDX]SELINDXV]AKCLEAR]AKENABLE&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]CREATEDH]CREATET1]MAPMARKS]SELLEFT]SELRIGHT]SETLEFT]SETRIGHT]INDICES1&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]INDICES2]TXNBGN]TXNCMT]TXNEND]TXNRBK]OSERROR]NOBUF]XTD&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]BTINIT]BTADD]BTSCAN]BTRESET]BTADDA]BTMODIFY]BTFIND]BTSCANA&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]LOADOBJ]LOADED]SPLICE]PACKAGE]LOCATEF]LISTINDX]MIN]MAX&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]SORTINIT]SORTADD]SORTNEXT]SORTCLR]RLSFILE]DIR]PMATRIX]DIMLCLP&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]LOGMSG]SHCAP]PROCREAD]DEREF]IADD]ISUB]IMUL]SCALE&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]READPKT]WRITEPKT]CHGPHANT]ONGOTOP]ONGOSUBP]READONLY]PICKREAD]STORSYS&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]SUBST]PSUBSTRA]SAVEADDR]COMPREP]COMPINS]COMPINSRT]COMPREPLC]FCONTROL&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]GETPORT]SETPORT]CCALL]ENTER]SETFLAGS]GETMSG]CSVDQ]OJOIN&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]EXPANDHF]LOCAL]DELLCL]AKMAP]SRVRADDR]OBJECT]OBJMAP]OBJREF&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]OPENSKT]CLOSESKT]READSKT]WRITESKT]SRVRSKT]ACCPTSKT]SKTINFO]SETSKT&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]FORMCSV]ISMV]SETUNASS]TIMEOUT]IN]ME]GET]SET&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]ARGCT]ARG]RTRANS]PAUSE]WAKE]PSUBSTRB]DELSEQ]CNCTPORT&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]LGNPORT]OBJINFO]INHERIT]DISINH]CREATESH]LDLSTR]RDNXINT]ENCRYPT&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]DECRYPT]CRYPT]INPUTBLK]NEGS]ABSS]LENS]SPACES]TRIMS&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]TRIMFS]TRIMBS]NOTS]NUMS]SOUNDEXS]STRS]FMTS]ICONVS&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]OCONVS]COUNTS]FOLDS]INDEXS]FOLDS3]TRIMXS]FIELDS]MODS&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]CATS]EQS]NES]GTS]LTS]ANDS]ORS]GES&amp;quot;&lt;br /&gt;
     excodes := &amp;quot;]LES&amp;quot;&lt;br /&gt;
     convert &amp;#039;]&amp;#039; to @vm in excodes&lt;br /&gt;
&lt;br /&gt;
* Extended opcode values&lt;br /&gt;
     values = &amp;quot;52992]52993]52994]52995]52996]52997]52998]52999&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53000]53001]53002]53003]53004]53005]53006]53007&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53008]53009]53010]53011]53012]53013]53014]53015&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53016]53017]53018]53019]53020]53021]53022]53023&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53024]53025]53026]53027]53028]53029]53030]53031&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53032]53033]53034]53035]53036]53037]53038]53039&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53040]53041]53042]53043]53044]53045]53046]53047&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53048]53049]53050]53051]53052]53053]53054]53055&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53056]53057]53058]53059]53060]53061]53062]53063&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53064]53065]53066]53067]53068]53069]53070]53071&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53072]53073]53074]53075]53076]53077]53078]53079&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53080]53081]53082]53083]53084]53085]53086]53087&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53088]53089]53090]53091]53092]53093]53094]53095&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53096]53097]53098]53099]53100]53101]53102]53103&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53104]53105]53106]53107]53108]53109]53110]53111&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53112]53113]53114]53115]53116]53117]53118]53119&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53120]53121]53122]53123]53124]53125]53126]53127&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53128]53129]53130]53131]53132]53133]53134]53135&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53136]53137]53138]53139]53140]53141]53142]53143&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53144]53145]53146]53147]53148]53149]53150]53151&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53152]53153]53154]53155]53156]53157]53158]53159&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53160]53161]53162]53163]53164]53165]53166]53167&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53168]53169]53170]53171]53172]53173]53174]53175&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53176]53177]53178]53179]53180]53181]53182]53183&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53184]53185]53186]53187]53188]53189]53190]53191&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53192]53193]53194]53195]53196]53197]53198]53199&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53200]53201]53202]53203]53204]53205]53206]53207&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53208]53209]53210]53211]53212]53213]53214]53215&amp;quot;&lt;br /&gt;
     values := &amp;quot;]53216]53217]53218]59940]59946]59968]59980]59994&amp;quot;&lt;br /&gt;
     values := &amp;quot;]59995]59996]60004]60065]60068]60237]60246]60247&amp;quot;&lt;br /&gt;
     values := &amp;quot;]60248]60253]60383]60511]60567]60579]60754]61224&amp;quot;&lt;br /&gt;
     values := &amp;quot;]61251]61280]61281]61282]61283]61285]61286]61290&amp;quot;&lt;br /&gt;
     values := &amp;quot;]61291&amp;quot;&lt;br /&gt;
     convert &amp;#039;]&amp;#039; to @vm in values&lt;br /&gt;
&lt;br /&gt;
* Simple and extended opcode modes&lt;br /&gt;
     smodes = &amp;quot;AAABBBBBB.BBCMMACDFAEHAAANCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAC.AAAAAAAAAAAAAAAAAAAAAAAAAAAC...BBAAAAAAAAGAAACAAKABBAAAAAAAAAAAAAAAAAAAAAAALLLLALAAAAAAAAAAAAJAAA&amp;quot;&lt;br /&gt;
     xmodes = &amp;quot;AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAMMAAAAAAAAAAAAAAAPAAAAQEAACRCAAAAAAAAAAAAAACCAAAAAAAAAAAAASAAAAA.............................&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*^ End of data derived from OPCODES.H&lt;br /&gt;
&lt;br /&gt;
* Parse the command line&lt;br /&gt;
     comd = @sentence&lt;br /&gt;
     comd = trim(comd)&lt;br /&gt;
     convert &amp;#039; &amp;#039; to @am in comd&lt;br /&gt;
     loop&lt;br /&gt;
        this = comd&amp;lt;1&amp;gt;&lt;br /&gt;
        del comd&amp;lt;1&amp;gt;&lt;br /&gt;
     until upcase(this) eq &amp;#039;CHEAD&amp;#039; or comd eq &amp;#039;&amp;#039; do&lt;br /&gt;
     repeat&lt;br /&gt;
&lt;br /&gt;
* Help&lt;br /&gt;
     if comd&amp;lt;2&amp;gt; eq &amp;#039;&amp;#039; then&lt;br /&gt;
        crt&lt;br /&gt;
        crt &amp;#039;Program to display information about compiled code.&amp;#039;&lt;br /&gt;
        crt &amp;#039;---------------------------------------------------&amp;#039;&lt;br /&gt;
        crt &amp;#039;syntax: [RUN file] CHEAD FILE ITEM&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        crt &amp;#039;This program will display information about&amp;#039;&lt;br /&gt;
        crt &amp;#039;the object code and about QMBASIC opcodes.&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        crt &amp;#039;The output can be printed using P toggle.&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        crt &amp;#039;NOTE: Incorrect if DEBUGGING option used.&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        stop&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
     namf = comd&amp;lt;1&amp;gt;&lt;br /&gt;
     name = comd&amp;lt;2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Get the source code if possible&lt;br /&gt;
     if namf[4] eq &amp;#039;.OUT&amp;#039; then namf = namf[1,len(namf)-4]&lt;br /&gt;
     sourcode = &amp;#039;&amp;#039;&lt;br /&gt;
     open namf to srs.file then&lt;br /&gt;
        read sourcode from srs.file,name else null&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Get the object code&lt;br /&gt;
     namf = namf:&amp;#039;.OUT&amp;#039;&lt;br /&gt;
     open namf to obj.file else&lt;br /&gt;
        crt &amp;#039;Cannot open object file &amp;#039;:namf&lt;br /&gt;
        stop&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
     read this from obj.file,name else&lt;br /&gt;
        crt &amp;#039;Cannot read object code &amp;#039;:name&lt;br /&gt;
        stop&lt;br /&gt;
     end&lt;br /&gt;
* Calculate the object size from the header information&lt;br /&gt;
* NOTE: LEN(THIS) is too short for big programs!&lt;br /&gt;
     blen = oconv(this[25,4],&amp;#039;IL&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
* The standard read converts char(10) to attribute marks&lt;br /&gt;
* Get item with a block sequential read to avoid this&lt;br /&gt;
     openseq namf,name to code then&lt;br /&gt;
        readblk this from code,blen else null&lt;br /&gt;
        closeseq code&lt;br /&gt;
     end&lt;br /&gt;
     crt&lt;br /&gt;
&lt;br /&gt;
* Get the header&lt;br /&gt;
     lenh = 164&lt;br /&gt;
     head = this[1,lenh]&lt;br /&gt;
     begn = lenh+2&lt;br /&gt;
&lt;br /&gt;
* Get the various variables we are interested in&lt;br /&gt;
     nolocvar = oconv(head[13,2],&amp;#039;IS&amp;#039;)&lt;br /&gt;
     nosubarg = oconv(head[11,2],&amp;#039;IS&amp;#039;)&lt;br /&gt;
     symtabof = oconv(head[17,4],&amp;#039;IL&amp;#039;)&lt;br /&gt;
     lcordoff = oconv(head[21,4],&amp;#039;IL&amp;#039;)&lt;br /&gt;
     code.len = oconv(head[25,4],&amp;#039;IL&amp;#039;)&lt;br /&gt;
     hdrflags = oconv(head[29,2],&amp;#039;IS&amp;#039;)&lt;br /&gt;
     compiled = oconv(head[31,4],&amp;#039;IL&amp;#039;)&lt;br /&gt;
     d = int(compiled/86400)&lt;br /&gt;
     t = rem(compiled,86400)&lt;br /&gt;
     compiled = oconv(d,&amp;#039;D&amp;#039;):&amp;#039; &amp;#039;:oconv(t,&amp;#039;MTS&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
* Change for later version&lt;br /&gt;
     vers = seq(this[2,1])&lt;br /&gt;
     if vers &amp;gt; 0 and symtabof then&lt;br /&gt;
        lcordoff = symtabof + 4&lt;br /&gt;
        symtabof += oconv(this[symtabof+2,2],&amp;#039;is&amp;#039;)+4&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
* Some more for thoroughness&lt;br /&gt;
     hdroffst = oconv(head[7,4],&amp;#039;IL&amp;#039;)&lt;br /&gt;
     stakdeep = oconv(head[15,2],&amp;#039;IS&amp;#039;)&lt;br /&gt;
     headrefs = oconv(head[35,2],&amp;#039;IS&amp;#039;)&lt;br /&gt;
     progname = head[37,128]&lt;br /&gt;
     progname = trim(progname)&lt;br /&gt;
     progname = trim(progname,char(0))&lt;br /&gt;
&lt;br /&gt;
* Get the symbol table&lt;br /&gt;
     symtable = &amp;#039;&amp;#039;&lt;br /&gt;
     if symtabof then symtable = this[symtabof+1,blen]&lt;br /&gt;
     symtable = trim(symtable,char(1),&amp;#039;T&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
* Get the line table&lt;br /&gt;
     lintable = &amp;#039;&amp;#039;&lt;br /&gt;
     if lcordoff then&lt;br /&gt;
        if symtabof&lt;br /&gt;
           then lintable = this[lcordoff+2,symtabof-lcordoff-1]&lt;br /&gt;
           else lintable = this[lcordoff+2,blen]&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
     loclvars = &amp;#039;&amp;#039;&lt;br /&gt;
     commvars = &amp;#039;&amp;#039;&lt;br /&gt;
     commnumb = &amp;#039;&amp;#039;&lt;br /&gt;
     if symtable ne &amp;#039;&amp;#039; then&lt;br /&gt;
        loclvars = trim(symtable&amp;lt;1&amp;gt;,@vm,&amp;#039;T&amp;#039;)&lt;br /&gt;
        commvars = symtable&lt;br /&gt;
        del commvars&amp;lt;1&amp;gt;&lt;br /&gt;
        xxno = dcount(commvars,@am)&lt;br /&gt;
        for xx = 1 to xxno&lt;br /&gt;
           commnumb&amp;lt;-1&amp;gt; = commvars&amp;lt;xx,1&amp;gt;+1&lt;br /&gt;
        next xx&lt;br /&gt;
     end&lt;br /&gt;
&lt;br /&gt;
* Get the code&lt;br /&gt;
     begin case&lt;br /&gt;
        case lcordoff&lt;br /&gt;
           this = this[begn,lcordoff-lenh-1]&lt;br /&gt;
        case symtabof&lt;br /&gt;
           this = this[begn,symtabof-lenh-1]&lt;br /&gt;
        case 1&lt;br /&gt;
           this = this[begn,blen]&lt;br /&gt;
     end case&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Present the user with a menu&lt;br /&gt;
     prompt &amp;#039;&amp;#039;&lt;br /&gt;
     pout = @false&lt;br /&gt;
     plen = system(3) - 1&lt;br /&gt;
     loop&lt;br /&gt;
        crt @(-1),namf,name&lt;br /&gt;
        crt&lt;br /&gt;
        crt &amp;#039;  H - Header information&amp;#039;&lt;br /&gt;
        crt &amp;#039;  F - Flags set in header&amp;#039;&lt;br /&gt;
        crt &amp;#039;  V - Variables (local)&amp;#039;&lt;br /&gt;
        crt &amp;#039;  C - Common variables&amp;#039;&lt;br /&gt;
        crt &amp;#039;  L - Line concordance&amp;#039;&lt;br /&gt;
        crt &amp;#039;  O - Opcodes&amp;#039;&lt;br /&gt;
        crt &amp;#039;  E - Extended opcodes&amp;#039;&lt;br /&gt;
        crt &amp;#039;  D - Dump of code&amp;#039;&lt;br /&gt;
        crt &amp;#039;  X - heXadecimal code dump&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        if pout&lt;br /&gt;
           then crt &amp;#039;  P - Print output now ON  turn OFF&amp;#039;&lt;br /&gt;
           else crt &amp;#039;  P - Print output now OFF turn ON&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        crt &amp;#039;  Q - Quit&amp;#039;&lt;br /&gt;
        crt&lt;br /&gt;
        loop&lt;br /&gt;
           crt @(0):@(-3):&lt;br /&gt;
* You can take the boy out of Mangere...&lt;br /&gt;
           if rnd(20)&lt;br /&gt;
              then crt &amp;#039;  Press choice key :&amp;#039;:&lt;br /&gt;
              else crt &amp;#039;  Cuzzy Bro - Press [[C_H_O_I_C_E]] key, eh?&amp;#039;:&lt;br /&gt;
           answ = upcase(keycode())&lt;br /&gt;
        until answ ne &amp;#039;&amp;#039; and index(&amp;#039;DXVCLHFPQOE&amp;#039;,answ,1) do repeat&lt;br /&gt;
        crt&lt;br /&gt;
        if answ eq &amp;#039;D&amp;#039; then gosub show.code&lt;br /&gt;
        if answ eq &amp;#039;X&amp;#039; then gosub show.code&lt;br /&gt;
        if answ eq &amp;#039;V&amp;#039; then gosub show.local&lt;br /&gt;
        if answ eq &amp;#039;C&amp;#039; then gosub show.common&lt;br /&gt;
        if answ eq &amp;#039;L&amp;#039; then gosub show.lines&lt;br /&gt;
        if answ eq &amp;#039;H&amp;#039; then gosub show.header&lt;br /&gt;
        if answ eq &amp;#039;F&amp;#039; then gosub show.flags&lt;br /&gt;
        if answ eq &amp;#039;P&amp;#039; then pout = not(pout)&lt;br /&gt;
        if answ eq &amp;#039;O&amp;#039; then gosub show.opcodes&lt;br /&gt;
        if answ eq &amp;#039;E&amp;#039; then gosub show.extended.opcodes&lt;br /&gt;
     until answ eq &amp;#039;Q&amp;#039; do repeat&lt;br /&gt;
     crt&lt;br /&gt;
     stop&lt;br /&gt;
&lt;br /&gt;
************************ SUBROUTINES ********************************&lt;br /&gt;
show.code:&lt;br /&gt;
     if answ eq &amp;#039;D&amp;#039; then decm = @true else decm = @false&lt;br /&gt;
     if this eq &amp;#039;&amp;#039;&lt;br /&gt;
        then disp = &amp;#039;THERE IS NO CODE TO SHOW&amp;#039;&lt;br /&gt;
        else disp = &amp;#039;DUMP OF CODE&amp;#039;:@am&lt;br /&gt;
     cntr = 0&lt;br /&gt;
     size = 16&lt;br /&gt;
     loop&lt;br /&gt;
        part = this[cntr+1,size]&lt;br /&gt;
     until part eq &amp;#039;&amp;#039; do&lt;br /&gt;
        line = cntr &amp;#039;R%4&amp;#039;:&amp;#039;:&amp;#039;&lt;br /&gt;
        for xx = 1 to size&lt;br /&gt;
           bite = part[xx,1]&lt;br /&gt;
           if bite = &amp;#039;&amp;#039; then&lt;br /&gt;
              bite = &amp;#039;   &amp;#039;&lt;br /&gt;
           end else&lt;br /&gt;
              if decm&lt;br /&gt;
                 then bite = seq(bite) &amp;#039;R#3&amp;#039;&lt;br /&gt;
                 else bite = &amp;#039; &amp;#039;:(dtx(seq(bite)) &amp;#039;R%2&amp;#039;)&lt;br /&gt;
           end&lt;br /&gt;
           line := bite&lt;br /&gt;
        next xx&lt;br /&gt;
        line := &amp;#039; - &amp;#039;:oconv(part,&amp;#039;MCP&amp;#039;)&lt;br /&gt;
        disp&amp;lt;-1&amp;gt; = line&lt;br /&gt;
        cntr += size&lt;br /&gt;
     repeat&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.local:&lt;br /&gt;
     disp = &amp;#039;      Local Variables&amp;#039;:@am&lt;br /&gt;
     xxno = dcount(loclvars,@vm)&lt;br /&gt;
     for xx = 1 to xxno&lt;br /&gt;
        varb = loclvars&amp;lt;1,xx&amp;gt;&lt;br /&gt;
        void = space(14-rem(len(varb),10))&lt;br /&gt;
        locate(xx,commnumb;posn) then&lt;br /&gt;
           if varb = &amp;#039;$&amp;#039;&lt;br /&gt;
              then varb := void:&amp;#039;******* common block *******&amp;#039;&lt;br /&gt;
              else varb := void:&amp;#039;****** labelled common ******&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
        begin case&lt;br /&gt;
           case varb matches &amp;#039;&amp;quot;__&amp;quot;1[[N0X]]&amp;#039;&lt;br /&gt;
              varb := void:&amp;#039;***** Temporary Variable ****&amp;#039;&lt;br /&gt;
           case varb[1,2] eq &amp;#039;__&amp;#039;&lt;br /&gt;
              varb := void:&amp;#039;******* FILE Variable *******&amp;#039;&lt;br /&gt;
           case varb[1,1] eq &amp;#039;_&amp;#039;&lt;br /&gt;
              varb := void:&amp;#039;***** Call to Subroutine ****&amp;#039;&lt;br /&gt;
           case varb[1,1] eq &amp;#039;~&amp;#039;&lt;br /&gt;
              varb := void:&amp;#039;******** Object code ********&amp;#039;&lt;br /&gt;
           case varb[1,1] eq &amp;#039;*&amp;#039;&lt;br /&gt;
              varb := void:&amp;#039;****** Object Argument ******&amp;#039;&lt;br /&gt;
        end case&lt;br /&gt;
        disp&amp;lt;-1&amp;gt; = xx &amp;#039;R#5&amp;#039;:&amp;#039; &amp;#039;:varb&lt;br /&gt;
     next xx&lt;br /&gt;
     if loclvars eq &amp;#039;&amp;#039; then disp = &amp;#039;THERE IS NO VARIABLE INFORMATION&amp;#039;&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.common:&lt;br /&gt;
     disp = &amp;#039;COMMON BLOCK DISPLAY&amp;#039;:@am&lt;br /&gt;
     xxno = dcount(commvars,@am)&lt;br /&gt;
     for xx = 1 to xxno&lt;br /&gt;
        line = commvars&amp;lt;xx&amp;gt;&lt;br /&gt;
        comm = line&amp;lt;1,1&amp;gt;&lt;br /&gt;
        del line&amp;lt;1,1&amp;gt;&lt;br /&gt;
        comm += 1&lt;br /&gt;
        comm = loclvars&amp;lt;1,comm&amp;gt;&lt;br /&gt;
        if comm = &amp;#039;$&amp;#039;&lt;br /&gt;
           then disp&amp;lt;-1&amp;gt; = &amp;#039;  Common Block&amp;#039;&lt;br /&gt;
           else disp&amp;lt;-1&amp;gt; = &amp;#039;  &amp;#039;:comm:&amp;#039; - Labelled common&amp;#039;&lt;br /&gt;
        yyno = dcount(line,@sm)&lt;br /&gt;
        for yy = 1 to yyno&lt;br /&gt;
           disp&amp;lt;-1&amp;gt; = yy &amp;#039;R#5&amp;#039;:&amp;#039; &amp;#039;:line&amp;lt;1,1,yy&amp;gt;&lt;br /&gt;
        next yy&lt;br /&gt;
        if xx ne xxno then disp&amp;lt;-1&amp;gt; = &amp;#039; &amp;#039;&lt;br /&gt;
     next xx&lt;br /&gt;
     if commvars eq &amp;#039;&amp;#039; then disp = &amp;#039;THERE ARE NO COMMON BLOCKS, OR THERE IS NO INFORMATION&amp;#039;&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.lines:&lt;br /&gt;
     disp = &amp;#039;LINE CONCORDANCE TABLE&amp;#039;&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039; Line# Length of object in line&amp;#039;&lt;br /&gt;
     xx = 0&lt;br /&gt;
     line = 0&lt;br /&gt;
     loop&lt;br /&gt;
        xx += 1&lt;br /&gt;
        part = lintable[xx,1]&lt;br /&gt;
     until part eq &amp;#039;&amp;#039; do&lt;br /&gt;
        seqn = seq(part)&lt;br /&gt;
        if seqn = 255 then&lt;br /&gt;
           xx += 1 ; seqn = seq(lintable[xx,1])&lt;br /&gt;
           xx += 1 ; seqn += seq(lintable[xx,1])*256&lt;br /&gt;
        end&lt;br /&gt;
        line += 1&lt;br /&gt;
        if seqn then disp&amp;lt;-1&amp;gt; =  line &amp;#039;R#6&amp;#039;:&amp;#039; &amp;#039;:seqn&lt;br /&gt;
     repeat&lt;br /&gt;
     if lintable eq &amp;#039;&amp;#039; then disp = &amp;#039;THERE IS NO LINE INFORMATION&amp;#039;&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.header:&lt;br /&gt;
     disp = &amp;#039;HEADER INFORMATION - &amp;#039;:progname:@am&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Endian hint&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: seq(head[1,1])&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Header Revision&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: seq(head[2,1])&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Header Offset&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: hdroffst&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Number of local variables&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: nolocvar&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Number of subroutine arguments&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: nosubarg&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Stack Depth&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: stakdeep&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Symbol table offset&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: symtabof&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Line concordance offset&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: lcordoff&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Line concordance table size&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: len(lintable)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Object size&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: code.len&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Code size&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: len(this)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;When compiled&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: compiled&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Header References&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;: headrefs&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.flags:&lt;br /&gt;
     disp = &amp;#039;FLAG INFORMATION&amp;#039;:@am&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Command processor&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,0)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Internal mode program&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,1)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Compiled in debug mode&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,2)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Debugger&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,3)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Case insensitive string operations&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,4)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Basic function&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,5)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Variable arg count (hdr.args = max)&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,6)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Is a recursive program&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,7)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Is an A[[/S/C/I]]-type&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,8)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Allow break in recursive&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,9)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Trusted program&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,10)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Allow remote files by NFS&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,11)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Program uses case sensitive names&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,12)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Can be called using QMCall()&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,13)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Is a C-type&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,14)&lt;br /&gt;
     disp&amp;lt;-1&amp;gt; = &amp;#039;Is CLASS module&amp;#039; &amp;#039;R#35&amp;#039;:&amp;#039; &amp;#039;:  bittest(hdrflags,15)&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.opcodes:&lt;br /&gt;
     disp = &amp;#039;Simple OPCODES&amp;#039;:@am&lt;br /&gt;
     xxno = dcount(opcodes,@vm)&lt;br /&gt;
     for xx = 1 to xxno&lt;br /&gt;
        numb = xx-1&lt;br /&gt;
        hexn = dtx(numb) &amp;#039;R%2&amp;#039;&lt;br /&gt;
        mode = smodes[xx,1]&lt;br /&gt;
        gosub get.mode.show&lt;br /&gt;
        disp&amp;lt;-1&amp;gt; = numb &amp;#039;R#5&amp;#039;:&amp;#039;   &amp;#039;:hexn:&amp;#039; &amp;#039;:opcodes&amp;lt;1,xx&amp;gt; &amp;#039;l#10&amp;#039;:show&lt;br /&gt;
     next xx&lt;br /&gt;
     if opcodes eq &amp;#039;&amp;#039; then disp = &amp;#039;THERE ARE NO SIMPLE OPCODES&amp;#039;&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
show.extended.opcodes:&lt;br /&gt;
     disp = &amp;#039;Extended OPCODES&amp;#039;:@am&lt;br /&gt;
     xxno = dcount(excodes,@vm)&lt;br /&gt;
     for xx = 1 to xxno&lt;br /&gt;
        numb = values&amp;lt;1,xx&amp;gt;&lt;br /&gt;
        hexn = dtx(numb) &amp;#039;R%4&amp;#039;&lt;br /&gt;
        mode = xmodes[xx,1]&lt;br /&gt;
        gosub get.mode.show&lt;br /&gt;
        line = numb:&amp;#039; &amp;#039;:hexn:&amp;#039; &amp;#039;:excodes&amp;lt;1,xx&amp;gt; &amp;#039;L#10&amp;#039;:show&lt;br /&gt;
        disp&amp;lt;-1&amp;gt; =  line&lt;br /&gt;
     next xx&lt;br /&gt;
     if excodes eq &amp;#039;&amp;#039; then disp = &amp;#039;THERE ARE NO EXTENDED OPCODES&amp;#039;&lt;br /&gt;
     gosub display&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
get.mode.show:&lt;br /&gt;
     begin case&lt;br /&gt;
        case mode eq &amp;#039;A&amp;#039; ; show = &amp;#039;Opcode Byte&amp;#039; ; show = &amp;#039;&amp;#039; ; * Tidier&lt;br /&gt;
        case mode eq &amp;#039;B&amp;#039; ; show = &amp;#039;Jump Address&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;C&amp;#039; ; show = &amp;#039;One Byte Value&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;D&amp;#039; ; show = &amp;#039;Four Byte Value&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;E&amp;#039; ; show = &amp;#039;Local Variable&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;F&amp;#039; ; show = &amp;#039;String Value&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;G&amp;#039; ; show = &amp;#039;Float Value&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;H&amp;#039; ; show = &amp;#039;Common Variable&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;I&amp;#039; ; show = &amp;#039;Common Dcl&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;J&amp;#039; ; show = &amp;#039;Debug Reference&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;K&amp;#039; ; show = &amp;#039;Opcode Prefix&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;L&amp;#039; ; show = &amp;#039;Multivalue Opcode&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;M&amp;#039; ; show = &amp;#039;Address List&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;N&amp;#039; ; show = &amp;#039;Short Local&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;O&amp;#039; ; show = &amp;#039;Pmatdata&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;P&amp;#039; ; show = &amp;#039;Two Byte Value&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;Q&amp;#039; ; show = &amp;#039;Local Dcl&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;R&amp;#039; ; show = &amp;#039;Object Map Data&amp;#039;&lt;br /&gt;
        case mode eq &amp;#039;S&amp;#039; ; show = &amp;#039;Long String Value&amp;#039;&lt;br /&gt;
        case 1 ; show = &amp;#039;&amp;#039;&lt;br /&gt;
     end case&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
display:&lt;br /&gt;
     xxno = dcount(disp,@am)&lt;br /&gt;
     if pout and xxno gt 1 then gosub print.output ; return&lt;br /&gt;
&lt;br /&gt;
     pags = int(xxno/plen)&lt;br /&gt;
     last = pags * plen&lt;br /&gt;
     pags += (rem(xxno,plen) ne 0)&lt;br /&gt;
     dawn = 1&lt;br /&gt;
     loop&lt;br /&gt;
        dusk = dawn + plen - 1&lt;br /&gt;
        for here = dawn to dusk&lt;br /&gt;
           crt disp&amp;lt;here&amp;gt;&lt;br /&gt;
        next here&lt;br /&gt;
        begin case&lt;br /&gt;
           case xxno le plen&lt;br /&gt;
              crt &amp;#039;Press any key to retun to menu &amp;#039;:&lt;br /&gt;
              wait = upcase(keycode())&lt;br /&gt;
              return&lt;br /&gt;
           case here gt last&lt;br /&gt;
              crt &amp;#039;Press any key to return to menu or &amp;lt;T&amp;gt;op &amp;lt;P&amp;gt;revious &amp;#039;:&lt;br /&gt;
              wait = upcase(keycode())&lt;br /&gt;
              if wait ne &amp;#039;T&amp;#039; and wait ne &amp;#039;P&amp;#039; then return&lt;br /&gt;
           case dusk le plen&lt;br /&gt;
              crt &amp;#039;Press any key to continue or &amp;lt;Q&amp;gt; to return to menu &amp;#039;:&lt;br /&gt;
              wait = upcase(keycode())&lt;br /&gt;
              if wait eq &amp;#039;T&amp;#039; or wait eq &amp;#039;P&amp;#039; then wait = &amp;#039;C&amp;#039;&lt;br /&gt;
           case 1&lt;br /&gt;
              crt &amp;#039;Press any key to continue or &amp;lt;T&amp;gt;op &amp;lt;P&amp;gt;revious &amp;lt;Q&amp;gt;uit to return to menu &amp;#039;:&lt;br /&gt;
              wait = upcase(keycode())&lt;br /&gt;
        end case&lt;br /&gt;
        begin case&lt;br /&gt;
           case wait eq &amp;#039;T&amp;#039; ; dawn = 1&lt;br /&gt;
           case wait eq &amp;#039;P&amp;#039; ; dawn -= plen&lt;br /&gt;
           case 1           ; dawn += plen&lt;br /&gt;
        end case&lt;br /&gt;
        crt&lt;br /&gt;
     until dawn gt xxno or wait eq &amp;#039;Q&amp;#039; do repeat&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print.output:&lt;br /&gt;
     crt&lt;br /&gt;
     crt disp&amp;lt;1&amp;gt;&lt;br /&gt;
     loop&lt;br /&gt;
        crt &amp;#039;ARE YOU SURE YOU WANT TO PRINT?&amp;#039;:&lt;br /&gt;
        answ = upcase(keycode())&lt;br /&gt;
     until answ eq &amp;#039;Y&amp;#039; or answ eq &amp;#039;N&amp;#039; do&lt;br /&gt;
        crt &amp;#039;Please answer &amp;quot;Y&amp;quot; or &amp;quot;N&amp;quot;&amp;#039;&lt;br /&gt;
     repeat&lt;br /&gt;
     if answ eq &amp;#039;Y&amp;#039; then&lt;br /&gt;
        printer on&lt;br /&gt;
        print &amp;#039;Details for &amp;#039;:name:&amp;#039; in &amp;#039;:namf&lt;br /&gt;
        print&lt;br /&gt;
        for xx = 1 to xxno&lt;br /&gt;
           print disp&amp;lt;xx&amp;gt;&lt;br /&gt;
        next xx&lt;br /&gt;
        printer off&lt;br /&gt;
     end&lt;br /&gt;
     return&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;/div&gt;</summary>
		<author><name>Conversion script</name></author>
	</entry>
</feed>