LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)1 2 A i770DO^Y5I III.PCL.8.2BAu' ,PDECODE.TEXT)P66,PDECODE.CODEW$69+PDECODE.LIBO  -MENULIST.DATA1.SYSTEM.STARTUPB 2 # >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@L  !"#$%&'()*+,-./ ( 'Blockread: Error in reading sourcefile' ) ; .exit ( decode ) ; +END ; #END ; FUNCTION byteval (loc: integer) : integer ; #BEGIN &IF (loc >= firstaddr) AND (loc < firstaddr+512) THEN *byteval := buf[loc-firstaddr] &ELSE *BEGIN -readblock (loc)2 ; *UNTIL loc >= firstaddr &ELSE IF loc >= firstaddr + 512 THEN /REPEAT 2currentblock := succ(currentblock) ; 2firstaddr := firstaddr + 512 ; /UNTIL loc < (firstaddr + 512 ) ; &IF blockread(sourcefile,buf,1,currentblock) <> 1 THEN +BEGIN .writelnbegin "s1:=s; "for i:=1 to length(s) "do if s[i] in ['a'..'z'] then s1[i]:=chr(ord(s[i])-32); end; # PROCEDURE readblock (loc: integer) ; #BEGIN &IF loc < firstaddr THEN *REPEAT -currentblock := pred(currentblock) ; -firstaddr := firstaddr - 51 : freeunion ; %pd : array [0..149] of integer ; %hexdigit : packed array [0..15] of char ; %x,y : integer; {screen coord} PROCEDURE str2upcase(s: string; var s1: string); var i: integer; string3 ; %f : text ; %sourcefile : file ; %sourcename, destname : string ; %opcode : array [0..255] of oprec ; %buf : packed array [0..511] of 0..255 ; %sd %string7 = string[7] ; % %ptype = (ub, sb, db, b, w, x0, x1, x2, x3, x4, x5, x6, x7, xx) ; % %oprec = record (mnemonic: string7 ; (p1, p2: ptype ; (end ; VAR %pdcount, firstaddr, %firstblock, currentblock: integer ; %addr : 8unused: 0..1 ; 8version:0..7 ; 4end; (end ; %freeunion = record (case integer of .1: (buf: packed array [0..511] of 0..255) ; .2: (dict: sdrecord) ; (end ; % %string1 = packed array [0..1] of char ; %string3 = packed array [0..3] of char ; ind: array [0..15] of 4(linked, hostseg, segproc, unitseg, 5seprtseg, unlinkedintrins, 5linkedintrins, dataseg) ; (textaddr: array [0..15] of integer ; (seginfo: packed array [0..15] of 4packed record 8segnum: 0..255 ; 8mtype: mtypes ; (undefined, pcodemost, pcodeleast, pdp11, m8080, /z80, ga440, m6502, m6800, ti9900) ; % %sdrecord = record (diskinfo: array [0..15] of 4record 8codeleng, codeaddr: integer ; 4end ; (segname: array [0..15] of 4packed array [0..7] of char ; (segkknown, mod 5/8/85 DGW]';  TYPE %word = packed record (case integer of .0: (b: packed array [0..1] of 0..255) ; .1: (c: packed array [0..1] of char) ; .2: (h: packed array [0..3] of 0..15) ; .3: (i: integer) ; .4: (p: ^word) ; (end ; % %mtypes =PROGRAM decode ; {$SETC using_dirstuff:=false } {$IFC using_dirstuff }  USES dirstuff, {$using PDECODE.LIB } chainstuff; {$ELSEC} USES {$using PDECODE.LIB } chainstuff;  {$ENDC}  CONST prog_title= "'p-Code Disassembler, [v. 1.0, author un ; -byteval := byteval(loc) ; *END ; #END ; FUNCTION wordval (loc: integer) : integer ; Var #w: word ; # #BEGIN &w.b[0] := byteval (loc) ; &w.b[1] := byteval (succ(loc)) ; &wordval := w.i ; #END ; PROCEDURE hexbyte (value: integer ; var hex: string1) ; Var #w: word ; # #BEGIN &w.i := value ; &hex[0] := hexdigit[w.h[1]] ; &hex[1] := hexdigit[w.h[0]] ; #END ; PROCEDURE hexword (value: integer ; var hex: string3) ; Var #w: word ; # #BEGIN &ite ( f, ' ':21, '''') ; KEND ; HIF byteval(ipc) > 31 THEN Nwrite (f, chr(byteval(ipc))) HELSE Nwrite (f, '.') ; EEND ; Bwrite (f, '''') ; ?END ; 2x2 : BEGIN BIF NOT odd(ipc) THEN Fipc := succ(ipc) ; Bhandlew ; Bhandlew ; Bhandlew ;, db : handledb ; 2b : handleb ; 2w : handlew ; 2x0 : handlecsp ; 2x1 : BEGIN Bwrite (f, ' ''') ; BFOR i := 1 TO byteval(ipc) DO EBEGIN Hipc := succ(ipc) ; HIF i mod 16 = 0 THEN KBEGIN Nwriteln (f, ' ''') ; Nwr/hexbyte(byteval(ipc), byte) ; /write (f, hex, ' ', mnemonic, ' (', byte, ')', 9' ':7-length(mnemonic)) ; /CASE p1 OF 2ub, sb, db : handledb ; 2b : handleb ; 2w : handlew ; 2xx : BEGIN ?END ; /END ; /CASE p2 OF 2ub, sb526: s := ' (delete)' ; 527: s := ' (pos)' ; 528: s := ' (block read/write)' ; 529: s := ' (gotoxy)' ; 3END ; 3write (f, s) ; 0END ; )END ; ) &BEGIN (* oneop *) )WITH opcode[byteval(ipc)] DO ,BEGIN /hexword(ipc, hex) ; ; 517: s := ' (write char)' ; 518: s := ' (read string)' ; 519: s := ' (write string)' ; 520: s := ' (write array of char)' ; 521: s := ' (readln)' ; 522: s := ' (writeln)' ; 523: s := ' (concat)' ; 524: s := ' (insert)' ; 525: s := ' (copy)' ; 63: s := ' (build fib)' ; 65: s := ' (reset/rewrite)' ; 66: s := ' (clode)' ; 67: s := ' (get)' ; 68: s := ' (put)' ; 510: s := ' (eof)' ; 511: s := ' (eoln)' ; 512: s := ' (read integer)' ; 513: s := ' (write integer)' ; 516: s := ' (read char)'.39: s := ' (halt)' ; .40: s := ' (memavail)' ; ,END ; ,write (f, s) ; )END ; &PROCEDURE handlecxp ; &Var )s: string ; ) )BEGIN ,handledb ; ,IF byteval(pred(ipc)) = 0 THEN 0BEGIN 3s := '' ; 3CASE byteval(ipc) OF 62: s := ' (execerror)' ; ident segment)' ; .23: s := ' (trunc)' ; .24: s := ' (round)' ; .32: s := ' (mark)' ; .33: s := ' (release)' ; .34: s := ' (ioresult)' ; .35: s := ' (unitbusy)' ; .36: s := ' (pwroften)' ; .37: s := ' (unitwait)' ; .38: s := ' (unitclear)' ; ' (exit)' ; /5: s := ' (unitread)' ; /6: s := ' (unitwrite)' ; /7: s := ' (idsearch)' ; /8: s := ' (treesearch)' ; /9: s := ' (time)' ; .10: s := ' (fillchar)' ; .11: s := ' (scan)' ; .21: s := ' (load resident segment)' ; .22: s := ' (unload res, byte) ; ,write (f, byte) ; ,ipc := ipc+2 ; )END ; & &PROCEDURE handlecsp ; &Var )s: string ; ) )BEGIN ,s := '' ; ,CASE byteval(ipc) OF /0: s := ' (iocheck)' ; /1: s := ' (new)' ; /2: s := ' (moveleft)' ; /3: s := ' (moveright)' ; /4: s :=3hexbyte(byteval(ipc), byte) ; 3write (f, byte) ; 0END ,ELSE 0BEGIN 3hexbyte(byteval(ipc), byte) ; 3write (f, byte:3) ; 0END ; )END ; & &PROCEDURE handlew ; )BEGIN ,hexbyte(byteval(ipc+2), byte) ; ,write (f, byte:3) ; ,hexbyte(byteval(ipc+1),hexbyte(byteval(ipc), byte) ; ,write (f, byte:3) ; )END ; & &PROCEDURE handleb ; )BEGIN ,ipc := succ(ipc) ; ,IF byteval(ipc) > 127 THEN 0BEGIN 3hexbyte(byteval(ipc) - 128, byte) ; 3write (f, byte:3) ; 3ipc := succ(ipc) ; #lastcode : integer ; #hex : string3 ; # #PROCEDURE oneop ; #Var &i, min, max : integer ; &byte : string1 ; &hex : string3 ; & &PROCEDURE handledb ; )BEGIN ,ipc := succ(ipc) ; w.i := value ; &hex[0] := hexdigit[w.h[3]] ; &hex[1] := hexdigit[w.h[2]] ; &hex[2] := hexdigit[w.h[1]] ; &hex[3] := hexdigit[w.h[0]] ; #END ; PROCEDURE decodeproc (proc: integer) ; Var #ipc, jtab, lexlevel, #enteric, exitic, #paramsize, datasize, Bmin := wordval(ipc - 5) ; Bmax := wordval(ipc - 3) ; BFOR i := min TO max DO EBEGIN Hwriteln(f) ; Hwrite (f, ' ':19) ; Hhandlew ; Hhexword(pred(ipc) P- wordval(pred(ipc)),hex) ; Hwrite (f, ' (', hex, ')' ) ; EEND ; ?END ; 2x3 : BEGIN BCASE byteval(ipc) OF E2: write (f, ' (real)') ; E4: write (f, ' (string)') ; E6: write (f, ' (boolean)') ; E8: write (f, ' (set)') ; D10: BEGIN Khandleb ; Kwrite (f, ' (byte array)') ; HEND ; D12: BEGIN Khandleb ; Kwrite (THEN 2writeln (i:2, ' ', segname[i]) ; ,writeln ; ,writeln ('-1 to Exit program') ; ,writeln ; ,write ('Segment: ') ; ,readln (i) ; ,done := i < 0 ; ,IF i IN [0..15] THEN /IF seginfo[i].mtype <> pcodeleast THEN 2BEGIN 5writeln ('Segment not p-oseproc ; #END ; PROCEDURE choosesegment ; Var #i : integer ; #answer: char ; #done : boolean ; # #BEGIN &WITH sd.dict DO )REPEAT ,writeln ; ,writeln ('Segment to Analyze:') ; ,writeln ; ,FOR i := 0 TO 15 DO /IF segname[i] <> ' ' &writeln (f, 'Procedure Count ', pdcount) ; &writeln (f) ; &FOR i := 1 TO pdcount DO )BEGIN ,loc := loc-2 ; ,pd[i] := loc-wordval(loc) ; ,hexword(pd[i], hex) ; ,writeln (f, 'Procedure ', i:2, ', Address ', pd[i]:5, 8' (', hex, ')') ; )END ; &cholength) ; &readblock(loc) ; &pdcount := byteval(loc) ; &loc := pred(loc) ; &writeln(f); &writeln (f, 'Procedure Dictionary:') ; &writeln (f, '---------------------') ; &writeln (f) ; &writeln (f, 'Segment ', byteval(loc)) ; #i, loc, seglength: integer ; #hex : string3 ; # #BEGIN &WITH sd.dict DO )BEGIN ,firstaddr := 0 ; ,firstblock := diskinfo[seg].codeaddr ; ,currentblock := firstblock ; ,seglength := diskinfo[seg].codeleng ; )END ; &loc := pred(seg)') ; )writeln ; )write ('Procedure: ') ; )readln (i) ; )done := (i = -1) ; )IF i IN [1..pdcount] THEN +BEGIN .decodeproc(i) ; .writeln('Last Procedure Decoded was: ',i); +END; &UNTIL done ; #END ; PROCEDURE readprocdict (seg: integer) ; Var9REPEAT  lastcode ; )END ; #END ; PROCEDURE chooseproc ; Var #i : integer ; #done : boolean ; # #BEGIN &REPEAT )writeln ; )writeln ('Procedure to Decode: [1..', pdcount, ']', 1' (-1 to Change Segment, ' (', hex, ')') ; ,writeln (f) ; ,ipc := enteric ; ,IF lexlevel < -1 THEN 0writeln ( '>>> Lex Level Bad <<<' ) ,ELSE IF enteric < 0 THEN 5writeln ( '>>> Enter IC Bad <<<' ) 1ELSE IF exitic < 0 THEN :writeln ( '>>> Exit IC Bad <<<' ) 6ELSE ric, ' (', hex, ')') ; ,hexword (exitic, hex) ; ,writeln (f, 'Exit IC ', exitic, ' (', hex, ')') ; ,hexword (paramsize, hex) ; ,writeln (f, 'Parameter Size ', paramsize, ' (', hex, ')') ; ,hexword (datasize, hex) ; ,writeln (f, 'Data Size ', datasize; ,lastcode := jtab-9 ; ,writeln(f); ,writeln (f, 'Procedure Code:') ; ,writeln (f, '---------------') ; ,writeln (f) ; ,writeln (f, 'Lex Level ', lexlevel, 8', Procedure ', byteval(jtab)) ; ,hexword (enteric, hex) ; ,writeln (f, 'Enter IC ', ente)END &ELSE )BEGIN ,lexlevel := byteval(succ(jtab)) ; ,IF lexlevel > 127 THEN 1lexlevel := lexlevel - 256 ; ,enteric := (jtab-2)-wordval(jtab-2) ; ,exitic := (jtab-4)-wordval(jtab-4) ; ,paramsize := wordval(jtab-6) ; ,datasize := wordval(jtab-8) astcode := ipc ; BEND ; 2xx : BEGIN ?END ; /END ; (* case *) ,END ; (* with *) ,writeln (f) ; &END ; # #BEGIN (* decodeproc *) &jtab := pd[proc] ; &IF jtab < 0 THEN )BEGIN ,writeln ; ,writeln ('>>> Procedure Address Bad <<<') ; 2x6 : BEGIN Bi := byteval(ipc) ; BIF i < 128 THEN Fhexword(succ(ipc)+i, hex) BELSE EBEGIN Hi := jtab - (256 - i) ; Hhexword(i - wordval(i), hex) ; EEND ; Bwrite (f, ' (', hex, ')') ; ?END ; 2x7 : BEGIN BIF ipc >= exitic THEN Glf, ' (word)') ; HEND ; BEND ; ?END ; 2x4 : BEGIN Bmax := byteval(ipc) ; BIF NOT odd(ipc) THEN Eipc := succ(ipc) ; BFOR i := 1 TO max DO EBEGIN Hwriteln (f) ; Hwrite (f, ' ':19) ; Hhandlew ; EEND ; ?END ; 2x5 : handlecxp ; code (least)' ) ; 5IF true {seginfo[i].mtype IN [undefined,pcodemost]} THEN 8BEGIN ;write ('Try to decode anyway (y/n): ') ; ;readln (answer) ; ;IF answer IN ['y','Y'] THEN >readprocdict(i) ; 8END 2END /ELSE 2readprocdict(i) ; )UNTIL done ; #END ; PROCEDURE readsegdict ; Var #i: integer ; #s: string ; # #BEGIN &IF blockread(sourcefile, sd.buf,1,0) <> 1 THEN )BEGIN ,writeln ('Error in reading Segment Dictionary') ; ,exit (decode) ; )END ; &WITH sd.dict DO )BEGIN ,i := 0 ; ,write,xx); & init(190,'LDB' ,xx,xx); )init(191,'STB' ,xx,xx); & init(192,'IXP' ,ub,ub); )init(193,'RBP' ,db,x7); & init(194,'CBP' ,ub,xx); )init(195,'EQUI' ,xx,xx); & init(196,'GEQI' ,xx,xx); )init(197,'GRTI' ,xx,xx); & init(198,'LLA' ,b,x3); )init(181,'LES' ,db,x4); & init(182,'LOD' ,db, b); )init(183,'NEQ' ,db,x3); & init(184,'STR' ,db, b); )init(185,'UJP' ,sb,x6); & init(186,'LDP' ,xx,xx); )init(187,'STP' ,xx,xx); & init(188,'LDM' ,ub,xx); )init(189,'STM' ,ub)init(173,'RNP' ,db,x7); & init(174,'CIP' ,ub,xx); )init(175,'EQU' ,db,x3); 'END ; #PROCEDURE init2 ; &BEGIN & init(176,'GEQ' ,db,x3); )init(177,'GRT' ,db,x3); )init(178,'LDA' ,db, b); )init(179,'LDC' ,ub,x4); & init(180,'LEQD' ,d); )init(165,'LAO' , b,xx); & init(166,'LSA' ,ub,x1); )init(167,'LAE' ,ub, b); & init(168,'MOV' , b,xx); )init(169,'LDO' , b,xx); & init(170,'SAS' ,ub,xx); )init(171,'SRO' , b,xx); & init(172,'XJP' ,xx,x2); & init(156,'UNI' ,xx,xx); )init(157,'LDE' ,ub, b); & init(158,'CSP' ,ub,x0); )init(159,'LDCN' ,xx,xx); & init(160,'ADJ' ,ub,xx); )init(161,'FJP' ,sb,x6); & init(162,'INC' , b,xx); )init(163,'IND' , b,xx); & init(164,'IXA' , b,xx; )init(147,'LNOT' ,xx,xx); & init(148,'SRS' ,xx,xx); )init(149,'SBI' ,xx,xx); & init(150,'SBR' ,xx,xx); )init(151,'SGS' ,xx,xx); & init(152,'SQI' ,xx,xx); )init(153,'SQR' ,xx,xx); & init(154,'STO' ,xx,xx); )init(155,'IXS' ,xx,xx);& init(138,'FLT' ,xx,xx); )init(139,'INN' ,xx,xx); & init(140,'INT' ,xx,xx); )init(141,'LOR' ,xx,xx); & init(142,'MODI' ,xx,xx); )init(143,'MPI' ,xx,xx); & init(144,'MPR' ,xx,xx); )init(145,'NGI' ,xx,xx); & init(146,'NGR' ,xx,xx)init(129,'ABR' ,xx,xx); )init(130,'ADI' ,xx,xx); )init(131,'ADR' ,xx,xx); & init(132,'LAND' ,xx,xx); )init(133,'DIF' ,xx,xx); & init(134,'DVI' ,xx,xx); )init(135,'DVR' ,xx,xx); & init(136,'CHK' ,xx,xx); )init(137,'FLO' ,xx,xx); Var #i: integer ; #s: string7 ; # #PROCEDURE init(op: integer; mne:string7; x1,x2: ptype) ; &BEGIN )WITH opcode[op] DO ,BEGIN /mnemonic := mne ; /p1 := x1 ; /p2 := x2 ; ,END ; &END ; #PROCEDURE init1 ; &BEGIN & init(128,'ABI' ,xx,xx); )linked Intrinsic' ; ;linkedintrins : s := 'Linked Intrinsic' ; ;dataseg : s := 'Data Segment' ; 8END ; 8writeln (f, segname[i], ' (', s, ')') ; 5END ; /i := succ(i) ; ,UNTIL i > 15 ; )END ; )choosesegment ; #END ; PROCEDURE initialize ; 8CASE segkind[i] OF ;linked : s := 'Linked' ; ;hostseg : s := 'Host Segment' ; ;segproc : s := 'Segment Procedure' ; ;unitseg : s := 'Unit Segment' ; ;seprtseg : s := 'Separate Segment' ; ;unlinkedintrins: s := 'Un:= 'PDP11' ; ;m8080 : s := '8080' ; ;z80 : s := 'Z80' ; ;ga440 : s := 'GA440' ; ;m6502 : s := '6502' ; ;m6800 : s := '6800' ; ;ti9900 : s := 'TI9900' ; 8END ; 8writeln (f, 'Code Type is ', s) ; 8s := '' ; , codeleng, G', Address ', codeaddr) ; 8writeln (f, 'System Version = ', version) ; 8s := '' ; 8CASE mtype OF ;undefined : s := 'Undefined' ; ;pcodemost : s := 'P-Code (Most Sig. 1st)' ; ;pcodeleast: s := 'P-Code (Least Sig. 1st)' ; ;pdp11 : s ln(f); ,writeln (f, 'Segment Dictionary:') ; ,writeln (f, '-------------------') ; ,REPEAT /IF segname[i] <> ' ' THEN 2WITH seginfo[i] DO 5BEGIN 8writeln (f) ; 8writeln (f, 'Segment #', segnum) ; 8WITH diskinfo[i] DO ;writeln (f, 'Length ' b,xx); )init(199,'LDCI' , w,xx); & init(200,'LEQI' ,xx,xx); )init(201,'LESI' ,xx,xx); & init(202,'LDL' , b,xx); )init(203,'NEQI' ,xx,xx); & init(204,'STL' , b,xx); )init(205,'CXP' ,ub,x5); & init(206,'CLP' ,ub,xx); )init(207,'CGP' ,ub,xx); & init(208,'LPA' ,ub,x1); )init(209,'STE' ,ub, b); & init(210,'NOP' ,xx,xx); )init(211,'EFJ' ,sb,x6); & init(212,'NFJ' ,sb,x6); )init(213,'BPT' , b,xx); & init(214,'XIT' ,xx,xx); )init(215,'NOP' ,xx,xx); egdict ; #close(f, lock) ; #close(sourcefile); END. rror opening source file.'); 0exit(decode); *end; #rewrite (f, destname) ; #if ioresult<>0 %then begin writeln(chr(13),chr(7),'Error opening output file.'); 0exit(decode); *end; #writeln(f); #writeln(f,'File: ',sourcename); #writeln(f); #reads9IF (pos('.TEXT',destname) = 0) 9THEN destname := concat(destname, '.TEXT'); 7END 2ELSE delete(destname,length(destname),1) ; 0END; (END; {$ENDC} # # #{$I-} #reset (sourcefile,sourcename) ; #if ioresult<>0 %then begin writeln(chr(13),chr(7),'EIN {assume SOS format pathname} +IF ( pos('/',destname) = 0 ) AND (destname[1] = '.') +THEN BEGIN {it's a SOS device} 3{no changes needed} 0END +ELSE BEGIN {it's a text file} 2IF destname[length(destname)] <> '.' 2THEN BEGIN <> '.' &THEN sourcename := concat(sourcename, '.CODE') &ELSE delete(sourcename,length(sourcename),1) ; #write ( 'Destination File: ') ; #readln (destname) ; #str2upcase(destname,destname); #IF destname = '' #THEN destname := '.CONSOLE' #ELSE BEGname,false) #then exit(decode); # {$ELSEC} # #write( 'Source File: '); readln( sourcename ); #if length(sourcename)=0 then exit(program); #str2upcase(sourcename,sourcename); #IF pos('.CODE', sourcename) = 0 THEN &IF sourcename[length(sourcename)] #if not prompt_for_filename('Source File: ',x,y,sourcename,false) %then exit(decode); #IF sourcename = '' THEN exit (decode) ; #writeln; #destname:='.CONSOLE'; #codefsetup:=false; x:=-1; y:=y+1; #if not prompt_for_filename('Output File: ',x,y, destzing...') ; #initialize ; #writeln ; #  {open files routines - if you have DIRSTUFF recompile with using_dirstuff true}  {$IFC using_dirstuff } # #sourcename:=''; #codefsetup:=true; dot_text_code:=false; #x:=-1; y:=5; OR i := 0 TO 127 DO )BEGIN ,str(i,s) ; ,s := concat('SDLC',s) ; ,init(i,s,xx,xx) ; )END ; &init1 ; &init2 ; &init3 ; #END ; BEGIN (* main *) #hexdigit := '0123456789ABCDEF' ; #writeln (chr(28), prog_title); #writeln; #writeln ('Initiali' ,xx,xx); )init(249,'SIND1' ,xx,xx); & init(250,'SIND2' ,xx,xx); )init(251,'SLDL3' ,xx,xx); & init(252,'SLDL4' ,xx,xx); )init(253,'SLDL5' ,xx,xx); & init(254,'SLDL6' ,xx,xx); )init(255,'SLDL7' ,xx,xx); 'END ;  #BEGIN (* initialize *) &F& init(240,'SLDO9' ,xx,xx); )init(241,'SLDO10',xx,xx); & init(242,'SLDO11',xx,xx); )init(243,'SLDO12',xx,xx); & init(244,'SLDO13',xx,xx); )init(245,'SLDO14',xx,xx); & init(246,'SLDO15',xx,xx); )init(247,'SLDO16',xx,xx); & init(248,'SIND0 init(232,'SLDO1' ,xx,xx); )init(233,'SLDO2' ,xx,xx); & init(234,'SLDO3' ,xx,xx); )init(235,'SLDO4' ,xx,xx); & init(236,'SLDO5' ,xx,xx); )init(237,'SLDO6' ,xx,xx); & init(238,'SLDO7' ,xx,xx); )init(239,'SLDO8' ,xx,xx); SLDL8' ,xx,xx); & init(224,'SLDL9' ,xx,xx); )init(225,'SLDL10',xx,xx); & init(226,'SLDL11',xx,xx); )init(227,'SLDL12',xx,xx); & init(228,'SLDL13',xx,xx); )init(229,'SLDL14',xx,xx); & init(230,'SLDL15',xx,xx); )init(231,'SLDL16',xx,xx); & 'END ; #PROCEDURE init3 ; &BEGIN & init(216,'SLDL1' ,xx,xx); )init(217,'SLDL2' ,xx,xx); & init(218,'SLDL3' ,xx,xx); )init(219,'SLDL4' ,xx,xx); & init(220,'SLDL5' ,xx,xx); )init(221,'SLDL6' ,xx,xx); & init(222,'SLDL7' ,xx,xx); )init(223,'PDECODELibrary3  (word) }k XI1    ȡ    ǀɡ  ڂڕ צ (  )7 ġ &$ ~~|zp '     ȡM      צ (  )   (real) (string)y (boolean)b צ (set)O (byte array)  צ (  )  . * &$  $ צ ' ȡa  á&  '   ' š   .nsert)תP (copy)תP (delete)תP} (pos)תPnצ (block read/write)PRצ (gotoxy)P@8|nXE2 wjP PR Z     of)תPצ (eoln)Pצ (read integer)Pצ (write integer)P (read char)תPצ (write char)Pצ (read string)P (write string)תP (write array of char)תPצ (readln)Pצ (writeln)P (concat)תP (it`R@ "$&(*D%468:<>@zl  hR t   áתP  (execerror)תPצ (build fib)P (reset/rewrite)תPצ (clode)P (get)תPצ (put)P (eP (unload resident segment)תPצ (trunc)P (round)תPצ (mark)Pצ (release)P (ioresult)תP (unitbusy)תP (pwroften)תP (unitwait)תP (unitclear)תP~צ (halt)Pnצ (memavail)PZ(Rצ (iocheck)P (new)תPצ (moveleft)Pצ (moveright)P (exit)תP (unitread)תP (unitwrite)תPצ (idsearch)Pצ (treesearch)Pצ (time)Pצ (fillchar)Pצ (scan)Pצ (load resident segment)h    (    š> ǀ       r       D צP p-Code Disassembler02 *** T.A.U. *** Disk DiskrammRunning p-Code Dissassembler PDECODE.CODE3$  0b Ǖɡ;צ>>> Procedure Address Bad <<<š   Procedure Code:  צ---------------   צ Lex Level  צ , Procedure     צ Enter IC   (  )   צExit IC  צ (  )   Parameter SGRTI LLA צLDCI צLEQI צLESI צLDL NEQI STL צCXP CLP צCGP LPAצSTENOP צEFJ NFJ צBPT XIT צNOP DzLDAdzצLDC ǴLEQDǵLES ǶצLODǷNEQǸצSTRǹUJP ǺצLDP ǻSTP ǼצLDM ǽSTM ǾצLDB ǿSTB צIXPRBP צCBP EQUI GEQI LDCN ǠADJ ǡצFJP ǢINC ǣצIND ǤIXA ǥצLAO ǦLSAǧצLAEǨMOV ǩצLDO ǪSAS ǫצSRO ǬXJP ǭצRNP ǮCIP ǯצEQU|ǰGEQDZצGRT njצINT ǍLOR ǎצMODI ǏצMPI ǐMPR ǑצNGI ǒNGR ǓצLNOT ǔצSRS ǕSBI ǖצSBR ǗSGS ǘצSQI ǙSQR ǚצSTO ǛIXS ǜצUNI ǝLDEǞצCSPǟ ) šLeXuXڪ ؚٚ *ǀABI ǁצABR ǂADI ǃצADR DŽLAND DžDIF džצDVI LJDVR LjצCHK ljFLO NJצFLT NjINNתPצLinkedP Host SegmentתPצSegment ProcedurePצ Unit SegmentPySeparate SegmentתP`צUnlinked IntrinsicPELinked IntrinsicתP,צ Data SegmentPqZA*  צ ( P+צ UndefinedPצP-Code (Most Sig. 1st)PP-Code (Least Sig. 1st)תPyPDP11תPk8080תP^צZ80PRצGA440PDצ6502P76800תP*צTI9900P k_TJ>3( צ Code Type is    -------------------  (+  Segment # + , צLength  , , Address  ,  צSystem Version =  + צst)TצTry to decode anyway (y/n): ٳڡ e0ˡ;צ#Error in reading Segment Dictionary  צSegment Dictionary: ȡO /  צ-1 to Exit programצ Segment:  (ˡSegment not p-code (lea  ȡǕǕ צ Procedure   צ , Address  Ǖ  (  )   Segment to Analyze:coded was:  ١   Procedure Dictionary:  צ---------------------   צSegment    Procedure Count xit IC Bad <<<  š Procedure to Decode: [1.. ]צ (-1 to Change Segment)צ Procedure:  픋=Last Procedure Deize  צ (  )   Data Size   (  )   ɡ+צ>>> Lex Level Bad <<<iɡ*צ>>> Enter IC Bad <<<:ɡ)>>> ESLDL1 צSLDL2 SLDL3 צSLDL4 SLDL5 צSLDL6 SLDL7 צSLDL8 SLDL9 צSLDL10 צSLDL11 צSLDL12 צSLDL13 צSLDL14 צSLDL15 צSLDL16 צSLDO1 SLDO2 צSLDO3 SLDO4 צSLDO5 SLDO6 צSLDO7 SLDO8 צSLDO9 SLDO10 SLDO11 SLDO12 SLDO13 SLDO14 SLDO15 SLDO16 SIND0 D5Use arrow keys to change selection, return accepts...X p ؚ ުP1ƂWǦ̂1"ˡ"1 11"ˡ"1 ʂɄ'ʂ̂ʂ11"ˡ" áá ááܳQHCommands: M(ain menu, E(dit menu, P(refix, R(estart, Q(uit, C(atalyst: MáEáPázRáצ ٥GaQáXVáOá| צ. |ؚ G0۶ȡ۸# i tܶ٢٢|(//ȡ^000 צ. |g J . <Lj L ڦתP $ á//צPrefix: /X/Pצ5Use arrow keys to change selection, return accepts... ,Run *MENU.EDIT.CODE to create *MENULIST.DATA* WADE`S PASCAL MENUצ , version: 2.0! , rev. 5/11/85 by Daniel G.WadeABvتPR #Returning to Pascal command line... צPrefix: צWADE`S PASCAL MENUצ, Reading menu file...(G cMenu data file not found* New prefix?: h*Pš צHCommands: M(ain menu, E(dit menu, P(refix, R(estart, Q(uit, C(atalyst: L T*MENU.EDIT.CODEתPCalling the Menu Editor...LPצצL T*MENULIST.DATAתPצSwitching to System Main MenuPGL\**צPrefix: *X*PFile: Oz**צPrefix: *XACDEFGHIJK5/19/85 v. 2.0 by DGWade* 2PASCALMECHAINSTU צSIND1 SIND2 צSLDL3 SLDL4 צSLDL5 SLDL6 צSLDL7 nȡ8 צSDLC  F T0V />0123456789ABCDʂšʂ11V /۪PڪPܥGX ./PܥGX PܥGX X X|áڦ MENULIST.DATAתPˡەP% MENULIST.DATA צ* צ MENULIST.DATA ڦ MENULIST.DATAׯ PǠPq ڣ 4 ƎFƎƏƏ̏Ǝ̏Əʏ*PƏʏSǠƏPʏƎƎFƏƏ 0NPQR2 CHAINSTU p .צDestination File: VPVVVצVצ.CONSOLEPp/ץVåV.ÄUVV.ˡ;צ.TEXTVá%VHHVPHצ.TEXTUHP VV0"ˡ> Error opening source file. V"ˡ> Error opening output file.  File:     00  (r " n4Xצ.CODEUHP צDestination File: VPVVVצVצ.CONSOLEPp/ץVåV.ÄUVV.ˡ;צ.TEXTVá%VHHVPHצ.TEXTUHP VV0"ˡ> EF>p-Code Disassembler, [v. 1.0, author unknown, mod 5/8/85 DGW]Initializing...צ Source File: Pצ.CODEáA.ˡ'HHPH6   PTz @ȡQ-Pצ:-á:ײPN? XP ??زP>پ/ˡ צ/P?8??زP>? צP|**ˡ+*+< 0ݪPܪP0š YY0PYǠYPF D ۮ   ڪPXPšEצ:š  >#צ*צ:á >š{-NVWf-NتPRš+R+PP4تPRšG+R+PGP4GRšزGRPزGPR0ȡپ á*š*۾١:/˄ /P /á h  h R* FצEXEC//٢*V٢SǦ6++*+S.CODEá,,P,.Q,P,,P,צ|Q,ǡ,v G  A צ Program: AS  Prefix:  A(A ~elx 8 DGƎFƎPʏʏqצEXEC//٢*V٢SǦ6++*+S.CODEá,,P,.Q,P,,P,צ|Q,ǡ,v ( ( (PROCEDURE SetChain( Tytle: STRING); (PROCEDURE SetCVal ( Val: STRING); (PROCEDURE GetCVal ( VAR Val: STRING); # ({mod 1.0 5/3/85 dgw for menu auto support } ( (FUNCTION set_prefix(new_prefix: STRING): BOOLEAN; (PROCEDURE get_prefix(VXYZ[\]^_`abcdefghP_d"!DECODE QLIBMAP.CODEExitt Libmapp-Code DisassemblerSU *** T.A.U. *** Disk DiskrammRunning p-Code Dissassembler PDECODE.CODEPDECODELibrary6   PTz @ȡQ-Pצ:-á:ײPN? XP ??زP>پ/ˡ צ/P?8??زP>? צP|**ˡ+*+< 0ݪPܪP0š YY0PYǠYPF D ۮ   ڪPXPšEצ:š  >#צ*צ:á >š{-NVWf-NتPRš+R+PP4تPRšG+R+PGP4GRšزGRPزGPR0ȡپ á*š*۾١:/˄ /P /áVAR current_prefix: STRING); (PROCEDURE get_pathname(VAR pathname: STRING); ( # #IMPLEMENTATION E LIBRARY"JJ*.r;t^JJ:>;t^; NNRRP ^5PECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,)٪PP,-,-ȡ1, ,, ,,;V Vɡġġɡ0ˡ>צ&Blockread: Error in reading sourcefilek Ʉxit IC Bad <<<  š Procedure to Decode: [1.. ]צ (-1 to Change Segment)צ Procedure:  픋=Last Procedure Deize  צ (  )   Data Size   (  )   ɡ+צ>>> Lex Level Bad <<<iɡ*צ>>> Enter IC Bad <<<:ɡ)>>> E   צ Lex Level  צ , Procedure     צ Enter IC   (  )   צExit IC  צ (  )   Parameter S3$  0b Ǖɡ;צ>>> Procedure Address Bad <<<š   Procedure Code:  צ---------------3  (word) }k XI1    ȡ    ǀɡ  ڂڕ צ (  )7 ġ &$ ~~|zp '     ȡM      צ (  )   (real) (string)y (boolean)b צ (set)O (byte array)  צ (  )  . * &$  $ צ ' ȡa  á&  '   ' š   .nsert)תP (copy)תP (delete)תP} (pos)תPnצ (block read/write)PRצ (gotoxy)P@8|nXE2 wjP PR Z     of)תPצ (eoln)Pצ (read integer)Pצ (write integer)P (read char)תPצ (write char)Pצ (read string)P (write string)תP (write array of char)תPצ (readln)Pצ (writeln)P (concat)תP (it`R@ "$&(*D%468:<>@zl  hR t   áתP  (execerror)תPצ (build fib)P (reset/rewrite)תPצ (clode)P (get)תPצ (put)P (eP (unload resident segment)תPצ (trunc)P (round)תPצ (mark)Pצ (release)P (ioresult)תP (unitbusy)תP (pwroften)תP (unitwait)תP (unitclear)תP~צ (halt)Pnצ (memavail)PZ(Rצ (iocheck)P (new)תPצ (moveleft)Pצ (moveright)P (exit)תP (unitread)תP (unitwrite)תPצ (idsearch)Pצ (treesearch)Pצ (time)Pצ (fillchar)Pצ (scan)Pצ (load resident segment)h    (    š> ǀ       r       D צP  00>>:>>>>coded was:  ١   Procedure Dictionary:  צ---------------------   צSegment    Procedure Count   ȡǕǕ צ Procedure   צ , Address  Ǖ  (  )   Segment to Analyze:EF>p-Code Disassembler, [v. 1.0, author unknown, mod 5/8/85 DGW]Initializing...צ Source File: Pá.CODEץáA.ˡ'HצSIND1 SIND2 צSLDL3 SLDL4 צSLDL5 SLDL6 צSLDL7 nȡ8 צSDLC  F T0V />0123456789ABCDSLDO1 SLDO2 צSLDO3 SLDO4 צSLDO5 SLDO6 צSLDO7 SLDO8 צSLDO9 SLDO10 SLDO11 SLDO12 SLDO13 SLDO14 SLDO15 SLDO16 SIND0 SLDL1 צSLDL2 SLDL3 צSLDL4 SLDL5 צSLDL6 SLDL7 צSLDL8 SLDL9 צSLDL10 צSLDL11 צSLDL12 צSLDL13 צSLDL14 צSLDL15 צSLDL16 צGRTI LLA צLDCI צLEQI צLESI צLDL NEQI STL צCXP CLP צCGP LPAצSTENOP צEFJ NFJ צBPT XIT צNOP DzLDAdzצLDC ǴLEQDǵLES ǶצLODǷNEQǸצSTRǹUJP ǺצLDP ǻSTP ǼצLDM ǽSTM ǾצLDB ǿSTB צIXPRBP צCBP EQUI GEQI LDCN ǠADJ ǡצFJP ǢINC ǣצIND ǤIXA ǥצLAO ǦLSAǧצLAEǨMOV ǩצLDO ǪSAS ǫצSRO ǬXJP ǭצRNP ǮCIP ǯצEQU|ǰGEQDZצGRT njצINT ǍLOR ǎצMODI ǏצMPI ǐMPR ǑצNGI ǒNGR ǓצLNOT ǔצSRS ǕSBI ǖצSBR ǗSGS ǘצSQI ǙSQR ǚצSTO ǛIXS ǜצUNI ǝLDEǞצCSPǟ ) šLeXuXڪ ؚٚ *ǀABI ǁצABR ǂADI ǃצADR DŽLAND DžDIF džצDVI LJDVR LjצCHK ljFLO NJצFLT NjINNתPצLinkedP Host SegmentתPצSegment ProcedurePצ Unit SegmentPySeparate SegmentתP`צUnlinked IntrinsicPELinked IntrinsicתP,צ Data SegmentPqZA*  צ ( P+צ UndefinedPצP-Code (Most Sig. 1st)PP-Code (Least Sig. 1st)תPyPDP11תPk8080תP^צZ80PRצGA440PDצ6502P76800תP*צTI9900P k_TJ>3( צ Code Type is    -------------------  (+  Segment # + , צLength  , , Address  ,  צSystem Version =  + צst)TצTry to decode anyway (y/n): ٳڡ e0ˡ;צ#Error in reading Segment Dictionary  צSegment Dictionary: ȡO /  צ-1 to Exit programצ Segment:  (ˡSegment not p-code (leaHPH.CODEUHP Destination File: VPVVVׯV.CONSOLEתPpצ/VåV.ÄUVV.ˡ;.TEXTץVá%VHHVPH.TEXTUHP VV0"ˡ> צError opening source file. V"ˡ> צError opening output file.  צFile:     00  ' ~ . z)init(243,'SLDO12',xx,xx); & init(244,'SLDO13',xx,xx); )init(245,'SLDO14',xx,xx); & init(246,'SLDO15',xx,xx); )init(247,'SLDO16',xx,xx); & init(248,'SIND0' ,xx,xx); )init(249,'SIND1' ,xx,xx); & init(250,'SIND2' ,xx,xx); )init(251,'SLDL3' ,; )init(235,'SLDO4' ,xx,xx); & init(236,'SLDO5' ,xx,xx); )init(237,'SLDO6' ,xx,xx); & init(238,'SLDO7' ,xx,xx); )init(239,'SLDO8' ,xx,xx); & init(240,'SLDO9' ,xx,xx); )init(241,'SLDO10',xx,xx); & init(242,'SLDO11',xx,xx); (226,'SLDL11',xx,xx); )init(227,'SLDL12',xx,xx); & init(228,'SLDL13',xx,xx); )init(229,'SLDL14',xx,xx); & init(230,'SLDL15',xx,xx); )init(231,'SLDL16',xx,xx); & init(232,'SLDO1' ,xx,xx); )init(233,'SLDO2' ,xx,xx); & init(234,'SLDO3' ,xx,xx)' ,xx,xx); & init(218,'SLDL3' ,xx,xx); )init(219,'SLDL4' ,xx,xx); & init(220,'SLDL5' ,xx,xx); )init(221,'SLDL6' ,xx,xx); & init(222,'SLDL7' ,xx,xx); )init(223,'SLDL8' ,xx,xx); & init(224,'SLDL9' ,xx,xx); )init(225,'SLDL10',xx,xx); & init& init(210,'NOP' ,xx,xx); )init(211,'EFJ' ,sb,x6); & init(212,'NFJ' ,sb,x6); )init(213,'BPT' , b,xx); & init(214,'XIT' ,xx,xx); )init(215,'NOP' ,xx,xx); 'END ; #PROCEDURE init3 ; &BEGIN & init(216,'SLDL1' ,xx,xx); )init(217,'SLDL2& init(202,'LDL' , b,xx); )init(203,'NEQI' ,xx,xx); & init(204,'STL' , b,xx); )init(205,'CXP' ,ub,x5); & init(206,'CLP' ,ub,xx); )init(207,'CGP' ,ub,xx); & init(208,'LPA' ,ub,x1); )init(209,'STE' ,ub, b); )init(193,'RBP' ,db,x7); & init(194,'CBP' ,ub,xx); )init(195,'EQUI' ,xx,xx); & init(196,'GEQI' ,xx,xx); )init(197,'GRTI' ,xx,xx); & init(198,'LLA' , b,xx); )init(199,'LDCI' , w,xx); & init(200,'LEQI' ,xx,xx); )init(201,'LESI' ,xx,xx); 0V /.צ#QUICK LIBMAP, [v. 1.2, 5/8/85 DGW]6Lists the segment info of Pascal codefiles & librariesV.CONSOLEתP  File:    00 .//.l6&,Z2L le: V. 0"ˡ> Error opening source file. V"ˡ> Error opening output file.( 0V /.צ#QUICK LIBMAP, [v. 1.2, 5/8/85 DGW]6Lists the segment info of Pascal codefiles & librariesV.CONSOLEתP  File:    00 ./. צ/ Output File: V. 0"ˡ> Error opening source file. V"ˡ> Error opening output file.( 4  Segment # } צ:     צ System version =  + , code type is  T šHHfתP// Source File:  תPצ Host Segment P Segment Procedure תPצ Unit Segment P Separate Segment תPtצ Unlinked Intrinsic PU Linked Intrinsic תP6צ Data Segment PnQ*@d|( .Destination File: VPVVVׯV.CONSOLEתPpצ/VåV.ÄUVV.ˡ;.TEXTץVá%VHHVPH.TEXTUHP VV0"xx,xx); & init(252,'SLDL4' ,xx,xx); )init(253,'SLDL5' ,xx,xx); & init(254,'SLDL6' ,xx,xx); )init(255,'SLDL7' ,xx,xx); 'END ;  #BEGIN (* initialize *) &FOR i := 0 TO 127 DO )BEGIN ,str(i,s) ; ,s := concat('SDLC',s) ; ,init(i,s,xx,xx) ; )END ; &init1 ; &init2 ; &init3 ; #END ; BEGIN (* main *) #hexdigit := '0123456789ABCDEF' ; #writeln (chr(28), prog_title); #writeln; #writeln ('Initializing...') ; #initialize ; #writeln ; # (* {superceded by Dirstuff rtnes} #write ( 'S٪PP,-,-ȡ1, ,, ,,;V Vɡġġɡ0ˡ>צ&Blockread: Error in reading sourcefilek Ʉuwxyz{|}~P_dgg DECODE #writeln(f,'File: ',sourcename); #writeln(f); #readsegdict ; #close(f, lock) ; #close(sourcefile); END. lt<>0 %then begin writeln(chr(13),chr(7),'Error opening source file.'); 0exit(decode); *end; #rewrite (f, destname) ; #if ioresult<>0 %then begin writeln(chr(13),chr(7),'Error opening output file.'); 0exit(decode); *end; #writeln(f); sourcename = '' THEN exit (decode) ; #writeln; #destname:='.CONSOLE'; #codefsetup:=false; x:=-1; y:=y+1; #if not prompt_for_filename('Output File: ',x,y, destname,false) #then exit(decode); # # #{$I-} #reset (sourcefile,sourcename) ; #if ioresuT',destname) = 0) 1THEN destname := concat(destname, '.TEXT'); -END; (END; *) # # #sourcename:=''; #codefsetup:=true; dot_text_code:=false; #x:=-1; y:=5; #if not prompt_for_filename('Source File: ',x,y,sourcename,false) %then exit(decode); #IF)ELSE ,delete(sourcename,length(sourcename),1) ; #write ( 'Destination File: ') ; #readln (destname) ; #str2upcase(destname,destname); #IF destname = '' THEN &destname := '.CONSOLE' #ELSE BEGIN *IF destname[1] <> '.' *THEN BEGIN 1IF (pos('.TEXource File: ') ; #readln ( sourcename ) ; #str2upcase(sourcename,sourcename); #IF pos('.CODE', sourcename) = 0 THEN &IF pos('system.',sourcename) = 0 THEN )IF sourcename[length(sourcename)] <> '.' THEN ,sourcename := concat(sourcename, '.code')  00>>:>>>>h    (    š> ǀ       r       D צP   ȡǕǕ צ Procedure   צ , Address  Ǖ  (  )   Segment to Analyze:coded was:  ١   Procedure Dictionary:  צ---------------------   צSegment    Procedure Count xit IC Bad <<<  š Procedure to Decode: [1.. ]צ (-1 to Change Segment)צ Procedure:  픋=Last Procedure Deize  צ (  )   Data Size   (  )   ɡ+צ>>> Lex Level Bad <<<iɡ*צ>>> Enter IC Bad <<<:ɡ)>>> E   צ Lex Level  צ , Procedure     צ Enter IC   (  )   צExit IC  צ (  )   Parameter S3$  0b Ǖɡ;צ>>> Procedure Address Bad <<<š   Procedure Code:  צ---------------3  (word) }k XI1    ȡ    ǀɡ  ڂڕ צ (  )7 ġ &$ ~~|zp '     ȡM      צ (  )   (real) (string)y (boolean)b צ (set)O (byte array)  צ (  )  . * &$  $ צ ' ȡa  á&  '   ' š   .nsert)תP (copy)תP (delete)תP} (pos)תPnצ (block read/write)PRצ (gotoxy)P@8|nXE2 wjP PR Z     of)תPצ (eoln)Pצ (read integer)Pצ (write integer)P (read char)תPצ (write char)Pצ (read string)P (write string)תP (write array of char)תPצ (readln)Pצ (writeln)P (concat)תP (it`R@ "$&(*D%468:<>@zl  hR t   áתP  (execerror)תPצ (build fib)P (reset/rewrite)תPצ (clode)P (get)תPצ (put)P (eP (unload resident segment)תPצ (trunc)P (round)תPצ (mark)Pצ (release)P (ioresult)תP (unitbusy)תP (pwroften)תP (unitwait)תP (unitclear)תP~צ (halt)Pnצ (memavail)PZ(Rצ (iocheck)P (new)תPצ (moveleft)Pצ (moveright)P (exit)תP (unitread)תP (unitwrite)תPצ (idsearch)Pצ (treesearch)Pצ (time)Pצ (fillchar)Pצ (scan)Pצ (load resident segment)ȡO /  צ-1 to Exit programצ Segment:  (ˡSegment not p-code (least)TצTry to decode anyway (y/n): ٳڡ e0ˡ;צ#Error in reading Segment Dictionary  צSegment Dictionary:     00 .//.f4rDb  : HPBz(^0 .tializing...תP//GF Source File: ץGF. צVצ.CONSOLEP/GFF Output File: ץGFV. 0"ˡ> Error opening source file. V"ˡ> Error opening output file.  File: .>0123456789ABCDEFרצ>p-Code Disassembler, [v. 1.0, author unknown, mod 5/8/85 DGW]צInitializing...תP//GF Source File: ץGF. צSLDO16 SIND0 צSIND1 SIND2 צSLDL3 SLDL4 צSLDL5 SLDL6 צSLDL7 nȡ8 צSDLC  F T0V /5 צSLDL16 צSLDO1 SLDO2 צSLDO3 SLDO4 צSLDO5 SLDO6 צSLDO7 SLDO8 צSLDO9 SLDO10 SLDO11 SLDO12 SLDO13 SLDO14 SLDO15  צNOP SLDL1 צSLDL2 SLDL3 צSLDL4 SLDL5 צSLDL6 SLDL7 צSLDL8 SLDL9 צSLDL10 צSLDL11 צSLDL12 צSLDL13 צSLDL14 צSLDL1QUI GEQI GRTI LLA צLDCI צLEQI צLESI צLDL NEQI STL צCXP CLP צCGP LPAצSTENOP צEFJ NFJ צBPT XITǰGEQDZצGRTDzLDAdzצLDC ǴLEQDǵLES ǶצLODǷNEQǸצSTRǹUJP ǺצLDP ǻSTP ǼצLDM ǽSTM ǾצLDB ǿSTB צIXPRBP צCBP ELDEǞצCSPǟLDCN ǠADJ ǡצFJP ǢINC ǣצIND ǤIXA ǥצLAO ǦLSAǧצLAEǨMOV ǩצLDO ǪSAS ǫצSRO ǬXJP ǭצRNP ǮCIP ǯצEQU| NJצFLT NjINN njצINT ǍLOR ǎצMODI ǏצMPI ǐMPR ǑצNGI ǒNGR ǓצLNOT ǔצSRS ǕSBI ǖצSBR ǗSGS ǘצSQI ǙSQR ǚצSTO ǛIXS ǜצUNI ǝ צ (  ) šLeXuXڪ ؚٚ *ǀABI ǁצABR ǂADI ǃצADR DŽLAND DžDIF džצDVI LJDVR LjצCHK ljFLO  תPצLinkedP Host SegmentתPצSegment ProcedurePצ Unit SegmentPySeparate SegmentתP`צUnlinked IntrinsicPELinked IntrinsicתP,צ Data SegmentPqZA*  +  צP+צ UndefinedPצP-Code (Most Sig. 1st)PP-Code (Least Sig. 1st)תPyPDP11תPk8080תP^צZ80PRצGA440PDצ6502P76800תP*צTI9900P k_TJ>3( צ Code Type is  -------------------  (+  Segment # + , צLength  , , Address  ,  צSystem Version =  +  .Vצ.CONSOLEP/GFF Output File: ץGFV. 0"ˡ> Error opening source file. V"ˡ> Error opening output file.  File: &'()*+,.&/5x1}24:)ʲH8*<;=rM"BoCT0YGHIJK>ϟvQӹZ0aVXzq-[= abcfa`1o+$*mG﬘Q3l{1v|}u<z{|?9~x+BYNofS JAMHƂǗoGGژ^\n oLhۢ﷢i,e *0 ROOTvY' 'SYSTEM.STARTUP Y*/ PMENU.EDIT Y**/ PASCAL.STARTS!Y/*/ INTERPSVe*/ SYSTEM.STAR.LIBa */ CATALYST+,z-9+x345679:;<==>?@BABCCDEF7ǁIOiLMNOPxPVSDUVX{Z[\YE^_ߗabcf`fhih@BlmnopqrtuvwxQ{|}(! ǎِ?T"!"##$$%%'()*++x{FiVy40`c5N;b)m줍'`\u:cta~9hyEzq?xy+ϑޏFCD sS)^O OBݙ,. TxV' OE`*G75@)6,$k%$~׾;0 >z3<-;n**"Hד"IO5\CCِۂE]B_|_ ?RXvB&ot%sd&jtSghIhgƬ5f}|a6pF]H;0ut.?9Q$Rl k-=%<즇8bUz==V{!1x{4(}6ǃNڂMaOD@ cYvGF܅F_]p@^c[bULTOdJN?udwmlo$P& 5xg}`Jdwva;b#(xN4u /"ƊD=.FxEƘL! 6͍{/WtR%ލP+)i#_r)$ۢ(m k%}"8V7+: ?r礱yk07bHNM0 QgrZ˙r^] V[dnZ_QKn s!!$%,Bn{8#;]oV1A#gvMj=t&m/r ui<-)@d!¬ƅFI+’[ DR: ^PgWbZ X[N "1b6 of/Ϫhh9X/=r3w|&5,;sO>X(+2whkbߍ[HD܇ kUQޕSY'!k/e Miz?9jI7aLH;<"p./7$>X>@*Y%)*7OVıTƈj^ h] bbv e$wtki%Hn%97k?"1(z(+|BH ʄGQnOӂj\=FUZZ`b1+W̚ v$$piNޥm<[J<;6a~ st&kvh^-k?|Hm/z2 >N\NЄi T/UwO=R-4Q_ؑRNχ g֕*K1n#is-/.g/0y12456789:;<=>?:@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,arts"áP "ÄɄmƩ)P"á)P"á*)P "Äצ쥐*á륐ªP,ץˡ3 ˄  Í á ܪP1091ׯ070/1Z/Zȡ$ 001/00Ǹ šǸ 0//00ō00ˡ0uT ) pascal.st" SYSTEM BUSYV PצP  ȄAOá .ݿ00P0Ǡ0PI-ÍÍ˄#g_` PSTART i0N3#55͉y8+::;?E9R4"II-JKEMN@;G->WӺ#ɘK\$ dbk) +gO>kWlp!{1pc!tuxy7{|F~}IxOT bSA@tޓB֚ѢR!v^U&'(M*+-֮/.s493685z78)mQN9Tk::sbDI Hϛ@\j̣˶*ACSP:.2#;X<\]Q,ig 2e{V`yj>x|2m#"pbC?S&&G(ک6xq~*MЀUFbBњJĘ ZܷF1Nu^IsY.#QYl@kpf9*1ڧCsIj'LbN)aۉ{Jve0 1K345 b%)[:pDv C `# $HԂLMNPQRTU|TVYY L N[YTq/%$"dYVx/;mklnoq2avuFwvk|{hy|VqWkAրC}JjCؑ@"T^|W{QKxe!&$%$&|e]f*+)e=G*?P{š=`#45z7HJ:|pAq⾘y'FXWPﮂ/b5M7OPVQ1uDŐW X\<]_haabccdfil'&n3qE qvw49{7s1{lIxub\Z vhTKv3U=]kҽs(mo p')g5-./0123w?07߳)v]&DuFDGAQ%MB 8HT*'=%VH۲]VxFp6/g7w$]3=}[#!a'?d# gڵ.*/|? .b4'$NBsTKڙ,L] ˁEDVٔU_"ChTRQMZZ+ky#\{+`8xe᪻#jj-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,ªPתPȡc)*)¯2륋Ʃ)PƩ)*á P.QPInstall צ disk in internal disk drive.ɡ צInstall צ disk in internal disk drive.#PRESS SPACE WHEN DISK IS INSTALLED. áצ%Pascal startup se+ 3) Program path: ĥ*)PĦׯNONE>š:?>+ ^ ..//P/צ (0 to exit)?]/P؏ع 1) Display name: ) 2) Prefix path: ĥ)PצצNONE>š:?>ڪP-!~-ׯV,V-y-YÍV-n-NÍVVˡVQ^۪Pˡ צStartup programs:././ȡp..š (ĥ.)P*á. צ) /..I/-/Í/Í˄ ../ /˄/ /Í/ áJ ܪP1091ׯ070/1Z/Zȡ$ 001/00Ǹ šǸ 0//00ō 00ˡ0sR تP( R2" SYSTEM BUSYJڪP0 PۦתP./  ///ȄA.Oá /0/YYPY0ǠYPbbbbbbbbbbbbbbbb_LNPEDIT 2}xvh  צInstall צ disk in internal disk drive.#PRESS SPACE WHEN DISK IS INSTALLED. áj )+Ics2x"/ehhhhHH  `2 ,+ 01`! .CATALYST0PInstall צ disk in internal disk drive.ɡ צInstall צ disk in internal disk drive.#PRESS SPACE WHEN DISK IS INSTALLED.up program (RETURN if none, 0 to QUIT to Catalyst main menu)?ááצ 䥆)׷)*)צ)*)Pצ.QƩ)*á楐륋Ʃ)Plector (version 1.0)P(ˡ"צStartup programs:ȡ|š (륋Ʃ)P*á צ) HWhich startȡ ٛaٛzȄ ٛٛ ( 8 ع)צ Display name? ~)"š)#)"i)צ Prefix path?!~) <*) Program path?!~*) e: צAdd entry to menuáInsert before which entryשˡ𩐔ġdƩ)Ʃ)P))P*)*)PȡH ':ƀ  "ǀ̀̀ƀʀ ƀ!'!Bad file input: please try again. '9') *֯ No character set loaded 'i*á *ȡ3ǀɡ Pascal Menu Editor PMENU.EDIT 123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0023'$56ɷ89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./00 ?J]Lim!>Z`0 : B  it: ĥPĦׯ!DEFAULT>š,>+ Prefix for simple exit?!~ צUpdate 'PASCAL.STARTS' fileצ pascal.startsȡRƩ))*) ywáܶsystem.startup.áצSelect prefix for simple exitצPrefix for exit: ĥPĦׯ!DEFAULT>š,>+ Prefix for simple exit?!~ צUpdate 'Pˡ ááצDelete entry from menuDelete which entryשˡ橐ȡdƩ)Ʃ)P))P*)*)P詐' file not updated. Exit anyway?Pġ򩐙 ަEdit entry in menuצEdit which entryˡצStartup program options:ȡצEdit which item (0 to exit)?or simple exitצ 5) Update 'PASCAL.STARTS' fileájEUpdate (option 5) required to record changes in 'PASCAL.STARTS' FILE.Which option (0 to exit)?éÄNצ0*'PASCAL.STARTS)P "ÄצOptions:צ 1) Add entry to menu 2) Edit entry in menu 3) Delete entry from memory! 4) Select prefix fartup menu editor (version 1.0)P(צ pascal.starts"áP "ÄɄƩ)PƩ)"š"Ʃ)#Ʃ)""á)P"á* á'צStartup program options:Is all this correct?JEdit which item (0 to exit)?ˡ áá ia إ)צ(Pascal stǀ; תP:SChange Character SetײEnter Character Set Pathname     á á޲"táS޲á0  "" & תP:bChange Keyboard LayoutײEnter Keyboard Layout Pathname  )    ع á޲   #ȡ4#ٛ#ٛز#ٛ#ɡ%ز#.ˍ#ءo9Type the new Device Name: 15 characters, the first a ".",צ-the second alphabetic, the rest alphanumeric. (##N     á#š) #š#ۢ צEdit Device NameצEnter new Device Name   #P#  <   : (  IN ACTIVE 6  NšN 8צEdit Comment FieldצEnter new Comment    #o Block, Read ۢ  צ, Write ( ۢ  צFormatter present; ۢ  צNon Removable kۢ  ۢ 5Char ۢ  , Read ۢ  , Write 'ۢ  ( Standalone Formatter F " $ w value as a hexadecimal number terminated by a RETURN (,$: 6< (   " $ ۢ ۢ ǀۢ @ۢ  ۢ   <  ( ۢ  2á)Only two digits allowed. ')  4צInvalid character:Type a hexadecimal number (ɡ ɡɡ ɡ ġɡ  צ0Use Cursor Keys to move to the desired location.AType the ne) צ  ARE   ; צquit N  %    %#6 $~ +    - %ɡ#أأأġD ġ( ɡD  צNOT  צRETURN to accept ; cancel 0 š؂)   vD  ءǕ   ءǖ  @    ŏO6š  ( ed  ESCAPE to quit ? for Help  'Cursor is at 00. New data value:  ?z ڣɡl    x צ - ȡ.قڣɡڢق á    šظš9צEdit Driver Configuration Block  צ?0 1 2 3 4 5 6 7 8 9 A B C D E F  ȡצ-- á  צCursor keys ARE allow "lKEYBOARDX޲;áA; , > צ Change Number of Disk III DrivesצEnter Number of Disk III Drives  )   ع   áG צexit to Parameters menu ڹ=ع '#    : D `tRh<h  "lKEYBOARDX޲;áA; , > צ Change Number of Disk III DrivesצEnter Number of Disk III Drives  )  ؓ#F0 צEdit Driver Statusצ"Is Driver to be Active or Inactive     áá           ö ÍA LצEdit Device TypeצEnter new Device Type  ۢ Żۢ ǀۢ ?Żۢ @ۢ  Żۢ   ۢ  Żۢ  ۢ  hFF >"ˡFFTFN áEF > 섡/ F >"ˡFFFFF@N @=" "ˡá áˡ á ń# Ȅ ꚹ~á^"Ä<7?+ > ˍ >  )ʂ($ʂ($Pd? šš > "ˡ "Lá"  ë   rp ,p "ˡq*  )á =ˡ땏  šá áK>"á83 ɻ  X\Hب&̂(ʂ( ʂ(ʂ(ʂ($ʂ(̂)ʂ)!&ʂ)š땫ĻD>ꓡ"á삫ûš > "ˡ˫   ɡĻ2꓄ > >"ˡ ꄓr>Lá > "áۂˡ 3ء #צ ۂ #ء >  >݂"ˡ ޕ݂ނɡ  >Ąɡ낫š ꓡ 삫@ >'@ => )#%0ë>>@@@| V  )šá4?š?̥PVU _VP><+>P<X=髁@@@˄@#@ˡ @@#>@@ O@ ˡ? @ ?>@ > ? @ ?>쓡 @ ?>@ > á@ > <@ >< [L&á'횩)ˡ8 >#> \ˡآآآ*<UU šC+P VV!á  ڣš    5($   = á8t xD.| X  @ | ^&b~^^ 8to be edited š    צexit to Edit menuצ( range: 00..FF ) !_¦Select a driver to be edited      ۸ ,áInvalid Driver Number ' 4 ˄ أ أ(  á Alpha , á Beta áצ Experimental  9_ צitem  field " value _exit to top Edit menuצSelect an item to be edited $ آ   Manufacturer ID " $ أ أ أá( Apple  Block Count آ آ  2" $ أ  أ  ( ( أ ) ( צn/a  צ Version ID " أ . أצEdit Device SubtypeEnter new Device Subtype   px צ Slot Number آ á( צn/a +# آ آ Ʉ آ  צ??  Unit Number " v  ꫀ𩀄򩀄"7ũ  @š& "ˡ鿩/ȡšš  @ ; ɡ'áצ-32768 ` 逫-ġ@00ń0ˡ ɡc ȡꫀZצUnknown run-time error(צValue range error(צNo proc in seg-table(Exit from uncalled procת(Stack overflowת(צInteger overflow(Divide by zeroת(צNIL pointer reference(צProgram interrupted by user( SYS:SYSTEM.TEXTJs*:}|/ Pascal X15 tSYS8yy6JJ>Bb^JJNR^^ bb"L^LtJ ^JECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, No debugger in systemתP:...+: Compilingbb"L^LLSYS:SYSTEM.CODEE[*]\JJRj___ERJ|d@1^L1 *SYSTEM.FILERSYS:SYSTEM.CODE>EXEC//@1^L(19^L9 SYS:SYSTEM.TEXTJs*:}|/ Pascal X15 tSYS8yy6JJ>Bb^JJNR^^ bb"L^LtJ ^JECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem, No user programתP4le=:...+: Compilingbb"L^LLSYS:SYSTEM.CODEE[*]\JJRj___ERJ|d@1^L1 *SYSTEM.FILERSYS:SYSTEM.CODE>EXEC//@1^L(19^L9C-E;̀̀آD'ʀˡEʀáʀá>??>D;HPVvd T B:P,"n#$$%8%R%<0$  P 0!!">"V!H,l :$ 0 > V<$Ez>Ct!-ǀ@? ? צP+z>{ yC  579;=?ACǀ$ á"ˡ"" ''D>zˡá>pq+u"ˡ צclosingAuB!dt -z>>"ȡ{ˡo!צError # . closing FILE or DEVICE opened by last program$>"z>u uu"˶u reading fromA+söusÄ+f,u迶u"ˡצ writing toA+sársá+rL*ˡ ؞!؟B!B BˡxBwBvB@šQȡ2 š:X fצError  exec fileFApp) rs* rs*q q>+{]\ ȡ*ńȄ4šáRתPńȄ ,ń.áš蕿:00áQP 0á0 é000+-Í-ë0^ 000á'5á 000 ] |Nš 3"#쾿 @ 9dá. 6ááš "1諀멀ȡ!뾿 9šš @ | á1á5  צSystem IO error(צ# (out of filename storage spaceת(illegal unit #ת(צillegal IO request(illegal directory specת(צvol went off-line(צfile lost in dir( bad file nameת(no room on volת(צ vol not found(צfile not found( dup dir entryת(file already openת( file not openת(wbad input formatת(^צwrong disk format(Dצdisk write protected(' }hO2qZBצ IO error: (R   צ(C) Apple Computer Inc. 1981 צ(C) U.C. Regents 1979 Based on U.C.S.D. Pascal II.1c ë0???JanFebMarAprMayJunJulAugSepOctNovDec?????????ר d't!22>  pq%sy!{P{ 1 %System re-initialized h(.$bl   צ(C) Apple Computer Inc. 1981 צ(C) U.C. Regents 1979 Based on U.C.S.D. Pascal II.1c ë0???JanFebMarAprMayJunJulAugSepOctNovDec????????? צ,|__________________________________________|44ȡ44 l Current date is  -- آأ% š  + __________________________________________ | *| צ,| Apple /// Pascal 1.0 |?"?[צ0Bצ0tצ0SYSTEM.WRK.TEXTײ[2 SYSTEM.WRK.CODEײB* , צCONSOLE:(#צSYSTERM:(>zܪPAƂg/0̂gƂg*ƂgQƂg A0"ˡ\٦׷T0̂gƂgPƂg:QƂg`Ƃg š/0 0 /A0؞"Ú/ۧ?PצPA$    H2צ*צ:צ?.תP צPGתPˡǀ?P:ײP)@ x$$$  wxvu -;.áʂ;ʂ;ʂ; ˻عcʂ;CONSOLEתiʂ;צSYSTERMXʂ;GRAPHICתGʂ;צPRINTER6ʂ;REMINת'ʂ;צREMOUTj[L A2%ʂ;xʂ;ضágʂ;š^?ʂ;צ*SYSTEM.STARTUP"ë11*SYSTEM.STARTUPצ#5:SYSTEM.EDITOR צ *SYSTEM.FILER #5:SYSTEM.LINKERת ̂;ʂ;ȡ+٤ ̂<ʂ<תʂ<ʂ< Ȅ٤ ̂; ʂ;ʂ; >ʂ;׷ړ ؞&"ڡؿʂ;áʂ;0 ʃ ʃ  ʃʃ̃ʃʃʃʃʃʃʃʃ  ʃ 48Ƃ+צ#5:SYSTEM.ASSMBLER צ#5:SYSTEM.COMPILER ܢʃ%ܢ% ʃ>ʃʃ+ >&?̃ʃʃʃʃ%̃ ʃʃʃʃʃ ʃʃ ʃ٢ š٢ ٢٢ 4$  ؗ(/  ؗ(Ƃ+ צ*SYSTEM.MISCINFO"á̃ܢʃʃܢʃܣʃצUnimplemented instruction(צFloating point error(uString overflowת(]Programmed HALTת(EProgrammed break-pointת(&|dI+oYC ád/ *R#,n voר d't!22>  pq%sy!{P{ 1 %System re-initialized h(.$bl !&ءdt >uˡpq- ? ? ȡoڢܤ ܤ˄R slot   is not from Apple III Compiler9>-uu"áps,>P % *!,,,צ:,*,PBš!צ/PBP) Running...ءillegal&-צError opening exechء PTצExecuteצ what fileצ? PGצPšš,,ȡپaġ پ ,,EXEC//ׯMqp- P   š, š!y*SYSTEM.WRK.CODE׷N"tB0*š5**צ.CODE:* * "á.צNested exec commands D+$á/+TPצ.TEXT+}}}+Ä+}+P +P"ˡ%>צ Can't open *צSYSTEM.WRK.CODEP+*~+:+ }+ƀ}ƀB+ƀ}+}ƀ0   áثle what text? +P+>+צ+,á+( T+P +"ˡ)+> Can't find +צ*SYSTEM.WRK.CODE[*]PTo what codefile? +P+>+צW+, + }+}( áצ Assemblingצ Compiling... á̀̀ʀW+̀ƀƀצ:ƀ[@ƀ/Aƀ2PƀP[á +} áצAssembleצCompi1Cáۤ&./0000ˡc0 DDPDת0&;2EEDE:E&E 2C ۤ2 00ÍCC1CáۤC11 Ä  ! +...vܡ  # Must L(ink firstƁ1ƀ:.Conflict between intrinsic and user segment(s)@ƀƀƀ 1v -"LۤCo file ́v́ʁ@ʁˡ צ not codeʁ1ʁHʁ ƁE> ƁEƁ5>ʁAáʁ 1> צ not code"ˡ Bad block #011Ɓ1 cݡ; Linkingse required intrinsic(s) not available: 1, 0?404ȡ<0|0,#0  111 á00Jd  ުP-vƁnPv>"ˡCۡ>"áצIllegal file nameNwwn"á 3w   wwxwxnצ*SYSTEM.LIBRARYPxn"á3x  ;36,No Library to get required intrinsic(s) from 3צ+The ʁʁ́   n$2$ $š$$צ.CODE $$ š$$ צ:š/:n@A$P.LIBTPZ3 > X ȡ۲"ڤܾ!2 ́́ʁʁʁ ʁ > "áń́ʁʁȡrƀʁ́bʁʁ ʁʁʁ Ä  ʁw ޢ ȡڤ ˡpݢڤ?Xܢ0ۤ ݢ`ڤáޣ!ݢ`ڤˡ  ޣ  ȡ6ݤˡ&ޢ`ݤۼޢݤ  ء r <צNew exec name:P.á>šF.á<,צ[á==P=צ[8]S=P-uu"á ,>9<<<<;67>%sצ Terminator=sצ, change it ? ٶ,áu-ٳ@@YyÍ)צNew terminator:s rqs* ت dō (ܓ(*(ܡ )*) *)* ܓ)ת) (!($IKPz(  Íܡ  , Ąܓ"á    (( )(á (((ܡ( **(( *Ä(*Ä**Ȅ*Ą*MȄ*)v*ȡO(ۤ +++ō++ɍ+ ō+ ȍ+ ( ́ ́ ʁ ʁ צ ʁ ʁ ˄ʁ @˄ʁ ˄3 ʁ ! ʁ Þ"Ä  = &)ʁ á ʁ   "ń,ʁ !  ʁ ޾6A3; "Y&(,. CtT^( 2 \ :Ht:Tb6L :0]P#%!?áW@Command: U(ser restart, I(nitialize, O(ptions, H(alt, M(ake execתP#%!$j쓡 Linking... vá% Can't Restart$צ Restarting...gaXOKpq7AX0ǀ     ˡצECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,? [A3/1.0]P#%!?áW@Command: U(ser restart, I(nitialize, O(ptions, H(alt, M(ake execתP#%!$jatus of Apple II disk routines #C) Change file name display formatצO(ptions: A, B, C, Q(uitP#%سQˡع ACQáp $`[!0System will re-boot to reallocate Graphics space׮Ǡȡ '   !צ$A) Change Graphics space allocationצ+B) Change st! 5Error: New options could not be saved on system disk.צ*Graphics space allocation has not changed.8(Other options have changed until reboot.$ƁƁ0  ?Ɓ*SYSTEM.MISCINFO""˄Ʉ9צ!Error: must insert system disk. P#$ááRƁá<" ""Ɓˡ ! A!BCD Currently you have option צGraphics Options: A, B, C, D, QP#%ٳٹ!ADt ZƁƄ------------------צ A) 0K bytes (No Graphics)B) 8K bytes׮C) 16K bytes׮D) 32K bytes׮ءt  Currently  K bytes reserved for Graphicsá (No Graphics)צresident8ؓ@ؓ! צSOSצApple II Pascal &Currently file names are displayed in & 6 צ format= ؓPצ%Option Bytes reserved for Graphicsצ%------ ---------PR"צChange this? Y)es, N)oٶ,@@ٳH vؓ! צ NOT ת ,Currently Apple II Pascal disk routines are ,0ܡ=" áܡ ܓצ $  ޓ(ݤ ߢܯߢ  d˯7 H ۣȡڤ  ۣ צۣۢ0H ܣġ ۤ ٤ ڨ ܢܣ*@ٕ۶š ڸ۸۶ š۸ ڸ:   ȡQ  ȡ   ȡ? ȡ  ġ |11áBš2@/áf3šoá+ھ.á ھ/á 2á3&á3á  áán2ڧ? á 0ȡ/ݾ!á ݾ /P޾ /P 5RR-ۂɄݓVá(۾'ۂ@n: צ/˄/ȡ0ƀƀP̀ʀȡ0ܾaġ 00ܾ 87CONSOLE1:7SYSTERM2:7GRAPHIC3:7PRINTER6:5REMIN7:6REMOUT8ת802Ȅ&0á݂0 . 0ȡ4 0.  á/٪P,0YتPš  ȡ޾ *:Í#Í*á ޾:ˍ צ:P?P#áL۾ ݏ۾0 .ޕ P/:Ä:P.áٳ ا?ǀǓ ا?ǀ:+!&ÍXÍc(ÍEÍ QáG'á@=+á3@á)Fá Gá Há >z? ؚ,+!$.YP>-$M l 0 nL T "&"ˡ.&"ˡ$  " áP$ނ š: -Ʉ  $ $ $šš$%&$۞$$ۂۂەߓf%%&"ˡ|ɡ& & "ˡN$ߡá4 á,á"$࣡ $ $šš&$۞$$ۂۂە R%%&"ˡ.&"ˡ$  " áP$ނ š: - ݓۤ ۤ Äݓ š ۤ  ɍX ޚ "ˡ8ˡޚ   dܓڢڢ   "ġ$ނ#˄ɡۤ  dáߢ  dá ߢ &ޣ˄ ߢ  ߢ ۤ ߢޣ"ߢ ޣ#ޢ ޢۤ ޢ á٢á( ת$&(0!    š ڪ 0ޢߢšáޢޣߢ  dޣ"ޢ#ޣ$)ޣߢ  dÍÍޢ  ܓۤ ۤ Äܓۤ  dÄÍߢۢڤ   ڪP44444444"ߚ44 4 4!4"d4$4% 4#44#4á74-4& 4&44&4T ڢڢ& ڢ&ڣڣڢ$ڢڣ"ڢÄڢá     á ۢڤ š sá ŶÄ)ڤ ܢɡ ڶá  á ġMáš6 ܂ۻݪ d ( ڣ"ڣ١ڢڣڢ#ڣ$ڣáڣ$ڣ#š ڢ#ڣ$ڣ%fڢ%ڢ١ڢ&ڣ$ڣ$ ڢ&ڣڣڢÄڣ%ڧ? š ǀڧ?ǀǀ Ǔš@4צ!á צ!P$5ئ00000תP  0ڂȡ۾0Ʉ< R621  áG4/á56:PP#PC/š:1צ:P5 ./Ad ?- +ˡI á+ݢˡڦתRáצ!צ,edbVRQPONMLKJIHFDCA>963?  hhhphhhno0 ȩhh  jj mȩLa`XMJ0-*('& ~?    L*?    hlhhk f?    hlhhkhL#"!6?  hhhkhjj njmj*lL=<40.-,% V?  hohhhtmnuvuwvwyjz*y{*z{  L'&$"<?  hohhhHH  jj ȑjȑ*ȑLedbROLJI |?  hhot|{mn  LGF=:43-,+*%"  Njj oqLCB1.-,*)&# ^?  hkhL  ?  hhhnho  hkhSjj pqȑLED<:520.-+*)$ f?  hnho  hkhLjȑ(!Hh0?H&h*0HH`?  hph h jj L+*(" B?  hh  jj mȑL54)&#!  L?  hhhhi` hhHj*H*HHL&SOS-PARAM-TABLE{@H?hhhhhhjWȑ 5ܻ56; ; ;  <  - 5=%=,hx? ?"? ? ?  hh%hh%HH`%ʎ%HH` hhL&ȑ`W CL& hʈL&fX?#XW?"XWš?#X?#XW?"X?"W?"?#VVVU, R2 ػ",تP-+#+,T$á  ܚ,"  P ٨ ب5 5߻5޻5ݻ0á!?#?"?#?"1?"00, ,٪PتPZ,PƀPZ-ƀ-ZƀU!UáVV?"ɡYV?"YB?#V,á?#VZ,,ZYYV?#VVY,W?"Wǐš ?"VUiV,XWɡ?#;8  ō> 8 0', &,ܪP/ۻ0/ٻ1 2-/33,\ 6۪Pá? ?"11ǐȡg. .ٻ..3P3-? 223.20 7 7 ;7c7 0Ʉ  廹> ō> 0 0,8? 19 c8 88á>0 ;8 8 ),*,ȡ ނ0ō>- >7(,ȡ09ō>0 ˡ c7 770Ʉ廹> ;٪P--,,á55תآ1آ 0 5 6633 ȡ 6363 dȡ 6 3 65 4/ á5  5 -5 ---525 ˡ 5. 5.2,,h  ػ, jáL۝?"ܓ ?#?#۾áܡ?#ڧ?#۝?"ڕ?"ە?",L dáˡL," ۝?"ܓ?#۾á ?#ܡ$?#RšR?#ئתPVd hL#"!6?    L*?    jbj L%$:?    jcj L%$:?  jhkhj L0? hhhh jj HkHL#6?l JBLf \D\H80*N h 6 & $  : Z   2  R(>9NGE); " "{Returns the current position in the file with reference number FID "{X$=24)3407);:350$A$=""530:ۻA$)INVBYE P=A$)-1P>N-1P<07);:340:DN$(P),1)<>"*"470\=12:"X,78C";"Install "+DN$(P),1+(DN$(P),1)="*"))+" disk in internal disk drive."E=24:"X,78C";"PRESSif none";:INV", 0 to QUIT to Catalyst main menu)?";31);:A$="":")?";31);:A$=""^5);:X$:6);2hX$>="0"X$<="9"A$)<2A$=A$+X$:X$;:350rX$=13)410P|(X$=8)X$="-"X$=127))A$<>""8)" "8);:A$=A$,1,A$)-1):350";PT$:DISKINS=0;=4:"Startup programs:"+@Z=0N-1:=1+40*(Z>14):=Z+6-15*(Z>14)7J1+(Z<9));Z+1") ";DN$(Z),1+(DN$(Z),1)="*")):,K=22:"Copyright 1982 Quark Engineering"OFATAL=0:ECODE10100T=24:=1:"Which startup program (RETURN ":N$(0)="BASIC.MENU.EDIT":PR$(0)=""),#1;DN$(0):#1;PR$(0):#1;N$(0):N=1:4-STPRG>0STPRG<=NP=STPRG-1:DISKINS450:470.START$=""310?/P=0N-1:PR$(P)=PR$(30)N$(P)=N$(30)DISKINS450:4400:P=30:DISKINS450:470 6=1:"X,78Cœ10000%FATAL=1:=PRE$:#1,"BASIC.HELLOS" ž#1260+N=-1:#1;DEFPRE$:DEFPRE$=""DEFPRE$= N=029/#1;DN$(N),PR$(N),N$(N):DN$(N)=DN$(N),34):N530 N>0301#N=0:#1,"BASIC.HELLOS":#1;PRE$@"DN$(0)="BASIC menu editorSTART$,1)="*"START$=START$,2):DISKINS=1oZ=1START$))p"0123456789",START$,Z,1))120$q:STPRG=START$):START$="":180xZ=START$,",")N$(30)=START$:Z1500PR$(30)=START$,1,Z-1):N$(30)=START$,Z+1)DN$(30)=N$(30)  BASIC Startup Selector& Copyright 1982 Quark Engineering(2 AUTHOR: Tim Gill<.APT$="BASIC Startup Selector (version 1.0)"BDN$(30),N$(30),PR$(30)F::ETIME=350:PRE$=::P"CATALYST.UTIL":INV=1dBNAME(@START$)2n/h8 *0 CATALYSTve ' 'HELLO  e */ REBOOT z|e */ BMENU.EDIT } e */ CATALYST.UTILe *0 BASIC.HELLOSe *0 CATALYST.EDIT Win the pair (BLK,BYT). Calls the SOS routine GET_MARK.}   PROCEDURE P_GETPATH(FID: BYTE; VAR PATH:STRING);  "{Obtains the pathname, as originally input, associated with the "{file with reference number FID. Errors are indicated by a PATH SPACE WHEN DISK IS INSTALLED.";:=1:7);A$:A$=" ":470A$<>27)7);:456 :310PR$(P)<>""=PR$(P):N$(P)="" œ500 N$(P)ECODE=:œ10000.INV=0:=PRE$:"CATALYST.UTIL":INV=1:10100*=1:=24:"X,78C";"SYSTEM BUSY";:=1 œ560!=DEFPRE$: &:: 0œ10000 :=PRE$'*** ERROR PROCESSING *** 'ECODE=$'ECODE=255200003t'*** AUXILIARY ERROR PROCESSING ENTRY POINT ***' 'E,E$9'EE$="BASIC ERROR "+Ü)+" IN LINE "+Û):;PRE$N4100 Z=0N-1,#1;DN$(P(Z)):#1;PR$(P(Z)):#1;N$(P(Z)):DIRTY=0:@ --- SUBTITLE ---!T=2:=1:"X,79C,A";T$,29)^4! --- SELECT PROGRAM ---M9!=1:N=4:29);:=14:"X,78C";"*** NO PROGRAMS IN MENU ***": œ3590 =Z$:PRE$=Z$:DIRTY=1 œ10000 FATAL=1:=A$:FATAL=0:ECODE=:œ10000FATAL=1:=A$:FATAL=0:10100" --- UPDATE BASIC.HELLOS FILE)T$="Update 'BASIC.HELLOS' file":8000 9500"BASIC.HELLOS"#1,"BASIC.HELLOS" #1)=P(I): N=N-1:DIRTY=1:3020+ --- SELECT PREFIX FOR SIMPLE EXIT ---, T$="Select prefix for simple exit":8000@ =20:"Prefix for exit: ";PRE$,62);:PRE$)>62:"+";: PRE$="":"DEFAULT":& P$="Prefix for simple exit?":9100 A$= #"+E) E-ECODE2965) " ";::"WARNING:";::" "E$;7) $ --- DELETE ENTRY FROM MENU ---% T$="Delete entry from menu":8000 MAX=N6 P$="Delete which entry (0 to exit)?":8500:Z U(P(Z-1))=0 Z=N3050 I=ZN-1:P(I-1"/.",Z$,1))Z$=PR$(P(P))+Z$/ --- CHECK SYNTAX AND EXISTANCE OF FILE --- Z$=""30): œ2955 1);:9500:4);:Z$,Z$ ECODE=:œ10000 30);:ECODE=33 ECODE=5ECODE=16 6 E,E$:EE=ECODE:E$="UNCLASSIFIED ERROR::PR$(P(P)),62);:PR$(P(P)))>62:"+";8);: s 31)w Z$=PR$(P(P)):2950x "/.",Z$,1))l| =10:" 3) Program path: ";:N$(P(P))="":"NONE";::N$(P(P)),61);:N$(P(P)))>61:"+";8);: } 31)< Z$=N$(P(P)):Z$<>""Z))-32)+Z$,Z+1), Z$,Z,1)=" "Z$=Z$,1,Z-1)+Z$,Z+1) ' I=2PR$(P(P))=Z$::N$(P(P))=Z$:T --- DISPLAY ITEM ---8^ =1:I=1=6:" 1) Display name: "DN$(P(P));31):h I=32940mr =8:" 2) Prefix path: ";:PR$(P(P))="":"NONE";N$(P(P)),1))I=3:2900 2050 --- ENTRY ITEM ---H P$="Display name?":I=2P$="Prefix path?":ۻI=3P$="Program path?"$ 9100:I=1DN$(P(P))=Z$,34): Z$=""2834 Z=Z$)1-1H Z$,Z)>"a"Z$,Z)<"z"Z$=Z$,1,Z-1)+Z$,MAX=N4P$="Edit which entry (0 to exit)?":8500:Z2=1:=4:"Startup program options:"29):P=Z-1I=13:2900:6P$="Edit which item (0 to exit)?":9000:Z2010 Z>37);:2050DIRTY=1:I=Z 2800 2900, I=2"/.","Y"1010Z$<>"N"7);:11606P$="Edit which item (0 to exit)?":9000:Z1010Z>37);:1300(I=Z 22800 <2900,FI=2"/.",N$(P(P)),1))I=3:2900 P1300  --- EDIT ENTRY IN MENU ---!T$="Edit entry in menu":8000 :"Startup program options:" ~2900:#P$="Is all this correct?":9100Z$=""1010Z=Z$)1-1HZ$,Z)>"a"Z$,Z)<"z"Z$=Z$,1,Z-1)+Z$,Z))-32)+Z$,Z+1),Z$,Z,1)=" "Z$=Z$,1,Z-1)+Z$,Z+1)#Z$=Z$,1):Z$=""Z$="8J 31,"PATH NOT FOUND"BJ 32,"VOLUME NOT FOUND"LJ 33,"DUPLICATE FILE"VJ 34,"DISK FULL"`J 35,"FILE LOCKED" ~J 0,""! N:"CONTROL C ABORT."7)::"N:"FATAL ERROR: ";E$;7):: 4,"END OF FILE" I 7,"OUT OF MEMORY"I 11,"BAD INVOKE"I 16,"FILE TYPE MISMATCH"I 21,"SOS CALL ERROR"I 24,"NOT SOS DISK"I 25,"I/O ERROR"J 27,"WRITE PROTECTED DISK"J 28,"DISK SWITCHED"$J 29,"BAD PATH".J 30,"FILE NOT FOUNDE=ECODE1'E-ECODE10210:ECODE=0:FATALINV20100A(::=24:=1::"ERROR:";::" "E$;7);31);15);:11000 (E=1ETIME::=1:"ERROR:";$(E=1ETIME::=1::"ERROR:";: (10250*=2711030 +11000 + +::=1 +310IԺ8540!>!=4:"Startup programs:"29)+H!Z=0N-1:=1+40*(Z>14):=Z+6-15*(Z>14)=R!1+(Z<9));Z+1") ";DN$(P(Z)),1+(DN$(P(Z)),1)="*")):\!9010:Z<=MAXf!7);:8540(# --- NUMERIC INPUT ---2#=24:=1:P$;31);:Z$=""<#5);:Z0$:6);7F#Z0$>="0"Z0$<="9"Z$)<2Z$=Z$+Z0$:Z0$;:9020%P#Z0$=13)Z$<>""Z=Z$):=1:TZ#(Z0$=8)Z0$="-"Z0$=127))Z$<>""8)" "8);:Z$=Z$,1,Z$)-1):9020d#Z0$=24)9010n#7);:9020# --- STRING INPUT ---#=24:=1:P$;'.WsLtv}~qyx]f|}uebdkjUPmeao`k`bmnh[PSs]_WwU+lXBHEEcECfsOCBKGOLZ?2%1;>=?;:7#:)#-.%$.#- /"7'o   )8yxhrQzspx|ut}ziakafbabochdhRrZTSTT^S_y\g\IL[CwKcG@eGDgBljnMK:;4=.1;;:(%*#,! # '&47>> # $ ' 9 Prxw{qM}[V}qYZ[y}wrAQ_`adeWjmemZy[VQVVe_wZݩX[vKCCBNE̸:vsNEp96;80C26=2 7==2<:<"+!)##! (*$/ $<!0, * )+,0PNyR}Ars{Gx~~tjfoPesbbJnajLdlflSYcdUQ|wreSZ`XH@MH@ceavD@BvE@JnjƳ0937 -ȵJ=9$$"'**&.0d꒻%;#'& + , /|vJxTtuVrJ~G\gz|u@AhdCEld@kimReiXwRTQQ]ZZ*XV\JXgFHcFOepB\LLoȰ30067.:3=>7<,/# *# ../,d0>p!16 2sxqRSv@qRWar}pzt|vyvsipmgaNacJilpVVu_P@@ZJzcK\Z]_BaIGMensNEhBklDOnIFͪ151:1:02" 2! 8?>? %5 7 1#2!. 5603*0:$"2345678)03?y{qC~ro}J[y\{irBoJhr}|Stke[HdHQ]uvjZy_RY|}HMkGHBDBknENKtByNf391:D? *>(9;9<76PУ&%  (  56%? 7723456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0112345679:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./01T FOUND"LJ 33,"DUPLICATE FILE"VJ 34,"DISK FULL"`J 35,"FILE LOCKED" ~J 0,"" N:"CONTROL C ABORT."7): N:"FATAL ERROR: ";E$;7): 11,"BAD INVOKE"I 16,"FILE TYPE MISMATCH"I 21,"SOS CALL ERROR"I 24,"NOT SOS DISK"I 25,"I/O ERROR"J 27,"WRITE PROTECTED DISK"J 28,"DISK SWITCHED"$J 29,"BAD PATH".J 30,"FILE NOT FOUND"8J 31,"PATH NOT FOUND"BJ 32,"VOLUME NOATAL20100A(::=24:=1::"ERROR:";::" "E$;7);31);15);:11000 (E=1ETIME::=1:"ERROR:";$(E=1ETIME::=1::"ERROR:";: (10250*=2711030 +11000 + +::=1 +100I 4,"END OF FILE" I 7,"OUT OF MEMORY"I&%=1:=24:"X,78C";"SYSTEM BUSY";:=1:'*** ERROR PROCESSING *** 'ECODE=$'ECODE=255200003t'*** AUXILIARY ERROR PROCESSING ENTRY POINT ***' 'E,E$9'EE$="BASIC ERROR "+Ü)+" IN LINE "+Û):E=ECODE*'E-ECODE10210:ECODE=0:F31);:Z$=""#5);:Z0$:6);4#Z0$>=" "Z0$<="~"<80Z$=Z$+Z0$:Z0$;:9120#Z0$=13)=1:T#(Z0$=8)Z0$="-"Z0$=127))Z$<>""8)" "8);:Z$=Z$,1,Z$)-1):9120#Z0$=24)9110#7);:9120% --- SYSTEM BUSY --- , 6 -. y`}trqz^pD[LG]~}~Cgc`ooGbjIchciejoRS[m$uwx_ϪY}FUKWSFyAAMefCCJ˹wC_KKFFŲ8I#;>46 %+*&-'# #();, :%/!10h! '179+!]L|qVzqyӌ@Zy@za}tFBeYrbelCRXVYtS]QP{HZ_oABCDNi@OBpO_KF90ö3 #>:+$$!! " #;.,&,+0)&: 0 r 8 +5 PCHAINSTU  !<2(?M>JbBBK>>APG:V98۶̵ʴ˳I89@L_bEZ+^cJ&T${]ʹy\5t{3x?blhqr )/g^gtzx v NHnm"iba%_^-;ܲ%Z*X;L(UTuS)15P0 N$̰˸!I;GFŰ|nT+_מ==EZGxͧڜ$.ƲcXIͯğ\#V%jɉ]߶)ib::#pe7,c(5f"nr'۴b6,{S/ϯq}+Ӈ^ T%\,WH5VKRLaetUL<=bC| vGIϢr~sa,c7bǷPUSt-h'Pw]:[iRxb-je84R.40*¶ˊ#5ȬR | z ßck%APs6C_nj)]:b|<=6?@7Ӏ:%WAlČ; AB<Ă"X K]x :74c:?21?z{ڿ/9{1q!g`e!(-^.5}3˂$ULPQ-S S[ ߉2Xp4dWmĒJHB@O N MLxkXSr6 |}||:xw[{Dgfjg,rq#iͽ(Dnk xAB”$3FGHIKL BO PQRSTUVWXIل[z]^ _`abcdefgj3klm19opqr*3cuv<#xyz{|+}~\S X XX ^   J!"#$%'(9*+u=./12#457E99{:;/=>@WBGRU Dž,CD.*kMd>繟HUH&;$!W{vw$:4t3hq!/ O27D:<5 pw>쯟>(|L _R`PkSF6@fձVBhxzp]Eic ư]"-9pS@X+K s$qm]k?,}PBnFGHINLMNi5QRS}w VWXq~JxuKv_`ãFO&egFCOjklGopqrVX_TvPy+})^ A > /T֔ r!"$% '(*+,>/<012345678,/PceSbeUedkbannmj[fkihfmp{suqrvu~}p}u|~OBFM@DOLyIINOE/WP1SPZQSP_`RX[:?7+ ᐲ* ( )7 ? $8)| 3vwuqutx}PpqYyZ|uy}{dggBdldAldJSVQhkfgiWrUuj\Pz][_TWr`dCbBKtBgEhgʺYKNJI>914>Ƚ<9',V2׾ ޯ#e:<= "b ( ( (PROCEDURE SetChain( Tytle: STRING); (PROCEDURE SetCVal ( Val: STRING); (PROCEDURE GetCVal ( VAR Val: STRING); # ({PASCAL 1.1 additions for application support} ( (FUNCTION set_prefix(new_prefix: STRING): BOOLEAN; (PROCEDURE get_prefix(!<2(?M>JbBBK>>APG:V98۶̵ʴ˳I89@L_bEZ+^cJ&T${]ʹy\5t{3x?blhqr )/g^gtzx v NHnm"iba%_^-;ܲ%Z*X;L(UTuS)15P0 N$̰˸!I;GFŰ|nT+_מ==EZGxͧڜ$.ƲcXIͯğ\#V%jɉ]߶)ib::#pe7,c(5f"nr'۴b6,{S/ϯq}+Ӈ^ T%\,WH5VKRLaetUL<=bC| vGIϢr~sa,c7bǷPUSt-h'Pw]:[iRxb-je84R.40*¶ˊ#5ȬR | z ßck%APs6C_nj)]``+P`T_`P>_?|,n F D ۮ   ڪPXPšEצ:š  >#צ*צ:á >š{-NVWf-N@ȡQ-Pצ:-á:ײPN? XP ??زP>پ/ˡ צ/P?8?_?P+T\]^צ:+á:+P+/+P+< 0ݪPܪP0š YY0PYǠYPF D ۮ   ڪPXPšEצ:š  >#צ*צ:á >š{-NVWf-NتPRš+R+PP4تPRšG+R+PGP4GRšزGRPزGPR0ȡپ á*š*۾١:/˄ /P /áVAR current_prefix: STRING); (PROCEDURE get_pathname(VAR pathname: STRING); ( # #IMPLEMENTATION E RARYtJJ|rXt{JJXt{X //d- ^ -ECommand: E(dit, R(un, F(ile, C(omp, L(ink, X(ecute, A(ssem,G