CP/M 2.2 DOUBLE-DDISKETTE^CPM FROMNORTH * STAR ---------SYSTEM--TRACKS-BIOS USER CPM CCP CPM BDOS --------DIR.SEC1DIR.SEC2DIR.SEC3DIR.SEC4--------CPM DATADATASEC1DATASEC2DATASEC3DATASEC4........ ZSID COMP WM COML SUBMIT COM HIST UTL PAS2  !"#$%&'()PAS2 *+,-./0123456789PAS2 R:;<=>?@ABCDPASCAL COMtEFGHIJKLMNOPQRSXSUB COMTSTAT COM)UVWXYZCOPY COM[\]^LINK COM@_`abcdefTRACE UTL ghPIP COM:ijklmnopASMBL COM|qrstuvwxyz{|}~MAIN SRCE!àCOPYRIGHT (C) 1977, DIGITAL RESEARCH ZSID VERS 1.4$1/ !~=W!xe ~#Xbxʇ {z~#o}o҃i.**"#":2222!=8Ãø *sy͏͟+-'#.@=90Oy) ,    ͌ >^! 6 # q! w‡Ø͌>ʘ# }2 :  A ͪBx¸{{: G*w#wx͡ ͟80* {#z+++ G>ÙV) y*W>ưG*! ž yG VO{xʃfBGͲ G>Ù x Ͳ>Ù   Â! Q V ͵'> >3*  &! E͟(ʹN[W@GVI@zWe '3>ͽOzy Â(Mx?*z:: OzäIjG>ÙzG'vV”zOx yʏ >(ʠOxà: Ox¯>*ä>>{ IO> VyHÂͪ͟A>2Ó'>"HL{X GƐ'@'OxƐ'@'ON#5 z80O,z8UO! N#Ny ,!}ä(C)3ͱ,USPS* |} !9":!"<<2* ͞ !~5 * ͡S ͉ͤW! !/ a #   # ʶʭ # 2@m R zI =C =: zzʶʭʕz Ÿ zO=! 3U ! 3! 3UW͒H! 3ü! 3\, ! 3\! zl z=1  3 !+ ͤLIB RELLIB REL EMAIN SRC= ## ' 1>>^ 0 8 a[^ !~-i6+!w yÏaÌ^ ! y͌ >ʠ(͇ ͇ >V a!  y͟͡O*w#"͌ . a  !g  !! 0͟2!b  F>!  ®Wc͡Oi W*##yOx€y Ê y AzÙKByxy͡Ù! {/O! .{/O9OV >G>ͽÙ>CÏ͟XY x GV6W>6xJ  pÙ! aO y! ‰ uwͻ'‚>!  Q(ʰ_zÕz Ͳ >Oz>ʤ>ä! ͌ >! EV ͽG>Ù_V% {>*W -{ZW >{ ͵@&! VhV c >rw> V >** {zҝ*~#" 2x:U<{͉2 5 !äͤAOHL(HL)CʹA ͵ ͵ !. ͤ!  ! O 3͍A,,A3͍! ́Á ! L ! ́z8O! 3~ ~ >v ! 3Uʹ,zʹzHږ 8O!n 3 C( )(͍)! 30> >z ͥ ,,ͥ ͉͉W_͕yO! 3 $% ,% !+ ͤO͉͒y !W {A !\ ͤ: ͒H)(IX+(IY+yO 3zʉ W! W3\,% ! 3! ͤAF,AF'! z> z ʽ ! ><3͈͐! 3 ͵ Z͉W{ ͇ z – z!  ! a # zB) zO!f 3>͈C~ GK ! 3z! E ! 3@ z¾ z! u ! 3w,ͱ́r! 3z ͥ # ͍ z¯ ͉2 ͉W͇ 5 z'!k # µ !3{͒z͒S?*!9"͡"͉*" *'/7?v"*2:DEFMV^goRET EI DI EXX HALTCCF SCF CPL DAA RRA RLA RRCARLCANOP !"#)*+4569FNV^fnpqrstuw~CP OR XOR AND IN OUT JR DJNZADD ADC SUB SBC AND XOR OR CP INC DEC LD RST AF POP PUSHJP CALLRET EX I,8!"9:] !÷1!į>#yh͐ !J!6-B5͐A]]_!Y^#V]8]03]]]]]!]]j]]ů2[\ͯ>2M!!""!]:J!͠=]g" ]g" =g"=]> 2]]g=!1g=-1g!WgG"d!=Wg=]b*d!}o_"f!*d!"h!#>:y:K!ʞw^#V##:ڲ …òw~#:ڲ}ž"d!:J!*h!w+:K!!L!~/www*d!}|*d!:e*  w#  *,?r# ,:J!]m!!Ow #w Eq!\ S:o@w#tG6#.ʏÃ6# ‘S6 w#ä!ex#y#*!}|"!:M!!]qg!=:J!]g!!|]"!!$!~=#~#V;z;:!w :!]!$!~e:!w#s#r R]!$!~ʛ:J!ʈ6Û~w#^#V v!ʷ=]g"!!l!~# :]?ʀ͍]>HXEͱ*!\ͯ€s#r#Ü]}w#:K!ʜ#Ü>#>2S!!"O!#P@g}]=O=]g"O!"T!2E!U # `͐ xG͐ …xÔ']͐ ]x/!*5]ʬ!:E]]͐ ]cwh=]gx|]}]#gA>Ag}|]E~!!!!pLs#r:[F_!~X![4Y\ͯX2[17>?y l!ͯ!n!"j!> _ͯ~y#Æ͜a_!m!~> ʰ5*j!~#"j! Ҽ0y7yͲò> y> y ͯ#:J! w>.ym ͐}m ]]!]!JXN~!:!~# IA_^!!L^#Vx}>ѷ>-y~y/y~y>=Ñ/y>'y¨~!!!!~[#wc#x ڹwù5!*ͱE!:ͱw *!" !6c#~O+"f!*!~~#:cwJ^#Vy6DzS_c~*!~c#^+*!~Gzx&ç@—xv&ʳx80&óx6ʳ4ʧ5¹>=y*!~*!x*!*!:J!& &&x*!~&ó&*!~A A,I RLD RRD IM 2IM 1RETIIM 0RETNNEG LDI CPI INI OUTILDD CPD IND OUTDLDIRCPIRINIROTIRLDDRCPDRINDROTDRSBC ADC RLC RRC RL RR SLA SRA SRL BIT RES SET LD IM NZZ NCC POPEP M B C D E H L (HL A BC DE HL SP IX IY AF (IX+(IY+(BC (DE (C (SP ??= xKàï÷ZhÐyg Æ}!"Q!*"!"!""!2V!2M!2#!2S!!" "d!"!"!!1!!++"!"O!>2]ggg{z|]}$2D!2E!gg"F!g"H!DM\!D!6xf"!=x=xYP!$!~ʲ#^#V:D!ʫ*!{«z«"!!~62 !ò#w6 }1!1!*!*!!V!~4#~#F#x~#s#r#w>ʿg===]g#wᯕo>g#'d w>#y!3^#V#0}o|gg Zx~y0ʅyGÑyyÑ‘G~Sz{ <w>'y{y>'y*!##V+^+N+y#w ~+yxÐ. w# &]:Wr_rrO {Bx!<i`"!Àrrw#Er]&Z&Z\GтWx!ڐ:M!̠>ULTͱ!!\~# ¡2|:] >!v͍͆<]&>!_\_*!& & *+&  !]w{]*#^#Vr+s+6]*"s#s#rT!J*!*"!!͆*!#w*!#w*+# SYMBOLS NEXT PC END =]g#w:K!ʹ^#V#ý~wh͐ .:m!>."͜ ʜw#=]g:K! ^+~y:J! >:y|}5 y>.y*f!}o|/+- ,) 0 ]^#V#͐*!Ny]*j!*l! Eʠ ʺ+º͐Ë ºHʳ͐#^#V"l!"j!~/o>g++u!.n@n^#V=n^'͜ ]'͜H']S_#B͐H@0 ])DM)) O #^Y*!^#V#͐^KZ))))o͐HB"!s#r#!]!4-ˆî+•*!Ý+«͐ Ø-͐y_xWØ͐!K!6W6͐!]!6# ,>2]!}m ͐}9&4&&#^xCZMEIABDHSPXY!"T!2S!"!+"!!91!!91!*!~: !2D!!@!~ʨ#^#V#~ ›!V!~6=G#^#V#~xú#"!!N#FO*Q!>7U:#!”!$!~Q#~#V*!QzQ~==2#!6w6:J!6 U<!͆*!U ”|=p U*! U:D!ʔ*H!MD*F!:E!7U!"O!O2#!>*y*!ҷ" *!"d! PASS !S!~*T!+"T!|w=2#!~! ~##Z: !*!!w2 !~C< EB ͍E *!F#!N!s!7^#V__eB B ? ? 2 B B uE ͍E ::^#V#k^#{*!^#Vuʡ>G E x°I 8_E *!kE e+~ʻû:N!?*!###E ̀E ̀>G ~_!< < "< {p? {5? B ? ͍>G ><7*O!|z !N!N*!!b z >#y> y×:S!!K!ʐ ڐ >û ʺ =_~/w/w{ʮ Ү ͍=ʺ YP× "!pCE" *!##F+N+~ B"!AI$I$I$ I$A$ I$@D! $"$ HDIDBHIBAI@AHHH"H@@D$$I ABI$I$HB@I$@$I$J $$IB@* I$$I"HI$$ @ $!$I!"@! $AI$$! "B $ "H@"! $ HD@DH"$@!$$ H  ! @AA@H@HBD@@BI@$ $HBD!B HI$$$"$ D$"HIHBI$I$DH@"i` COPYRIGHT (C) 1978 MICROPRO INTERNATIONAL CORPORATION MicroPro WORDMASTER release 1.07A serial # WM1856G2 >>*>>>=> > )PT OÒ%!"&̀:O*&2&*&͟"&͖:ON#*&% :͛%:ě%:O<=N#=XP1)>t1)t2L'!9"`'F##*0~#Ÿ~<ʲ+~#¯~dүҲ>2K':!F>wps#r#="9'*9'";'"='"?'"AxLHFQʳOʂEZA# ???*M'#$ù $#"O'h!6*O'""M'I"O''>';|T,Vʹ!""T'*T'I"R'"O'ʐC,D2KxLTPTʚ*X'!͟BG/>2^'I"O'"R'F5N;RGSAUQʫ_'AIZ<ʉMʉ!W Y:L''8;;h(ˆN~#Da{:\'G:^'x!"E'"G'!"^'-"&"O'D |*Z'A>ʞzz#ÑI"O'"R'P[ XL. T: KG GN *O'*T'*X'͹*3'A"X' # TURKEY *R' *O'c'D; > > & E >5 [ & 2b'"O'y ȷկ m *O'":K'š "O'O'*O' ì #~+:¬  ʬ @# .!   "D"O'^ 4INVALID FILE NAMELIB#    >   ~ #L.:*? пC  !5' !3'͑þ_*3'"5'!3'͕) C !5'h *?'ͅ!5'͂ ͹͍(^ ͍ h ͡ *?'? "?'͛† !3'*1'*C'|q  ͟4QBUF FULLe ;܅ $#!    $"!/o>g{!z!<33 @ BAI $@$B$@$$@!$D  I $I $$$$ BA"$ BHB$$ !$$B$! B! $$" " A! H BBBHBBHAHD!I I I$$! $@B $!B "I   H "DI!HI $ !A $@ ! !!HB!DHII @  ! $  B @A $!BI "@$" "$I$I! @ !D$BB$"I$  $!D$$I$I$$"A$$I  @I I$ @"H @ @@BHABIA $ @@ !/ a #   # ʶʭ # 2@m R zI =C =: zzʶʭʕz Ÿ zO=! 3U'& 2[2h2k2}*}&|g+"C':ENOT ENOUGH MEM|<<20'|d!"&'n)"('>2,'z2-'!]~+ —NO FILE NAME~R w& ~ʰR w:\ʼ>2'~&!;  :'&FILE EXISTS ON DESTINATION DSK\>2[!2'# NEW FILE &&( !C MùWMBACKUP$$$h !\~2l:&wh&( *`'Q!'~\!Sm &!em ͗¹ & !lS# ABORT (Y/N)? 0"LY͗c*`'!#h!&~5!l(6"M'h>*$0""M'~:k( ʍG#""T'"O'# QX?'!94STACK OVFL͠ Ç͠ >"?'A"='͛Í:\'/!2\'"X'͇(T*X'Q"X'>N5!2\'2'"X'~T!͂ *?'һͻ>}$$*='>{ܭ͟$#þ*X'*\'(*&+Q͖"\'"X'͵:\'!?'!;'!́!+|*X'|$+"X'*X':'#͵ J͖ J Jͨ _^# ## 'p7p*O'I"O'ȷp  pa*R'~   :b'C># :X'ͬ='͛ Ҭ  >$! 0 $ "='$ I :& ͹ } :& C N N :& C k  $*='+ ڕ ~ ˆ #*='þ ¬ > ͬ > $U ͕w# *%F  +"% /> g%/*;'͟*='{*='*='+ ~ 33!='c'O, !='͍͒ h ? 3 ͕w# C s#r+*='*?'͟!='!='x͕zL͞k 4MEM FULLV ͽ ͇Җ :\'K7 ͇Ҩ à ͽ ͮ :\' !?'$ *?'Q !;'$ *='9 y ͮͽ :c' G:\'x *='< "=' *?'J "?' 6 GyOxG*=':c'g}o|g:c'o|gw  v #^ +ͫ#^ Q #͖w  #ʙ ʈ ͫʈ ѷ} *X':\' *?'ҽ #DM!*A'ͽ *='| gDM!*;'ͫ L>͂*X'S ͮ "X'*X'!\'z5~/͕}K zK!;'*='N#͔v z9#2'͵\!"'"X'"V':\'!*')>M>  Êī# „„7>  á+ī ››7>~>"7)"LA?[*;'͟*A'#͟*='#&:2&2&% % %| +2_':&!&8>w!%!&5Gu6ʹ2&u!&~6d!&6k6r6@I!&~6ʨ|ڠ ʠ ʠ–>~ ҝ>^â> g%N#:&H :!J ͕Em,?*:T *vE |`FH!&~4*& tuL  V X*tnELL"T+VX "gV |ʬ2&*&!"&*V':&.>2&:&<ð!&!& ʫ %*& !$ͬ W|y yG:&xs z Ã:&!&V"&*&"&*='++=—O:&| $͢ tn > ͬ > ì !&~6!&͚$L:&]+:& $:&!&54!&!&~ |%:I':>P>(2>> 22&>22J'7WM HLP%!2&! &¢>2&&¢4WM.HLP NOT FOUND ON DEFAULT OR A:&!'ͩ &!'͏!'~#$=ºâʹ &f 4FILE NOT FOUND#&!'ͩ ͏O') (&f !?'ͼ͕|*V' ͟+^&!C{(t*V'͇3{&2! *V'#(#:\'M:\'7^^;͑;ԑ:\';'?'*/'`i͟ !_'4F!.'=O:-'=G *&')$$=O4MEM SHORTAGE, TRY CLEARING QBUFI͕ͽ)JzJ3@3T!;'͕y&/! *E'*='|ß*G'*?'͟='͟!;'*&* '͟ҷ" '!?'|*"'͟""'*$'͟"$'*&*~|`i)\͕ͅ͏ ++s#r#s#r##͕ͅ##^#V.r+s+r+s!3'͟܆!D'͟Ԇ!3'#͟+sͼͬb!A'͟++++vPUTHOLE ERR!1' ͬҝ####B'͟!7'͏s#r+ ##s#r++͑#r+s.+r+s!?'͑͟ ;'(*?'͟?'4PUTCUR ERR`+6d!&~6W!&~Tw2&t:&*&"&X:&¤*&>{ܭ]Uʙ “$"&>2&:&9*& n]U !$N#ü$:+:&9]U*&͟]U!$*&$:&!&5!&5]U> $ "&!"&!&~#6> $N#*% ʄ G > !J ~G@ @0 0 !"&22X*&!"&o*V'G!&:&.W!"&n"&b*&q!"&:&*&+t*&"&:&%:&`:&=u>(%Êi2&*& :&!&W*&ͣ$:&!&ڽl$ $*&"&Y:&!&/2& V HK "]K iu"Žu"òͲ ڛ"u ʦ Ûuڬx2&Ϳ~xu u"?'͛  6 (":&ʀ !&6*&2&:&=<څ!"&"&*&"&z2&*&"&*V'*='|$"E'͌*&"&͞"&͙"&:&"&n I͚$Ï  !&4:=Ҟ+~#͚$Þl$I ͚$+ !&4 *='ͅx~# =2&:&<{ܗ$V͚$ :&WxV~# P!&4:=2+~#͚$2|*&l$*&,&"&7͕|33nx•͙ N#ͣ~ #*?'{͕yOxG;+ô:I'N#"#:I':!J':I'%!%" *;'s*&* '͟&+5!8/!* '#" '";'!"E'!C'I*A' U~:-'GO ~z o*A'ͪ–:&W< zÛ̓ҥ*"'͟ҽ\ ͕ͪ!͟*(')!C' \!C'x=ͪsy\ͪs!C'*A'vԏk2&"A' _#&7İ [7ĩ ~wʣ#‘7> >:[!&7:\':&:&7^!;'*;'#&Ͱ ";' *('͕͟ͅ!SV͟  %~# !!V͟Aq  J+~ FFBAKx<4COPY ERRo>gO>Gg|DMx++^#V#~#fo++ÕGz¨{x͟ڶ!|7͟ʱڱ|7N#$#$c!#͕ |<^!s#r7>G!"͕}O)|! ʠ!!!~ 6w< !x7ʩ!: ! q#~w\'"#+ʹ!-!>ù!+"Z'"##"+)""~)" "#bk))"0_"!"Z'"X'4NUMBER TOO LARGE0?:!&~w!l(Oy";ܾ>"$ " "!>"m"t""$~"ƒ">$”""ù ¹""G͹ x"ʙ""G"͹ è""$þʳw# y <+~ "> $ 2k(6x$2&~"#" %>$ %>~l$%# >>*% )%!%[% H%#~<5%+6> g%4:&7%[% [% [%>^g%@"% g%͛%t%!& ʆ% „%64+4:=5+42&Þ%2&O> #ɩ%%% BSIM $$$BSIM PASWMBACKUP$$$WM  copyright(c) 1977, digital research $Error On Line $SUBNo 'SUB' File Present$Disk Write Error$Command Buffer Overflow$Command Too Long$Parameter Error$Invalid Control Character$Directory Full$Cannot Close, Read/Only?$!9"!͇͊!p+q* ͊!p+q*͍2!p+q*͍2!p+q*͊!p+q*͍!p+q*͍!p+q*͍2!s+p+q+p+q:=2ʦ** w*#"*#"!p+q(+*DM*p*& 6:ep\:=-!6]:ͧz2~e:~2O! 6*~& 6$>!~_z*~& w!~5Bx:yͧ*v+"vv ~_{ozg001 $$$$ SUB6ͭ:}"!}5́ͭ́3*yM"h:}^a a2}O>Vͧ^:}>*z& ~ !z4í!{q*v#"v͙dͧ*vv :{w:x<2xO>}|ͧ4!y~=W!x# ~#bxE {8~#o}oA'.`28!Ip+q*HT!J6J T ` T!p+q*T> >/Ҥ×!p+q*DM͛:̀ ̀:2:!!K:*&L Ǹ!4!K6 ͐uëYALPSID'TCELLOC$LAITINI!%cCOPYRIGHT (C) 1977 DIGITAL RESEARCH {{ { {zb{b{*9 {_zW}l&))o> \> \\ß*"!" ͟#͟Prںºx"x#"̀ں͇"1!6# y ##~$##*%~@#6#~<7#!%"%N#ʹ#͜#A##ʕ#*%~ƒ#ʹ#Ĝ#O#w#~!$>͛%2&*%~ʹ#͛%²#ʹ#͛%>#2&>#!*J y:&#N###4INTERRUPTEDN#!&~6!%"%"%dw# $ > 0$e$0$$?$ b$:& b$N#:9b$> e$b$N#T$l$$ G:&Ox ƒ$yO/ Ҏ$ʎ$ : x͚$!& ڷ$4:ʯ$$6+4Û$ʤ$ $ $ $4ä$+4N#6~wä$> $> $ͧ!t6>!t%\= >!t6:t<2t=O! ~2u b:<2O>9b!60+~9b!60+4:uat:u_2u:uMʉSͧ!v6!"v!|6:|Ҁ!x6 2}:} Hk:} h:}$6 2}$*}M3:}02}O> ͧ3!z6ͭ:}"!}5́ͭ́3*yM"h:}^a a2}O>Vͧ^:}>*z& ~ !z4í!{q*v#"v͙dͧ*vv :{w:x<2xO>}|ͧ͟!h͟$h͟'h*̀`*̀`*1̀I ?! ^#Vr+sz`>>!@^#V#̀{ k͇#"/<͟h2**̀`i~#!~6͟*1Þ6͔h*1^#V#Þ͔{> \*/̀>*\ ERROR - FORM IS X,Y TYPE HISTOGRAM BOUNDS HISTOGRAM: ADDR RELATIVE FREQUENCY, LARGEST VALUE = .INITIAL = .COLLECT = .DISPLAY = .... !6 ` !6 ` !6 ` *&T` !6 ` !6 ` !60 ` *&T` !6* ` !6* ` !6* ` *& @AA I$DBD $I$BHA"DH!""@>*\ ERROR - FORM IS X,Y TYPE HISTOGRAM BOUNDS HISTOGRAM: ADDR RELATIVE FREQUENCY, LARGEST VALUE = .INITIAL = .COLLECT = .DISPLAY = .... !6 ` !6 ` !6 ` *&T` !6 ` !6 ` !60 ` *&*+jCopyright 1980 by JEFF MOSKOWM+!\378\!(:D![Unable to chai*+w!* w##w!( F##N> >5D^#V! !!!gAttempted divide by zerToo many errorProgram too compleFloating point overflow/underflo -- statement A B C D E H L M IX IY S PUSH LXI MVI MOV POP CALL STMT MIDL DSUB MEMB NEQL SPHL ILOD LESS DADDPʣ6gn>:|һgn#u gogo!! !e3!!9E !D!9!!gn&Ͳ gogo!Ͳ gogo!Ͳ6 gogo!!nf !!9!6gn+W^͠K gogo!gn!͏!W^S3 4 gogo!Ͳgn#u! RORRE ^ :ʣ6Eڗgn#ugn}|­͵ gn#unf W_Rgn+uw6+gnW^͠(gn!͏W^{ zgn#go!!gne3!gne3! !9!Y Ͳ! TES  ʣgnW^R( w6w8 ͅҪ 8 W_go! Q38 Y gn>P| !͂6P8 W_go!gn!͏/gn#uê 8 ͅ+ 8 W_go!/gn!͏6 A   gogo!!!;e3 6 gn+W^͠  gogo!gn!͏!W^S3 4  gogo!Ͳnf#tunf ڻW_#9  $ gn+uq !9  gn ͢!U͏#9  ߧi gn#uq 66ñ ݾڀ www6gn}|› V Ê gn}| gn!͏W^!͏W^{z 6V gn}| V  {Ez6V gn}|gn}|V gn}|V gn}{|*6Hgn}|EX !͂ý HX gn}]X 6 ê¨X gn}$|dX  sX  {+z `|ү gn}{|ү gnu!ʣ6!PW^͠ gn!͏W^s( 4 !V   w6gn}|& X  gnugnugn!ê sV gn}|? gn}|? 6gn!͇W^!͏W^sgn#ugn!͏W^gnRʦ gn} |b 66&wݾt gnW^ͪt gnW^R#wW^u!9  gn ͢!Uͯ gogo!!gne3!!9!H gn! Ͳgn}}|YX gn}|qgn}|ʀgn}}|ʀX dgn}}|‘X ý X gn}|dX ý êX gn}6X 6X X gn}X gn}|V 6 %V gnW^R$6 gnu3cgn} |gn}|B3X gn}]6X om6 X oX gn}ŠX 6ÜšX 6 ÜX gn}|´X 6 X rE? gn}|gn}|l6!W^͠jgn!U͏W^!͏W^sgn!U͏W^gnRcgn!U͏6 4!ʣnf !X͏W^s! ʣ6gn}|ʲwG3c!ʣgnjj!͏V+^rs!ʣgnjj##!͏V+^rs!ʣgn#ʹ6!͂Àgn#jj!͏͸r+sgn#jj##!͏r+sgn#u!ʣgn+u!ʣ͸rs͸nf͠!͂gnjj!͏͸r+s!ʣn f +f͢!͏W^{z*nf#tunf͸ʹD͸rs͜rsnf#V+^ͪҟnf͢!͏nf+͢!͏5F# 5WT  gnugnuwww6nf͢!͏ nftu! ʣgn#ugn+ugn&30|Ұwgn!ênf#rrsnf#rrsnfr!R(nf#rsnf###rsnfrsnfr!Rsnf#rsnf###rsnfrsn f ###r s nf ###r snf^VRnf^VRnfnfxn f nf xn f /nf /R ! ʣn f nf x)!͂! ʣnf !xO!͂! ʣn f nf x &3 s &3 sgn}|«gn}|gn}|gn}|!͂! ʣgnugnu!ʣ gogo!!! e3!gne3!!! e3! ʣ gogo!!! e3!gne3!Ͳ! ʣgn e3 gogo!!gne3!4 Ͳ! ʣ3 gogo!!gn e3!4!n e3!4!Ͳݾ#gn&͈ ! ,)ʣgn e3 &3~!03C G)6f n 6f n wA/ݾA/gn}|-ݾA/f n 6gn͎(sݾ:.!)nf}/o|/g#a)! ͈  3C 3C 6gn}|-nfgo%(.nf^VR#f n r+sf n3*!nf$!>3C G)A/(gnͣ*0/!͈ w! ʣwnf r{ ( (/gn}}/6'/Š/6(/ —/6 / ¤/6!/±/6$/¾/6"//6#/60gn}/6 0/6006 0 060 060(060!nf xK0!nf xһ0gn}]06ø0j06ø0w06ø0„06-ø0gn}—06÷0¤06÷0±06 ÷060gn}|06 06ݾ0!͂! ʣfn 1ݾ N^Vfn r+s3C3!N^VRfn r+s3z3nfW_Rw3!N^Vwfn r+s3wr66gn}|¦3  !?}|3gn}|3fn gn}|T6gn}|4nf}/o|/g#tunftu6gn}4wnf!R446t4!RD46t4!RT46t4!Rd46t4!Rt46t4gn}|46{z—4ͳ(3C 6++gnW^͠Ҿ4!͈ 4¦4T6.5nf՝Ϳ+563nfW_ʹ4626+nf747gn}| 3͗!͢!͏͵ gn}|>3c͵ $>3c͹}gn}|;>!2͂nf^Vr+snf++^Vr+sݾm>nf 6 ݾ>nf 63cgn}|=w!ʣ͵ ͒?wT  gn&3?nf͢!͏W^{z>!e͂>6{(A6;AA;Anf:Agn}| NFݾ R3͗r+s͵ gn}|dF3c+++ͩInfr!RF!l͂gn>NFݾ +++(=nfnfgn}|H3c3cf n f 3nf 9F3cgn}|ʷHnf >NFݾ ^VʹңInf >NFݾ tu! ʣwwgn}(Ngn}|I͵ gn}J͵  3c Ef nr+s!X͏6nfrs!rgn}|J͵ rsnf###!r Enf#nfnf!X͏6  *J 3c3 ͩInf###nfNK͵ www &3go9F 3f ngne3S3n$f%^"V#!ݾ,;!͈ !*ʣe&f nr+se&f n++r+sf n wf n w! ʣnf/gn}|°;nfR¦;@3C í;!͈ "<ݾ "<ݾ; 3*ݾ;!͈ ;G)6"!ʣgn}|@W=gn}|$@=gn}"|2@͛>͑PrsUgn}|¡@!gne3! !e3! !e3!!9E !nf6-nf p%!gnnf0*nftuw3< 3͆! ʣwnfrw6+͸V+^͠pC !go!nf͢!͏! #94# 4qCC6gn!E͏W^{.zʕCgn#uvCPYT.!9!Cgne3A!96  w6+V+^͠-D !go!nfr! e3 4# 4.DC!!9!!9RڶEUw6 ͸V+^͠Enf͢!͏ n f W^{(E n f++V+^r!ʹE n fI3V+^͌&u>NFݾ  ! ]W^͠ҷG>NFݾ gn)!>NFݾ RV+^!̈́!͏nf++^Vr+snf^V r+snf ^Vt u4)Ggn}|AFgn}|[I͵ ͒G͵ gn}|¡H! ]#! o! ])!>NFݾ R3͗r+s͵ ! ])!>NFݾ RV+^!̈́!͏nf++^Vr+snf^V r+snf nf/t u͵ äHnftu3gn}|H͵ gn}|PIgn}|PIgn}|PIgn} |PIgn}|H͵ r+s!X͏6!X͏W^s6 gnW^͠ҺKgn)gn)!͇V+^gn)!͇V+^!̈́!͏V+^rsnfr!R³Knf#!R³Knf#4/Kgn#)nfgn##)rNWL͵  (=!X͏6!X͏^Vs!nfnfW_Ϳ:LnfʹAL!͂f nr+s!rNwgn}L͵ 3 Enfr!RLnf#goͿڹLnf###!ʹL!͂6 M L͵ 3 ͩI6MM͵ gn}|½Mgn#ugn+ugn}|-Mgn++&3Mgn}|`M3͗!̈́!͏r+sww͵ úMnf̈́!͏nf W^{z®Mnf++V+^rsnf++r+s͵ ùM ͩIM ͩI6gn}|M! ͂N!X͏W^sf nr+snf!rÛOHO!X͏6 f nr+sgopNnfiNH3nf͌&e&p%!r͵ ͒O3͗!̈́!͏N gogo!!!9!3F!!9M !!"e3"ͲnfW^r+s}|Pgn}|Q3c͵ &Q3c ͩInftunf̈́!͏nf W^{zQnfV+^!RQnfҨQnf^Vr+snf^VtuQnf^Vr+snf^Vtunf++^Vr+snf#tunf͸͠=Q3cgn}|Pnftunf̈́!͏nf W^{znRnf++V+^nRnfnfV+^nfr+snf#tunf͸͠Rnf^Vtu!L RTXE L DTXE ʣw6wgn}|T͵ 6 gn}$| `ݾ*`ݾ8`D3nf͌&͵ i`ݾJ`ݾ[`A3nf͌&i`03nf͌&_͵ nfp%ݾ҆`!+͈ ͮ\gn}|š`͵ É`gn} |ʳ`03nf͌&nfp%e&rs_ݾ`!+͈ nfp% 3f͵ e&rsnfp%  I~!9 p;3gne3nf͌&ݾPanfp%ͮ\*3C 03nf͌&nfp%f͵ nfp%<#3*3C   I~!9 p;gne3nf͌&ݾanfp%nf$fgn##u͵ ͵  G323c ͹}nfnf ,!9 !9 ́7e&rse&rsݾҖbnfRŒb!2͈ !͈ äb G3*686gn}|b͵ 696b!3G) ͹} ,ݾbnfa)nfnu6 nf#rW^͠egn)^V!͢!͏nf++V+^rsnfV+^rsnf T gne3͗!͢!͏nf++^Vr+snf^VnfRr+sݾenf W^senf W^s4egn}|ld3ͮ\6 gnW^͠,f͆4fgn#u gnW^͠\f!͈ 4Dfgnuff͵ !͂fkfkfkfj]s^kfkfkfkfhfhfkfkfakfkf~]]kfkfkfkfkfkfkfkfkfkfkfuakfkfkfkfkfhfkf`bdG)gn))##!͏^Vr+s!ʣ+++32n͈ Ói ,ݾliݾ+i!)!͈ 9i+++3*!!$!!3͈ ݾ[i! ii!nf$!Ói!9 !9 ́7!ʣ>NFݾ ݾj>NFݾ gn}|j!>NFݾ gn$!j! !͈ ! 2͈ >NFݾ w!ʣ6nftunftunf#rs6wwgn}|{G)gn!zê6gn}|0mG)gn+u͵  ͹}nftu &3 snfW_Rjw G3*gn}|k$3fnfm!n͂nfa)gn͈ Ìj!gnR$!wzwwgn}|urw͵ G) ͹}ݾ҇mݾ҇mݾڇm!͂ݾڙmݾҠmݾڠm͈ G)nftu &3 snfW_Rmw6 gn}n6 G3*G)nftunf#rsnf/!wunf/!ڻu!nfxin!a)nftuongoa)3C !͈ G)gn}|n͵  ͹} ,ݾڴnnfa)!nfngoa)͈ 6wG)gn}|n!y͂pn6p!1qݾ&q!!$!!͈ !͈ 1q!!$!!͈ nf##tu ,ݾqnfW_Rqgn}|q͵  ͹}nf!xڗq!j͂ ,ݾڲqnfa){zq3C ! .$!nf tuݾqnfa)ݾ/rnf/!R(rS3S3 ͈ ! 2͈ /r͈ gn}|TrݾTrnfgo%(!͈ nf##nf/tuwOm!nf$!z͵  ͹}!~͂z͵  ͹} 3*nfr!Rr!t͂gn}|r!nf#/$!wzwf{zc3C 3C nfp%nfRAc! Oc! !3͈ ! 3C !͈ gne33go$!63nf͌&3ͮ\*3C !͈ 3C gne33͈ gn}9|c! !8͈ nfR"d!2͈ B3nf͌&gne33͈ nf#=3͌&e&p%03nf͌&7dA3nf͌&!͈ nfp%!͈ e&p%!͈ gn++ufwgnu͵ 6͵  G32nf^Vtunftuݾڻd 3*ݾdgn#uww͈ G)6nfr!Rd!͂gn#fr!Rg!͂3c nfcAݾGgݾGg͈ G) ͹}ݾҮg ,nf!xқgݾڋg!.nf$!Ôg.͈ w6666w6nfnfnfr!R znfRyݾyݾҲygn}yïyŸy8͈ ïygn$!ynfW^!̈́)tuw6wygn}|y6nfunfR'zݾ$zS3S3 ͈ ! 2͈ >zݾ7znfa)͈ ݾjznfr!Rqznfr!Rqz!͂gn#ugn+ugn}|ʗzgn}|v͙izrvvvvvvvvvvvvvvvrrititrrrrjitrImugn}|zgn}|z!~͂gn}|{0znf/rsnfr!Rx͙i &3 !R¥x ,ݾtx8͈ Âxnfa)͈ 6! &nfR$!xݾxgn}|xnfnf%(x 3*! &nf+$!yݾynfRy  ͹}z3c[{gn}({[{(?{!go$![{R{!go$![{!~͂ݾ~{3nf͌&!nf+$!!ʣgn}|ʟ{gn͈ ڭ{gn͈ nftunf#rsgn}|N|nfW^!ڻ͢#rsnf0|!nf/{/_z/W$!! ͈  3C 3jG)nf!xK|6e|3jnf####rsf n 6f n 6gn}( –|!͂||͵ nfr!Rʹ|!͂nf#rsf n 6f n wnff nr+s!nfx P}f n  6 2;ww! LG/s͵ f n , ! LcAgn} |•66f n  ڎ! Na)f n  6͈   fnfr!Rݾ!͂!nfxgn}|!9 p;!9 P}6nf#rsgn} |nfrrsnfr{ (! Lnf#nfr! Rwnf#r{ ( (³nf#rsုnf#snf#s%gngn0*G)!n sgnf n sݾ:nf! Lͻ%f n 6ݾ`nf! Nͻ%f n 6! ʣwgn}|‚͵ Ôgn}|”͵ 6! Ltue&rswwf n  WݾҮ! ?}|f n ,f n  ͈ îf n  +! N}/o|/g#f n  r+sî!X͏6!X͏! N#r!ڻs!X͏! N##rs! N###f n  r+s!rgn}|8!9f n  p;gne3! L͌&ݾnfp%e&rsw͵f n  6f n 6Ïgnf n sݾCnf! Lͻ%ݾVf n 0NFݾ gn}|Vnf V+^nf V+^ͱ)Ӓnf [!)nf W^ͣ*0NFݾ unf W^͎(>NFݾ s>NFݾ gn&nf V+^!>NFݾ gn&nf V+^!3C nf V+^ͱ)>NFݾ ݾR!͈ G)wӒ!)nf V+^nf V+^a)666nf W^ͣ*ҽ3C 3C !͈ 3C Ӓnf W^͎(͈ nf w+wnf w+wnf 6>Nwwgn}f n  w͵ nfr!R9!͂nf#rsݾZf n f n  ڙf n  ڙf n 3*66f n  w+wf n  ʕ! !3͈ ! ! 6! N! Nf n  r+sf n  w+wf n  wif n  w͵ ͒nfr!R>3nf#rrswwgn#unfW^)!͢!͏nf #9!9M ֧6! NnfV+^Rf n  r+snf++V+^rsݾgn^VRUn}|1! N^Vf n  r+sgn}|U! N^VȯRf n  r+sY6 3ci6ݾnf0 կNۚT]F('###v8C(?v8:(6+++ (ˆ#w+> ###v8(G+++ˆ ˎ#Np+y ++Nwy+!premature EO!PY9z 3C ! !nf/! ?#$!G)gn}|1gnf n snff nr+sf n 6! ʣf n  wf n  wf n  wf n  wf n  6f n 64f n 66f n gn}ƒ͵ gn}( (Mnf^Vr+snf ^Vr+sgn}|(NFݾ 6! ʣ6wwwwww6w6nftuwww666wwwwwnftugnugnugn}Ǔnf}/o|/g#tuÑ ӓwÑ( ( 䓯Ñ4ݾ$3gn#unfnf#r!͢#tunfrsшw6nfRW^)Rtuw6wgnu!) ,66Ñ!;͂nf/rsgn}|nfՔnf++nftunf#tu f n 6wwіݾ!͂͵ i cf n  wwwww͵ nfr!Rdnfr!Rd3nfr!R§w6nf#rrsw6w6w6Gnf#rsnf###rsnf/rswwnf#rrsnfr!RGnf#rsnf###rsnf^Vnf͢tu ͹}nfnf ,ݾҎ%nfnf0*ùnf^Vʹڲnf^VͿҹ!.͂3 !9 0gne3 !9 0gG!ݾ Afn( ~^(Vfnů/^ ѯݾ̛z(& ,F˛̛̅˛˛ r+sFfnۚͅ|(Y0n({(Rͅ8Y8 Rw+6 +ɯfnV^ۚͅ###v++Fwx+0w+z  z w!94 ~+.(:e(DE(@ (85#~0! 6+w+w+w+w *&66=O~- O+ +~0h hG+~ (0h hWxGxA(DG~ݦȜ(G DG!9! !&?!  4h4h&4P!9w ! h~ݮ w~<ݖ hw !9w#+! +8 +#+,8!*! w#!9~|goR˹T]â!9w >ݮ w !9w !( ! ~ݖ ( OE8y! ~(!  ~( !('yG(!4h+~! 4h+~!4h+~! 4h+~!  !  *ѯݡ!9 PY FfnV gofZ| }~^(Vfn>Ͳf(zȯF+̾̈ Nng)))V^G~ (#X(Nâ#F~++( 8 G âF+Nâ+V^!9 z(6-+goGRw+O'̓̓d̓ ̓E͋G #~-   60 +A~8 ( W â Nâ++++!9ѯɯR0 >0w+ G fnN++Ϣ| z ؠ   +++~( ###v###͌Y}K>+++##H (#a8{0_ ͌+++f###%(6KA4}͌y%4¡fb)~6<(3V' " ^##w}!ƥ !Х ! !Disk erroError in extending filDisk fulDirectory ful͌*^#~ 84 }#6͌*6O  > }͌*6#~P( 4^q}5 >7}~O #͌%~#?ߦfʏ~զV   76<+w_##~}͌ }>}w~/w#~/+~w+ #~wOG F+N ngOG F+N F+n`OG F+N+~=(ۯOG F+N+~ =(rW+sɯRɯR begin lbound := typget( x.typntr+1 ); hbound := typget( x.typntr+3 ) end; (* all value# 7 !9 ~ݾ++8  ##!9 ~ݾ++8 |z(z/W{/_|(|/g}/o# ((!= goRW_= DM(go*7ɯt <)+ >#F ###gof â â#F ˆ###œgof####͐8U+++v ~ 2###o+++ˎ˞˦f0 ###+++gof0 | }!`!f#}( ##|#(}#70!9G AN>+ >3 r+{PY_>_~:(DAG*>_~ > :(*5*+~ x8I!g7}L(C O N   S T  }w 8(.(w#}͌Y}͌Vʫ͌%6#6Vx}͌$^͌V|ȧR?|ɧ7R|ȧ7R?|ɧRb$ɯ7?!!?QQ?!9 ~# 7 !9 ~ݾ++8  ##!9 ~ݾ++8 |z(z/W{/_|(|/g}/o# ((!= goRW_= DM(go*7ɯt <):|kgn#u gogo!! !e3!!9E !D!9!!gn&[1 gogo![1 gogo![16 gogo!!nf !!9!͉16gn+W^I8 gogo!gn! :!W^S3 ͉14· gogo![1gn#u!Ù4 RORRE ^ :s46EGͲgn#ugn}|]gn#unf W_R{gn+u gogo!nf+!!!9!/gn&!9!,͉1nf W_R gogo!!!9!9M ͈8+ nf+tu/ 6@ݾڂ nf/! :#9!9M ͑8҂ nf#tunfG]8Ҝ Grsnf! 9gnu! Ù4s4gn}| gn++&3 Grs!e2 gn}|c gn+jj! :V+^rsnf/! :W^{zI nf#tu nfG]8c Grsͥrsnf#V+^S8Ҿ nf/! :nf+/! :5F# 5 v T  gnugnuwww6nftunFݾ gn##gn w >NFݾ gn####gn w ! Ù4s46 FEDNU*!9!W  !# 6 REGETNI!9!~  !# gn!X :6 RAHC!9!  !# gn!X :6gn#!X :6 NAELOOB!9!  !# gn!X :6gn#!X :6 LAER!9!* !# gn!X :6 TXET!9!Z !# gn!X :6gn#!w 6 ESLAF!9! gn/! :w+wgn/! :w+6 EURT!9! gn! :W^r+s CCUS!9! !3  DERP!9!7 !3  NLOE!9!^ !3 gnu FOE!9! gn/! :W^r+s6 TESER!9! !# gn#!X :6gnu ETIRWER!9! gn/! :W^r+s NITXTF!9!0 !# gn#!X :6 NIAHC!9!a !# gn#!X :w WEN!9! !# gn#!X :6 KRAM!9! !# gn#!X :6gnu ESAEL NIS!9! gn/! :W^r+s6 DNEPPA!9!: !# gn#!X :6!Ù4 TES  s4gnW^ROw6w8 .18 W_go! Qo-8 1'gn>P|!26P8 W_go!gn! :k-gn#u8 .1R8 W_go!k-gn! :6 hͲ gogo!!!;e3 ͉16 gn+W^I8 gogo!gn! :!W^S3 ͉14¨ gogo!!%!nf [1! Ù4s4nftunf#tu!Ù4s4gnjj! :V+^rs!Ù4s4gnjj##! :V+^rs!Ù4s4Grsgnjj! :Gr+s!Ù4s4n f +jj! :V+^rsn f jj! :V+^rsnftuww6ݾ3 nf^VS83 nf^VR# 9ڻ^Vtunf/! :nf W^{znf #9!9M ͑8nf#tu/ nf #9f/! : ! Ù4s4unf ]8H !2q gnjj##! :unf r+s! Ù4s4n f !X :nf J/͚9ڻsn f #!X :nf J/ 9ڻnf W_h80NFݾ gne3Ͷ >NFݾ su>NFݾ su!X :>NFݾ W^surs rs>NFݾ gn/! : !Ù4s4!# >NFݾ gn#!X :W^s>N/! :w+6gn/! :w+6 TNIXAM!9!& gn/! :6+6gn/! :w+66 NLETIRW!9!q !# gn#!X :6 NLDAER!9! !# gn#!X :6 ETIRW!9! !# gn#!X :6 DAER!9! !# gn#!X :66 DRO!9!9 !3  RHC!9!` !3  SBA!9! !3 gnu DDO!9! !3  RQS!9! gn/ER!9! gn/! :W^r+s6 CNURT!9!2 gn#!X :6gn##!X :6 gn###!w gn!w gnu! #  DNUOR!9! gn/! :W^r+s NATCRA!9! gn#!X :6gn##!X :6 gn###!w gn!w gnu! #  SOC!9!2 gn/! :W^r+s PXE!9!f gn/! :W^r+s NL!9! gn/! :W^r+s TRQS!9! gn/! :W^r+s[1nf#tunf ͚9ڻW_RE!gne3͉16-w6 _gn! :W^sgn#ugn! :W^s!Ù4s4gn! :W^sgn#u!Ù4s4gnugn>`|gn}{|gnu!Ù4s46!PW^I8"gn! :W^s͗7(ͨ7ʢ0ͳ74!}  w6gn}|M<gnugnugn!êͦs}gn}|fgn}|f6gn!:W^! :W^sgn#ugn! :W^gnRgn} |‰66&wݾڞgnW^S8ҞgnW^R# 9ڻW^u!9  gn /!U :#9  ͑8Ngn+uÛ!9  gn /!U :#9  ͈8ғgn#uÛ66ݾڪwww6gn}|}ôgn}|gn! :W^! :W^{z6}gn}|}ͦ{Ez?6}gn}|+gn}|.}gn}|?}.gn}{|T6rgn}|o!2rgn}‡6 gn}$|Žͦsͦ{+z %gne3!96  ͫ3CRS.!9!{%gne3!96  ͫ3MYS.!9!%gne3! Ù4!9!:!9:Rڶ 1-2.3 rev lacsaP smetsySretnI!!9!%"[1gou+++!W^I8_&gn! :64A&6A+++!ZW^I8Ҏ&gn! :64p&6a+++!zW^I8ҽ&gn! :64Ÿ&66m 660+++!9W^I8'gn! :64&   ELIF !)   ROF !1)   DRAWROF !N)   NOITCNUF !k)   OTOG !)   FI !)   NI !)   LEBAL !)   DOM !)   LIN !*   TON !6*   FO !S*   RO !p*}   DEKCAP !*t   ERUDECORP !*k   MARGORP !*b   DROCER !*Y   TAEP|'gn /gn!0Ruu gogo!!gne3!!9!ogn! [1gn}}|ʃgn}|ʛgn}|ʪgn}}|ʪÎgn}}|»gn}|Žgn}66gn})gn}|"}&6 .}gn}|=6 gn} |gn}c6us6 ugn}6â 6 âgn}|º6 xKBfBnR gogo!!gne3!gne3! !9!n [1! Ù4s4gn#]8}!2gn#jj! :Gr+sgn#jj##! :ur+sgn#u!Ù4s46!W^I8 gn+W^!E :W^! :W^s4gn####!E :! sgnD uC 6 gn} |] C 6:! Ù4s4gD nugn}š"6!W^I8ҽ gn##!E :W^!U :W^s4 : 6 6gn!E :W^{ z gn#u MYS.!9! u"6!W^I8C#gn!E :W^gn+++! :W^s4#6gn#ugn!E :W^sgn! :W^{zI#gn! :W^{zI#gn#!E :W^s6 6 6 gn! :W^{z0$gnugn##!E :W^sgn! :W^{z0$gnugn###!E :W^sgn! :W^{z0$gnugn####!E :W^sgn! :W^{z    NEHT !X+5   OT !u+,   EPYT !+#   LITNU !+   RAV !+   ELIHW !+   HTIW !,  wwgouw6dww6wwwwww66-www6w w 6 w 6 w 6I 666w3c gn} |,3c 3x6,3T L 6<Ͳ6!!9M !nf͉1G3x3x2SAP!9!M-;1,î0*.ɹ (<*.18͎-|.1Ԏ-| ͧ6-.ʢ0-6ͧ6ʢ0 > կN.T]F('###78C(?78:(6+++ (ˆ#w+> ###78(G+++ˆ ˎ#Np+y ++Nwy+!.premature EO!PY9G!ݾ Afn( ~^(Vfnůk-^ ѯݾ/z(& ,F//.// r+sFfn.1.|(10n({(͎-.1818 ͎-w+7 *~+y8^#~ y8}8F}8v8}8Nv8}8gi#9Aͧ6 N6+ 6#ͬ1F ͷ1###go2 l3 l3#ͬ1F ͷ1ˆ###E3go2!9 PY FfnV go44| }~^(Vfn>[1f(zȯF+̒2̒2g212̒2 Nng)))V^G~ (#X(Nl3#F~++( 8 G l3F+Nl3+V^!9 z(6-+goGRw+O',3,3d,3 ,3E43G #~-   60 +AN*>_~:(DAG*>_~ > :(*5*+~Ͷ5x8I!677&8L(C Ͷ5O Ͷ5N  Ͷ5S Ͷ5T  Ͷ5&8w Ͷ58(.(w#H (#ͧ6a8{0_ 58+++f###%(6555&858y%4J6f 6)~6<(37' " ^##w&8!o6 !y6 !6 !6Disk erroError in extending filDisk fulDirectory ful58*^#~ 84 &8#658*6O  6 ͳ7&858*6#~P( 4^q9 ~ݾ++8 |z(z/W{/_|(|/g}/o# ((!= N9goRW_= DM(go*7ɯt <)(33(7>ͭ9+9(  SxDM!=)#0 |z(z/W{/_|(|/g}/o#  -# z"BKgo(0|x( j-0ygoR40 ###5 6###948787O8 ( (++q+++++++ˎ#q#x0ͧ60#fn##|###5!$70d0 00!27/ R0~8 ( W l3 Nl3++++!9ѯɯR0 >0w+ G fnN++x3| z Á1  ͳ7+++~(ͳ7###v###ʜ358Y&85>+++######948U+++v ~ 3###8Ϳ7+++ˎ˞˦40 ###5+++go40 | }! 4!4#}( ##|#(}#7ͧ60!9G AN6+ 64ͧ6 r+{PY_>&858&858Y&8587T658%6#67x&858$^587|q8R?|r87R|q87R?|r8Rb$ɯ7͚8͚8?88?88?!9 ~# 87 !9 ~ݾ++8  ##!2% ͋*-"*$$$ SUBq:(=2(N *$*& w*$#"$*&#"&' !"N*M^7 !)6:!)ھ *N*DM͆ 2*ʭ :*ʗ ͯ *N"P*6:2)÷ *N"N!) $@BA$! A "!$"" ]xsub*"-!/"*"+!""1 M*!"́!"* (xsub active)$|*y ʥ*"*7***x*́͋<͛ :%*=26͋!7^#6 #6 #6$ 8*7~O #w# !6:6=3 Copyright (c) 1979, Digital Research????????????CON:RDR:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTP:UP1:UP2:TTY:CRT:LPT:UL1:R/OR/WSYSDIRR/O R/W SYS DIR ** Aborted **Active User :Active Files: Drive Characteristics65536: 128 Byte Record CapacityKilobyte Drive Capacity32 Byte Directory EntriesChecked Directory EntriesRecords/ ExtentRecords/ BlockSectors/ TrackReserved Tracks is Temp R/O Disk: d:=R/OSet Indicator: d:filename.typ $R/O $R/W $SYS $DIRDisk SL!*p+q*)O2'!,p+q*+O2'O2'O!.p+q*-LRRLR\LR" O!/q*/& L!1p+q*0#L~*##N!ͽ͞"T!Vq*VMͳ!Xp+q!W* >Wr#MͲ!_p+q!`6>!`6*`&*^*`&Y />!`4 >*]& ~ O!]49!a6:a*]& ~2bO>z*bM >!b/~,H~:H~*H~.H~>H~<H~=H*]& 6!]4T!]4!cq*a&Y :cw!a4>!H% - *DM ͱͷDM  ͱ* N#F 9ͱ * ^#V))DM Tͱ* ~ *} *M!+s#r#4 !s+p+q!6!66:!ڄ !6!6>!r *&**&Y i !6!4+4A :} :!4- >!699 2¨ :!4: :2!6+6>! :O!9 DMi ͱ:!O!Y DMi :2͠Q" 8AO͐jͱͷDM͏ m  Z"l"!6>ʥ *}҆ *M ͱ*}x O͐} W͐ͱ !+s#r!+s#r#4D ͠:\ʹ :\=Oͳͩ !6!)6l :) :)=2) :] & !"}2\!h6?!j6?\:'C:'ƀo&")!)6!"):)/)HҘ]!)6> !)ڎ*)&*)*)&*) y!)6 Ä:) 2):)<2)M*)#")/:)ҩ*)+")`*")#"]!*)!/H!")!"]*)) *)s#r!)*)) *)) N#Fq#p*)) *)s#r*)#")!)6 J:)!)J!)6 :)<2)*)")҈q:tw͠ͱ!"))ҍ*)) ^#V")]͠.*)DM\ -°!\6:\ͣ:ͱ*}DM'ͫ*)%) N#F'ͫ*)!) N#F'k͐ͫ*)) N#FͫR͐/͐ *) ~IO͐NW͐ͫ8AO͐:͐ *) ~2)t(͐:)҃)͐*)#")Ã& \!"))\Ұ*)")]͠*)M! ^#V *) >*) w *) >*) w *) >*)tatus : DSK: d:DSK:User Status : USR:Iobyte Assign: =Bad DelimiterInvalid AssignmentBad Delimiter: Bytes Remaining On R/, Space: Invalid File Indicator** Too Many Files **File Not Found Size Recs Bytes Ext Acc65536 set to R/O Invalid Disk AssignmentWrong CP/M Version (Requires 2.0)!9"2!T OË!]6:\:] Hr3 Ë:\ʀË͇ /ҋͺ *2!"q*"&L ͐ ͐ ͐!$p+q*#~*#N͐*##"#÷!&p+q͠*%DMͱ O O!(q*(&!gr+s+p+q!h6>fr*d*f!is*d́"dPY! "f>!h#~Haͫo!h6:i0O͐!mr+s+p+q*lTZs#r*lڶ*l+s#r*jN#F+q#pÌ!nq!"o"q}2uo&"s* s:n*sDM2u:uqos*s"s*o͊O !v6>!vQ*v&w 6`i+46)A*:'ʓ:'O!) ~2vʍ:vO!w 6,]!v6>!v*v&w ~һ*vM !v4˜8AO͐:͐ͱ*##N!ͽ"* N#F*͠":2͠!4 F :® )!6>!ګ ͠:O!9 DMi 8ͱ!6> !ڤ Å :2k ä  ͐:!O!Y DMi w !4C F :¿ >F : F :=229:Y= ;>9*&Y DM =2 I>!6:=28 :2:2 :!!29:Y T >:Y,e \>Ì !p+q*~:ʉ *N͐*#"o :͐!p+q!'"!6> **{2*́"PY! ">!+~H !6:0O͐à k͐)6> !).*)&*)*)&*) w:)<2)*)) >w#6*)) w#6*)!) w#6*)%) w#6*)) N#F*)) q#p*)%) *) ~e *) * ~o&͞ *)%) q#p!)6* >!)6!)6>!)=:)!)w=*)&*)~2):)*)& *):)2):):*)!) *)) s, >X\:)“>!d!")>!)d!")!")*++!)a*)) ^#V")]*)")*)) ^#V")]!)6> !)T*)&*)~2)*)&*)~2)O;*)) ^#V" w *) >*) w.*)DM\ -+!\6uͱ:)O! DMͱ*)#")Ù*))))))"):m w>.Yn -:YS:Z Hҧ!6> 2)½>!)6> !)*)&*)>2) :) .͐*)M͐:)<2)99:Y=/9&ͩ c,Hͩ 9 EHͺ i`N#Fog_og_ogDM!>))덑o|gҘ =†DM!>))ҭ =¥~ ³^#V) ½^#V|g}o _{ozgi`N#Fogo&og_{_z#W-:YS:Z Hҧ!6> 2)½>!)6> !)*)&*)>2) :) .͐*)M͐:)<2)99:Y=/9&ͩ c,Hͩ 9 EHͺ i`N#Fog_og_ogDM!>))덑o|gҘ =†DM!>))ҭ =¥~ ³^#V) ½^#V|g}o _{ozgi`N#Fogo&og_{_z#W;#( COPY Version 5.5 (C) 1981 Lifeboat Associates.$1Q2!" " 8P81Qͼ_ sͻ_1Q:Vʁu= Insert disk in and to verify. - $L _= Verify in progress - Press ESC to abort. Each * is one track verified.$= Verify complete. $:L=NO errors were detected.$_=Errors detected. +++ ERRORS +++$_= Insert disk in and to format. - $L _= Format in progress - Press ESC to abort. Each * is one track formatted and CR> = Run again with same parameters.$= "A" = Copy ALL tracks. This option also FORMATS a new disk. "M" = Copy MOST until empty (0E5H) track. "V" = VERIFY the disk by reading all data. "E" = EXIT and return to CP/M. Enter your selection from option table. - $L!2!f.ArMrVrEw= Illegal selection. Try again.$>"*}ʃ:w= Insert CP/M disk in A, then press . - $L:V6= Enter VERIFY drive name: (A B C or D) or doe:O: :O   %(:}7 2:=2* }/_|/W*"!4* *"Ϳ :V !5G 2:=2* }/_|/W*"!4* *":<2!5 *" !Q"Ϳ * "  7͉!5‡ :G:O : y=*$:N M : * DM!Q~ # x >*.* :G!R$ |7 y2!Q>w\ /w\ # xG = ABORTING due to memory failure in buffer. Insert CP/M system disk and press . - $Lw͉> 2 ͉ 2  * MD*!Q :>V # y .:AO ~2 = Source disk is $!> : ʻ : @ʘ :A2ͭ b :A2ͭ ژ = ERROR - Drive set single sided. Use SETCPM.$>:G: @ʧ xG!pO *.~ µ =single density.$=double density, single sided.$=double density, double sided.$ #0w+>06 6/4%#͉_ ~#$-=w !wN# 6 ~mw+ b`{_ single sided. :žè= Console ESCAPE has aborted the copy.$_  !* ::=M N:verified. $= Verify complete. $:N=NO errors were detected.$_=Errors detected. +++ ERRORS +++$_= Insert SOURCE in , DESTINATION in and then press to copy the disk or any other key to reset options. - $L _= Copy in progress - Press ESC to abort. Each * is a track copied and verified. $= Copy complete. $:•=NO errors were detected.$_=Errors detected. +++ ERRORS +++$_= ****** O P T I O N T A B L E ******$:&= A2A= Enter SOURCE drive name: (A B C or D)$= or makes default copy from A to B. - $L 2A6= Enter DESTINATION drive: (A B C or D). - $L2AҦ>A2<2ɯ2!:V~2!:F~22:A2͠" " ͛  2:2= $͉:Fl!R$":A2) ͉:Vʐ:A2!~6!R$":A2i !w:E:O:ʰ:O:2:2   ^#V2:GxGx2!: (: !ɯ:_::7= ***** Select error *****$ _= ***** Error *****$_>2)$L!yw = Compare$Ü = Read$Ü = Write$= error at $ : = $>2͉= on Drive $:A-:! = Track $y! = - Sector $  2*+~>0 : @ʂ 5 { ͎  ~ ͓ :*w:*w*.f%.~2": :A 2 :A ! = ERROR - Density mismatch.$wO *.~ *! w###:!A~w !$'*-03-=w Disk copy for CP/M2 on North Star - SD and DQ.$ed. :žèTranslate table   !"#$%&'()*+,-./0123456789:;<=>?@ty, double sided.$ #0w+>06 6/4%#͉_ ~#$-=w !wN# 6 ~mw+ b`{_ single sided. :žè= Console ESCAPE has aborted the copy.$_  !* ::=M N:1k!rͨ͜<^ͮ0!b!6GH!K^͋(8ͤ0!=688@8:=( 8::8:ī8: : : 9*6*"rq0t 9q09:Ħ9ͷ:{!(̓ 9o:!( !K!":\!!*DM!lxʂÀ^!"!6͋(8ͤ0!=688@8:=(:& 8o 8:: : 8:& !r6H!ld!6# x !6!"!"![!:\(*~"L"N""P""R" ! 6ͺ"s+r+ s+=N*̈́0 !$.318 =2!j~#O !=7(O_ _#!~6(#O!#"͋(!ZH*~a8{0 8#"*+"*͋/ ͋L7(O ?!ɷ"!=͋(8A6/(6,(6$(.(:(08*:8A8"[0w#͋8(6!7ͤ6!67 !6#͋(8,(/(y00!7ͤ> 2:(:\/(!2{22!:( 22{!:( 2!*:\(!~(6!:2͋(6A 'C /D 7P G!]:2'ͷ 82  CS!:2  7!u:'ͷ 82  x(CS!H:2  *p"!: (*N"[p"N*L"[p"L:  K[!r+s+p+qͭ!:*5 :[!+5!:[p*!R!*[p"pY:'ͱ( Ͳ!:s8: T*[~R:\ l" *p"[p"[p"Kw:' !"@ !:!7:ĵ!::l(*R" [p"R*L" [p"L* "*p|(,!:* 5 :[p+5!::(*P"["P*LA :(Y\ Q .: !uÙ*60å !6Ϳ:m(:o :r Ϳ:m *:o(<:r0s 0kf !}~!~6:[2|:T2!"!u~7 #y# o&))N#F#^#V!~8 ![4_kb))!uɷ7N!lͼ6!}:n!}:oØ!}:rH*H͕H:tGu3:s[p{3z3:!uN#f0!372m ͕2nl2o(ͨCp͆2r8( 0Ȗ++^+V r#s*Sf^+Vr#s++++^+Vr#sfѷR[ s+r+[ps+r*^+V#RSSfa^##~+7*++++++~ͣ( ^+Vͳs+r~~w+y!* * `i:s!* =*=*u~+^K:*S++^+V*~(B *T]B*S++|^~"ͱ(BK^+VSw*:\( [~R8#*R8 R8l^q#Vpz Ͳ!f++++N+F+x^+V+N+F+^#V r+s Aux blocks Bad address Bad commr+s+r+6+s+r+s+r+s+r+6+s+r+s+r+s+r+!l:\!gl!"!"*+!V*:!C*:!@*:!:`!*++++++~(^+V:!II !6^~(,*P!I!((!Ó!(~6!d P~+OP++:|?}Y JPK P :(!ͼ!6 #6 #60(G!~ >04>82!7:nG*#"+*R8S*R0S:\( [~R8'*R8 R8lp!!O* 8*(*[p}z|zͱ"["L*|!:*5 :[+5!:G:sG[p(*|( !7 x[p"2=!6:] !7: ͍*Dl!Oͼ x d͍*">:F *[R8AR8|(3E}: *5 "!l[~R: ~#: yD: P : *5 P !d|: }OY zF {!Oͼ> F > Wc zS 80_:& !7Ϳ:m !37:o :r ":͜ !Uu!m6!o6>2r :(!!Ͳ! : !\ !Ϳ!?2l2sͨCpy02t!u6 #!u͕w#=!~ *P2|!65!|&>Cf'Gfl'Gfl''Gl͆''''G͕͆O͕G*++++"^+V#"!"[*|g}o"*Oz+)))##*R!u #^+V>*0""^~u +>"~^+V+Bz **^##^+VSS++++"O!u~#![*~+foR)))#*#~#ngDM#V#~_zWs+r+^+VR#!x(+w[p+s+r*^+Vr#sfV+"and character is a bad EXT chain Bad file name Bad input file Bad option Code below lowest address Can't findCan't open output file Code overwrites tables Common section Data section Entry point symbol redefined Error writing file Generate a HEX file Generate a COM file Generate a symbol table Hi =Load mode Lo =LIB Librarian mode LINK version 1m Module name isNo COM file in offset mode No GO in offset mode No output file Name too long OK?Offset Program section SaveStarting address redefined Second common larger Start =Start Program Too many commons Undefined common Undefined REL entry 0 HEXMAP.REL COMSYM2!""*+a{Y!~#~6<(3$ "!y~=W!x# ~#bxE {8~#o}oA'.`28!Ip+q*HT!J6J T ` T!p+q*T> >/Ҥ×!p+q*DM͛:̀ ̀:2:!!K:*&L Ǹ!4!K6 ͐uÇYALPSID'TCELLOC$LAITINI!ÓCOPYRIGHT (C) 1977, DIGITAL RESEARCH g gzd{ *9 Wl> W> W*"!"^l!]kl$]xl']::>2l!6!"!~4*s,r,"!~O @@ I$B$!!D!$"H@* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z z/ ͩ!4¡ :$ !4!"%!q: O !{4>!O :!{O :2*'M!8 ^#V%!t ͫ *%B :w*%#"%` Ø Ø Ø Ø Ø ͩ` *M6` !6 ` !6 ` !6 ` *&T` !6 ` !6 ` !60 ` *& ^##w!/ !9 !M !VDisk erroError extending filDisk fulDirectory ful"ͼ 6# 6 #6#*(G*8:( yy:xA0"!wT] *8.(w#7!y.(!8*(,([(]( ?0:0~O#!"*Nya8_ (# ">P !!"*q>ݕ#6 7("*}7(+"~l!F2y* "*xT-V-^yA!~4x]> WO" Q>2y*"  INITIAL = COLLECT = DISPLAY = "-A" IN EFFECT, ADDRESS BACKTRACE READY FOR SYMBOLIC BACKTRACE BACKTRACE:%B 2!4þ *%"%:/ ͩ!4¡ :$ !4!"%!q: O !{4>!O :!{O :2*'M!8 ^#V%!t ͫ *%B :w*%#"%` Ø Ø Ø Ø Ø ͩ` *M6` !6 ` !6 ` !6 ` *&T` !6 ` !6 ` !60 ` *&(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE) COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.8$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUNTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$221@:2!o6+6+6!6#6!6#6:G*o .!N6:^*M^!K6!6!6+6' :$::=2K  :ʤ\:ҷ\x'Ͳ:!\͢  :͈'! Ͳ:$: $͈Ͳ!N6' :!Cwͯ !6:^͢c!6{:/>!/H{ͯ :<2Š ::=HҮͯ !6:Ҿ:2 !6::/H͈;!6:> !/>!p+q* !q*& *M *M !p+q*!!p+q*"!p+q*$!6  !kp+q*j> >ڪ Þ !qp+q/ *pDM9: :M2r:N!r !:r *r& N!r4 !6:͔: :ͳ.!ws+p+q+p+q:w=2wN *s*u w*s#"s*u#"u' !"*M^7 !x6:!xھ **DM͆ 2yʭ :yʗ ͯ *"*6:2x÷ *"!x4d !"/ !j}=2| !"*KM^'_ !z6:|!z1 * :2!q: " *M n :c4 *M n :2!c:Q !c:2: !:cw>!n !5 Y : { !6!q:!lwҙ  â :0O !q:O| :O| !6:]2l:o'2o:n'2n:m'2m*mMͣ *nMͣ *oMͣ :]:   *}2D" * * *&"!q:UY: Y:ҩ: ʩ:_2ʘ:€!6<:<2!ژ!6 >!]Ҥ; !6:Q::H: !6*M : !6!q:a/>z!*M:>!(:=2%> >>!F!5+N! ~2!4<2T>>!b}*bMͭz:b2!b6:<2é>!`ҥ*`MͭҞ!`6!6> :é:(!q:!wO! ~2*& :w>!:!4!6>:N<2N!> *N& N2 !p+q!6!6+6 !6: S: M!6g8:N2M*M8p!6!6!6>!ڕ*&P 6!4z!6!6#6#6!6*M8:ھ:*͇g2ê::¿::,͡A<2O>ABORTED$BAD PARAMETER$INVALID USER NUMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE RETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILE$DESTINATION IS R/O, DELETE (Y/N)?$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWER FOR OPERATION.$UNRECOGNIZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1 :2L> ̈́M9 HHͯ :^!w:<2:0}:@E}:!S!W6: z!]6:cm!c6:_z!_6l ::,: HHҰͯ : 2ó:E:1:2v!q!*8!*6: >ͦ>ͦ!q:_  !p+q.*   !q*&!p+q*2!p+q*2!p+q*22!p+q*!p+q*!p+q*!p+q*2!p+q* "}*}DM͆ ' ͯ *"!z4 :e !"͆ !z6:|!z '? 2*H#"H!{6:{ր!Ң *{& :{4 2!{4m *":ڹ ͯ !z4I '2!"!q: !4>!S :S! :2*M! ^#V͎ * :w*#" = = = = = ͯ  *M !6q  !6q  !6q  *& !6à  !6 à  !60à  *& !6  !6  !6  *& . 1 4 7 : = F P [ f q  /H:_2:!q:A/>Z!/H8: 2::=O>m:W!Q} Hmd>9>!6:2*M!E ^#V͎ڗO **~2*#"m2m͖ 2m!6m!6m!6 m2mͯ m!62m!62m!62m!62m'2:2:TҒ:2!6*ME:2::Ҳ:<22ý: 2:} >ͯ :i:2:d*M:[ *M8):[ͱ!N5!6ñ:5!6#6>!ڰ!6:<2O>/:!O!T *M͡H~K:¡!6[–ͱ!N5:2:2!4=:[¼ͱ4:!6:.2O8: :* ͇g:[ ͱ!N5!6:%:<2*6 * 6å!q!6> !d*&I :]>!4A>:<2O* :w:?†!6!q!6?!:ҠgÐ!q*&*~!6:22: :]Hں:A2O>: 2ͯ ÷:S:QHI:N<22: H@"2Í202O> c!6Í202O> ڍ*&O*& !sc*&P :w:·>!ұͯ :22:_!6=!6>'!E!4!p+q*0 !r+s+p+q*~$7*>*>H&>*#"*#"> 2:R͎:!6!6=2:ʙ!6:“H9Ž>!6-e!6ͻ2=2ʺ-é:>>"ͻ2:!!5ͻ2ͬ!\2*">!b!ͯ >!`0ͯ !q:E:24J!46*}a!44EJ *KM^'́:‚ͯ !36'n::0:f9OY#9.3'ͳ.:020' 'ͳ'7 6'!j>A+!s!"@͓1!"<**"͓n "Dn"":!Q2҂:X!Wғä:ڤ*MEÓ:ұ@@:O2Mc;!6#6>!)*&P ~"::H:HDM!  ::=H-\:N2O_og_{ozg^#V))) _{ozg^#V) d^#V|g}o n_{ozgO{ozgi`N#Fogo&og H ©=¨' !'6!36' :1/!aE*#">z?C9IͲÁ.!6> !ڇ*&' ~2 ʀ: y.*M!4Q>!қ:=2á:2:Ҭ\>!ҿ:=2K:2K!:!:K\: \!p+q͈**+ÔP Z :!3 :!3 v!60! " !4* ~7-N#O O" !͖H!y|Error opening input file 0×1 "2!F#NO O! 6 #! 6  " ##" -(#/ʊ.,)* w#" !|File name too lon/-h(,/ʍ* w#6:-h(,/ʍ! -hp,/ʍ!6X !6!" -h/ʍ,*+"/-(_-W-O!~#( ~# ~( ###!|Bad slash optio{C(H(22/222/2 22/2" ^##w!A !K !_ !h|Disk erroError extending filDisk fulDirectory ful" 6# 6 #6#-(G-8:( jj:xA0"!wT] -8.(w#7!j.(!8*(,([(]( ?0:0!"*Nya8{0_ (# "!"*q:#6 7("*:7(+"~~O# ȱĉԍÉčÉ؉Ӡ͠ƠōǍԠſډ-:>>!p+q:,!6*DM9:<!6:z 2W!6D*&L :w:<2Ov*:>=20O> ڒ:0:AO>Ҥ::A }}Hͬ!wͻO`idͻV[2O>2:!X!6:!:=O!L NE!4 E E:/.*&L 6$L9k9.Xͯ *KM^020 :020:121'ͳ':²ͯ !G6!"!"7 *M^n/ :a/:H!6:ͯ !&6:H:H"!6!4:_jYO jM*"S*" 3@bl*M1͓!""7 *M^͆ \͔!":͎H*#"ͧÝ/ :>͛9ͯ .*#":_!' !'6!36' :1/!aE*#">z?C9IͲÁ.!6> !ڇ*&' ~2 ʀ: y.*M!4Q>!қ:=2á:2:Ҭ\>!ҿ:=2K:2K!:!:K\: \!p+q͈*hCOMHEXREL: o&T]))) w#6:/h/> ! 4* 6.#6S#6R#6C#" ~#. NO# O 6: 5 : = : 1  J9 $ J!~(: !" Z!3 ͖1! Z! ͖1! !"å *+D}ɯɯY!~#~6<(3$ ȲӍɉĬԍÉčÉ؉ӠԍȲɉĬԍĉĉӠΠŠō։Ŭ͉ԠĠˍ։ͬÉŠȠŠӍ؉ȍ։Ĭ͍։ͬ։čʼnĠƠοډΉԠԍԍغ̉ʼnԠ̠ōԉԉӠĠԠ΢ӉԧӠ̍Ԡ̠Ӯƺ̉҉ԠϠԠō؉ȍ؉ȍ؉ȍ؉ȍ։ì͉ҠƠӍ؉ȍ։¬͍؉ȉԠϠԠٍƱ։ÉſډӍȉ‰Šԍ։Ŭ͉Ӎ؉ȍ։Ĭ͍؉ȍ։ì͉ԍ؉ȍ։¬͍؉ȍȉȉŠŠҍljӠΠ̍։Ŭ͉Ԡō؉ȍ։Ĭ͍Ǎĉ‰ĠԍǍ։ͬĉō؉ȍ։ͬōЉȉԠҍЉ‰Ġҍ؉‰ԍ҉ƱԺӉԺӉҬƍԺv222:2n: ͦ1 >2U:29͉!ͦ1>2U:͉!!="/:"1:"3:"5:!F:67*=*2:*2:*2:*2:"=::(F=2:*/:T*"/:::(3=2:*1:F*"1:::( =2:*3:F*"3:::( =2:*5:F*"5:3!F:5 >2U:29*=|( ͉!*5:5 1*9| :!!(* v:n:(1!9'6#!8:6!7:6 :! !8:6!7:6'!:(!":":Q,͜&##6#6ͥ>2U:292`::2n:2h:2i:*":N)<!(;6 #29;2L:2}:!":":!c<"-:6!-;"(:*:|(2D:!9;":'8((_ ( >2U:{ >2D: (x(*:s#":*:6!9;"j:*:|!r!8;6*:|(:}:m"*:*:| }Ĵ":9:!(-!c<"V:*V:~( #~#"V:͇!94*:#":!X:5!,;::(6+:L: :i: 29;::(6-:n:͉!:-; !9;~#( ( ( :,;+3?:h: :L: :,;-(,+((!(;+!::!:!:2:( > ^!=!9;%!:L:(-!(;O&!9;O&+3:9 :(:n: !(;+!!9;%!!:~6!:ă!: :2:::2::D:uGua,&)a, .::(]28:͵,27:*::(([:R0" :9 z(t*:":"::8:2:*:|Yn!*: ͝" :(ͅ" :(s"  .*:":*:{ozg":*:æ*: .{!:*:ͥ>{!:a:ãͥ>ͥ>!a:F6x!a:F6>!a:F6>n-Һ~ wͥ:b:V-w͋-jn-c- c- > w(n-c- c- > w02,:,8G:,:2:6Q~G:,:2,::b:w>2*:Å͞-æ .:9 ::!8:Y1*:*:0| } < }ͩ".}2:Q2G:ͥ>2F:*j:~'("_2E:#~( #~+-*/&i)‰i),;  !2g:{!!E:6!F:5 i)(+"j:!": !":>2F:2E: .5*::2g:{!!F:5:#:(:F:(!": !":#)*j:~G; #~; ͤ& x!(ͩ)(2K:xͤ&*j:~ *:"q:*j:~&i)Gͩ)x(! &i)2K:*:~! #~!( &*j:"j:*"j::]: (:: :K:(2:2]:$+::* ! :4+(-*9:'+( ::ͤ&*:~# ++~!i6*j:+"j:i! :5~2:i!":ͤ&*:^+V+}o|g":*9:^#V*:":i)( ; * 7" C" 2:2h: ?:2i: !96͊)2:͊)2:͊)2:n! ::(" -0ͅ)i)(*(';(#,(ͣ)OOi)((;( , 7"  O* ͖H0I" !:6 C  , U" *+ !":>=!:ͦ,͔+ *:͗,ӉҬƍԺӉҬƍԺӉԠҬƍԺӉ姬ҬƍԺӉ姬ҬƍԺӉҬƍԺӉҬƍԺӉ COM HEX LST REL ҬƍԺӉҬƍԺӉԺӉ+3>29͠v: : : : !":*:":ͥ!3 : !9N* * (:`:ͅ)( ; * i)ͩ)(i)( *$+::$ !:4!:4~!:w̓! = $:: !`:~/w/2:!B:6 :`:go = !:6!:̓!G!:̓!!`: 6x 6 Ϳ=ͅ)( * ; )  "i) ͩ)(*+(C:9()*:͗,= :8: ͦ,[:*:s#r!}:6*:":*:":*:":*:":!::8:ͦ,͔+i)( ; * )(.*$+ ,+(!*:͗, *:| [" & " ::80(i)(!:6::2a:::_!^#VYBbKf(08BKTgouafkz!2%+/8<Eb| y"  .$ *:":*:s#r::͗, Gͦ,::ʷ!":÷2}:*:| ͗"  .$ *:":!D:6 ,  .::8" 2:! :6*:":*:|ʷͣ"2 :÷ͥ:a:n!{! ,8wÝ~2*::b:w*͞-ú,Һ~0͋-ú͒-ú,82*:w,Gҷ:b:w!*:>Fw":b:w!*:6p:+:,0O"!*:w2+:ͥ:a:{!:*:{!:+:ã .5*ͥ:a:{!::ã,8wK:b:w!*:66 .5*::2,:ͥ:a:{!:*:{!:+:{!:,:ãͥ:a: .{!*::: *:{!{!n! n-8wò:b:w>!2*:ͥ:a:i):E: :G: =((*(:+++"(:P*-:+:g:w:~( :F: !N": !":|{! >>ͥ>2F: .*::: *:{!{!:#: !F:5 !": !":ͥ .*:*:":*:"::(:9 z(t÷!:4~!:w̓! .*:|·!:42`:÷::Z=" :2n:  .*:"e:!:6÷2}:*:| ͋" :9(>ͦ, ͗,(ʹ" *:":":*:s#r6+6͉&6#6#6#6#"9:6#6#6 ,((**9:'+(+" *9:~/2:͗+*j:~, , *9:+++V+^":"q:6! :4!":*9:n&":!B:6 ú*j:~ͩ)2:2K:2]:i8 (ʹ" ͦ,ͅ), i)C  ,*+(*:͗,Ĵ"c*:| " +":*9":###"9*=###"=͜&^#Vr+s##N#F#+ +T]+++x([:6#6#6>!:ͦ,͔+ͅ), i)'C  ,*ͅ), 7" !: C a,:a:28:͵,2B:27:!":ͅ)!#:6( ;(*(6͂,":àC a, ,(*ͅ), 7" !l:!9='+ !9~ " 2:4!9=͗+::* *C  ,*ͅ), 7" !:>.(#6 9!;>22X:2C:296:###"Y:!;"$:::2;͇::2;͇͇!;"$::[:!C:w*$::[:w#"$:*Y:p#q#"Y::9:j:9Gʥ:a:ʥx͇x2;y2;:9!C:/<͇6;(O*  3å!;N#:9G#Ntå:929*  2[:͚G:[:͚O 80::!(;͇p#q#::͇p#q#:7:w*(:͇p#q#6 #"(:*(:z͇p#q#{͇p#q#:B:w#"(:G:9:x( |͉ *-:6#w#6"-::9: }||::(= ::Ø :!ͅ"7::9*:+":j"::8:2:*:":!96!9~6::::2:= !:Fw[:> ü :!o:6!:6! > !9~ ( > M[<{(> ͼ [<> ü !=/ > :~ ( #y2:!:~*6 !:6+!3 :: > ^!> ^!x O* O! y!29G:#:x7"*:#":~=w:U:(O:9(B! :~(3~B 2 :2933! :6!:+!!&+!*:#":i233!962U:29: :;>2U::: o&x o&O:(:9(:!=DM^#V #~# *==G*:|"*:^+V+}o|gp*:s+r* :#" :! :4~6*:+":*q:w#6"q:*:"q:~#"q:ͤ&*q:::?:)"=:)|2:}2:)|2:}2`:^#V#!"{:!=~͗,## ++6#6#*{:#"{:!>0)1*=0":*j:~(#"j:~ ( <>*j: .::(!2:::aͣ)$($%( .(#(_(08 :8 A8[8>ɯ$(%(.(#(_(ͣ)A8[80828088808:82\:08:8ͣ)A8G0> 2\:::2:##::::   !! ͇yHG!H! M ::ćyHG!H!::͵,O! !|>7{!*:":!:6 #|(a*l:"j: .*:|( (%".}2+:*j:~#(c-"j:Ϳ-*:|~c-}2b:*j:~#)(a"-"j:-Ϳ-*:|(!.}!a:ɯ2b:Ϳ-*:|(|~ }2b:7n-8͋-oh-c- .::( !":!::G xj-*j:~, #"l:U"!":*$+*j:~,>2#: >2#:#"j:::7j-*:0R|"": .::Y1::Y1>2:2:!":":!0":2#:2:::͵,2B:*j:~U";U"*U", #"j:U">2#:- !0-i)'ʗ/"ʗ/ */(~) "~*+(<*:͗,2: g"!:61 U!:~6 !:M:?":$+(-:: !0-!":i)(Y. *!=/::= ^#V#::G> ~7͗,##=( ( ::2:!;=~ ^##))<^#V> :ͯ: : B[:::G>ͼ !:~(t >͡ t t !== ::G> ~7͗,N#F# ͜&#### ~2:#N#Fᰱ(:::9 [:z(> ͼ *S:":%,::*:|đ"!:6*S:":!o: !:6w!9=F!A=( !:6 !:6> 7N* 6!:t x !:w !:w t t x ͡ ͡ ͡ ::Gx x x :͏ xx x {͏ zÏ ad arithmetic operatorBad argumentBad baseBad instructionBad labelBad numberBad symbolCan't backup in COM fileDisplacement too bigDummy redefinedDivision by 0Extra argumentExtra ELSEExtra ENDMACFile not foundToo many index registersMissing argumentMacro not definedMissing )MACRO symbolMultiple tagNot allowed in COM fileNo EQU labelNested INCLUDENo relocateNo MACRO labelNo expressionNo SET labelNo EXTOffset not zeroOut of rangeRedefinedSymbol not foundString too longSymbol t"2:ͺ(!:4*:^+V+"=:"?:͉&";:!"u:!"s:"w:i)(ʷ';ʷ'*ʷ'*j:+"j:*:| "÷'+":*u:#"u:*w:6#"y:*s:#"s:i)(7 #" G' G;(% (! (, *y:"w:N' *w:4*y:wm'*s:DM*u:*;:q#p#6#6#s#r!=##^#Vz r+s+V+^ ::2: &:: * d* d8(ɯ2:::j(*?:|ʂ(+"?:*=:~+"=: > /<2:͉&`i####::O=V(2:'## (^#~2:#":!:~ 2:'5*:~#":!:5(͉&`iN#F###^#V*:":!=##^#Vz'{_zw+s+V+^::o&)))m<*?:(*=:(::g::o(::g:`:os#r#::o&)))m<)":*j:~ͩ)~ͣ)i)ͩ)i)!=!f3":^#V#"&:!":":*:*&:|g}o"c:*:Oz)+)))##*:!: #":~#2:~2:)*c:0":"&:!=":*:|"+":*&:+*:N#Fyoxg#)))*:+~+ngDM+V+^{_zWs#r#^#V+!x(:w#++":*:^#Vr+s*j:~),(U"i):9͜&####[:~2::8:w#~2:::w#~2:::w!<6#6###:8:o&))<[:s#r#~#~r+s:8:!o))<^#V~#y2:O~!w#(((8( ((>?> >'>">*>#>+ɯ2b:2+:*j:"l:~(($Ϳ-*::"::8:2:Ϳ"!:6!/*:::> ::͵,2B:*j:~ (;, #"j:d.*:":!":!:~2:6*j:~#"j:+!0(-!0(*!0(/!1(& !91":>.! .!:6Oi)( i)x/!":"/*:Teo":zG!:6*j:~( ͩ)  #~.(F+~ * = ~ͣ)D(2.(.B(4O(:Q(6H(<"!":::G:A:_*j:"j:/30#0 *=00)G00*Q00*x2:y2A:2\:2020202020*j:*:Ͱ0)0!\:6o|g 00T])))))))!:~::w*:":Ͳ0g1Y1*:*:":x1Y1*:*:{ozgL1*:|/g}/oL1*:DM*:!x0 L1*:| 1"*:}o|g8i`0L1*:*:}o|g0:: ::!":!:6Å"͔1>ȹ7!:p͔1ظ !:6(:9 7::7G::7O*9i2!g%P2*=i2!r%P2*:i2!%P2* :|(i2!%P2*{:i2!%P2*<}( i2!%P2*<}( i2!%P2*<}( i2!%P2!%P2!;=~^6 #6P2))<^#Vi2!%P2:+!:(:9(|DM>2H:2p:!2"V:>02:*V:^#V#"V:bk 8| DM!:4!p:::O0 ~(#6:9(:(:9(:n:(! !H:5 y0O:9(:(:9(:n:! EI ELSE %END ENDIF &ENDM +ENDMAC+ENTRY 2EQU EXAF EXT 3EXX H HLT vIF $IM0 FIM1 VIM2 ^IN INCLUD1IND INDR INI INIR INP @INR  INX IX ~IY ~JC JM JMP JMPR JNC JNV JNZ JP JPE JPO JR JRC 8JRNC 0JRNZ JRZ (JSW )JV JZ L (LBCD KLDA :LDAI WLDAR _LDAX LDD LDDR LDED [LDI LDIR LEAP LHLD *LIBFIL7LIST (LIXD *LIYD *LOAD SDED SSET SHLD "SIXD "SIYD "SLAR SP 0SPHL SPIX SPIY SRAR (SRLR 8SSPD sSTA 2STAI GSTAR OSTAX  STC 7SUB SUI VER 0X ~XCHG XRA XRI XTHL XTIX XTIY Y ~ ƠҬîîĉÉРҮЉȍԍΠ半򮍊κɉĬέ򮍊؉čɉ؉ĉ򮍊ЉΉ宍؉ȉРŠҮɉͬ҉ĠŠҠȠҮÉҠӠ̮Ԡ٠ΠҮډԲ+6+6+6:Wz2>G!:6 #=6!:9;:>G;= = =)>:#> G>w#O:(:9(:><2>=!&:(:9(|!&6 #6P#6a6 # :(:9()>:><2>G>=0 8 :Gy0(w#p#ȉȍĉÉԠŠɠȠҮ։̍ɉƦǠƠſÍډԲ; Pascal/Z run-time support interface ; COPYRIGHT 1978, 1979, 1980 BY JEFF MOSKOW NAME MAIN ENTRY FLTERR,HPERR,REFERR,STKERR,RNGERR,DIVERR,MLTERR,L98 ENTRY PERROR,STMTMSG,CRLF,CHAIN$,STRERR,MAXOUT,MXOUT,MXOUT1,STRMSG EXT ILODV,ILODV1,ILODV2,ILOD1,ILOD11,ILOD12,ILOD2,ILOD21,ILOD22 EXT ISTOR,ISTOR1,ISTOR2,XADDR,YADDR,FSUB,FADD,ENTRSC,ENTER,EXITF EXT FPEQ,SEQUL,FPNEQ,SNE,FPLTE,SLE,ILE,FPLT,SLT,ILT EXT FPGTE,SGE,IGE,FPGT,SGT,IGT,FMULT,IMULT,QMULT,IDIVD,IMOD EXT ERROR,CSTS,CI,CO,CHKDE, *  *  ! :4 ! ! :9 :(:9( :(:9(:  ɇ$ A 8ABS 5ACI ADC ADD ADI ANA ANI B BIT @BSET C CALL CC CCD CCDR CCI CCIR CM CMA /CMC ?CMP CNC CNV CNZ COM 6CP CPE CPI CPO CV CZ D DAA 'DAD DADC JDADX DADY DATA 5DB DBS DBZ !DCR  DCX DI DJNZ DS #DSBC BDW "E LSPD {LXI M 0MACRO *MLIST -MOV @ MTLIST/MVI NAME 4NEG DNLIST 'NMLIST,NMTLIS.NOP NOT ORA ORG ORI OUT OUTD OUTDR OUTI OUTIR OUTP AP 0PCHL PCIX PCIY POP PROG 5PSW 0PUSH RAL RAR RC REL 5RES RET RETI MRETN ERLA RLAR RLC RLCR RLD oRM RNC RNV RNZ RP RPE RPO RRA RRAR RRC RRCR RRD gRST RV RZ S 0SBB SBCD CSBI ɉĬέ؉ĉ宍ԉ؍ԍȠ̠ϠԠӠŠҠΠàΠŠԍŠΠΠŠɠҮƠŠҠӠ̍ΠӠȠ٠ԮŠԠӠҮŠ̍ҠӠԠϠŠǠƠŠҠȠōΠӠĮȠ̠ϠԠӠàϠōǠƠŠҮԺȉȍɉȬƍĉÉԠϠǠƠҮĉ̉ԠŠCHKHL,PSTAT,CONSET,UNION,INN,LTEQ EXT GTEQ,INSECT,ORGAN,COMP,FUSS,FOUT,FXDCVT,CVTFLT,TOUT,TXTYP EXT FDIVD,STREQL,STRNQL,STRLEQ,STRLSS,STRGEQ,STRGRT,LAST EXT WRITELN,L109,L110,L111,L112,L115,L116,L117,L118,L120 EXT READLN,L121,L122,L123,L124,L125,L126,L127,L128,L129 EXT WRITE,L130,L131,L132,L133,L134,L135,L136,L0 EXT READ,L137,ABS,FPABS,SQR,FPSQR,EOLN,EOF,RESET,REWRITE EXT FTXTIN,CHAIN,NEW,MARK,RELEASE,TRUNC,ROUND,ARCTAN,COS EXT EXPFCT,LN,SQRT,SIN R: SET 0FFFFH C: SET 0FFFFH M: SET 0FFFFH S: SET 0FFFFH D: SET 0FFFFH E: SET 00000H F: SET 0FFFFH T: SET 00000H VALID: SET 00000H MAXOUT EQU 4 MXOUT EQU MAXOUT*256 MXOUT1 EQU MXOUT*2 CR EQU 13 LF EQU 10 EOFMRK EQU 1AH BUFLEN EQU 80 TOPFRM EQU MAXOUT+MAXOUT+BUFLEN+3+1 MARGIN EQU 50 COMPILER EQU 0H MAXDRV EQU 16 CPM EQU 5 START: MVI C,25 CALL CPM LHLD 6 DCX H MOV M,A LXI B,0 LXI H,LAST EXX LHLD 6 LXI D,0-TOPFRM-1 DAD D PUSH H PUSH H POP X POP Y SPHL MVI B,MAXOUT*2+1 XRA A CLRSTK: MOV M,A INX H AD: MACRO WHERE,VALUE IF VALUE IF VALUE&0FF00H LXI B,VALUE CALL WHERE!2 ELSE MVI C,VALUE CALL WHERE!1 ENDIF ELSE CALL WHERE ENDIF ENDMAC ILOD: MACRO Q,SIZE,OFST IF SIZE&8000H MLOAD ILODV,OFST ELSE IF SIZE-1 MLOAD ILOD2,OFST ELSE MLOAD ILOD1,OFST ENDIF ENDIF ENDMAC ISTR: MACRO Q,SIZE,OFST MLOAD ISTOR,OFST IF R JC REFERR ENDIF ENDMAC LPOP: MACRO REG,DISTANCE IF DISTANCE PUSH H LXI H,DISTANCE+2 DAD S MOV E,M INX H MOV D,M PUSH D MOV D,HCALL FADD IF F JC FLTERR ENDIF ELSE IF 'Q'-'C' DAD Q D ELSE IF M XRA A DADC H JV MLTERR ELSE DAD H ENDIF ENDIF ENDIF ENDMAC ENTR: MACRO Q,LVL,VSIZ IF LVL-1 MVI B,LVL LXI D,1-VSIZ IF S CALL ENTRSC ELSE CALL ENTER ENDIF ELSE LXI H,1-VSIZ DAD S SPHL CHAIN$: EXX LXI H,LAST EXX LXI H,-MARGIN DAD S LXI D,LAST DSUB D JC STKERR ENDIF ENDMAC EXIT: MACRO Q,SSIZ LXI H,SSIZ+8 JMP EXITF ENDMAC L98: DAD D DAD D MOV E,M INX H MSLE ENDIF ELSE CALL ILE ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRLEQ ENDIF ENDMAC LESS: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPLT ELSE LXI B,SIZE1 CALL SLT ENDIF ELSE CALL ILT ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRLSS ENDIF ENDMAC GE: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPGTE ELSE LXI B,SIZE1 CALL SGE ENDIF ELSE CALL IGE ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRGEQ ENDIF ENDML IMOD IF M JC DIVERR ENDIF ENDMAC NEGT: MACRO REG IF 'REG'-'H' IF 'REG'-'D' POP H POP D MVI A,80H XRA E MOV E,A PUSH D PUSH H ELSE MOV A,E CMA MOV E,A MOV A,REG CMA MOV REG,A INX REG ENDIF ELSE MOV A,L CMA MOV L,A MOV A,REG CMA MOV REG,A INX REG ENDIF XRA A ENDMAC CTRL: MACRO IF C CALL CSTS JRZ $+16 CALL CI CPI 'C'&3FH JZ ERROR MVI C,7 CALL CO XRA A ENDIF ENDMAC RCHK: MACRO REG,LBND,HBND IF R LXI B,LBND IF 'REG DJNZ CLRSTK INX H MOV M,A LXI H,80H CMP M JRZ NOCOM MOV B,M DCR B INX H INITLP INX H MOV C,M CALL TOUT DJNZ INITLP NOCOM MVI C,CR CALL TOUT JMP L99 FINI: MACRO JMP L0 END START ENDMAC EXTD: MACRO INTN,EXTN EXT EXTN INTN: equ EXTN ENDMAC SPSH: MACRO Q,SIZE IF SIZE IF SIZE&8000H LXI H,SIZE DAD S SPHL ELSE MVI A,SIZE CMP M JC STRERR MOV B,A INR B PSHLP: SET $ MOV D,M PUSH D INX S DCX H DJNZ PSHLP XRA A ENDIF ENDIF ENDMAC MLO MOV E,L DCX H DCX H LXI B,DISTANCE LDDR POP D POP H POP B ELSE POP D ENDIF ENDMAC ADDR: MACRO Q TEMP SET 'Q'-'IY' IF 'Q'-'Y'*TEMP CALL XADDR ELSE CALL YADDR ENDIF ENDMAC MIDL: MACRO REG,LEVEL PUSH X MVI A,LEVEL MIDL1: SET $ MOV C,4(X) MOV B,5(X) PUSH B POP X CMP 1(X) JRNZ MIDL1 XRA A ENDMAC DSUB: MACRO Q,SIZE IF 0!SIZE&8000H CALL FSUB IF F JC FLTERR ENDIF ELSE XRA A DSBC Q D ENDIF ENDMAC DADD MACRO Q,SIZE IF 0!SIZE&8000H OV D,M XCHG PCHL EQUL: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPEQ ELSE LXI B,SIZE1 CALL SEQUL ENDIF ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STREQL ENDIF ENDMAC NEQL: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPNEQ ELSE LXI B,SIZE1 CALL SNE ENDIF ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRNQL ENDIF ENDMAC LE: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPLTE ELSE LXI B,SIZE1 CALL AC GRET: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPGT ELSE LXI B,SIZE1 CALL SGT ENDIF ELSE CALL IGT ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRGRT ENDIF ENDMAC FDVD: MACRO Q,SIZE CALL FDIVD IF F JC DIVERR ENDIF ENDMAC MULT: MACRO Q,SIZE IF 0!SIZE&8000H CALL FMULT IF F JC MLTERR ENDIF ELSE IF M CALL IMULT ELSE CALL QMULT ENDIF ENDIF ENDMAC DIVD: MACRO CALL IDIVD IF M&D JC DIVERR ENDIF ENDMAC MMOD: MACRO CAL'-'H' IF 'REG'-'S' PUSH H LXI H,HBND CALL CHKDE POP H ELSE MVI A,LBND CMP M JC STRERR XRA A ENDIF ELSE PUSH D LXI D,HBND CALL CHKHL POP D ENDIF ENDIF ENDMAC STMT: MACRO Q,NUMBER IF T+E VALID SET 0FFFFH EXX LXI B,NUMBER IF T IF 'M'-'Q' CALL PSTAT ENDIF ENDIF EXX ELSE IF VALID EXX MOV B,A MOV C,A EXX VALID SET 00000H ENDIF ENDIF ENDMAC GLBP MACRO Q,OFFSET,SIZE PUSH Y POP B DAD B MOV B,M DCX H MOV L,M MOV H,B LXI B,OFFSET DAD B IF SIZE-1 MOV B,M DCX H MOV L,M MOV H,B ELSE MOV L,M MOV H,A ENDIF ENDMAC IF NOT COMPILER STRERR: LXI H,STRMSG JR PERROR HPERR: LXI H,STKMSG JR PERROR REFERR: LXI H,REFMSG JR PERROR RNGERR: LXI H,RNGMSG JR PERROR ENDIF FLTERR: LXI H,FLTMSG JR PERROR STKERR: LXI H,STKMSG JR PERROR DIVERR: LXI H,OUMSG JR PERROR MLTERR LXI H,MLTMSG PERROR: CALL TXTYP JMP ERROR IF NOT COMPILER STRMSG DB 'String too lon','g'+80H REFMSG DB 'Call by reference precis SPHL MVI B,OFF2 CSETCL SET $ MOV M,A INX H DJNZ CSETCL ENDIF ENDMAC UNIN: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL UNION ENDMAC MEMB: MACRO Q,OFFSET,OFF2 LXI D,OFF2 LXI H,OFFSET CALL INN ENDMAC INCL: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL LTEQ ENDMAC SBST: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL GTEQ ENDMAC INTR: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL INSECT ENDMAC DIFF: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI fxdcvt else call fout endif else call cvtflt endif else xchg call cvtflt endif else pop b pop d pop h push d push b call cvtflt xcfp endif else pop h call cvtflt endif else lxi h,value call cvtflt endif endmac dsb1 macro reg xra a dsbc reg d endmac cmpi macro q,value cpi value endmac svln: macro mov a,m exx mov e,a xra a exx dcx h endmac gtln: macro reg,size exx mov a,e exx mov c,a xra a mov b,a lxi h,size  TDU0LENGTHUS@%9b: L19Q";2USrN'"\ XV^°i+uW͠#$0n! j]jH e'#6>ܭP@i| "xV <@X p6~H6_ CE¯p`Df8hOӸB0"3l0nZ!7AB 0f|"*))m**J4d))")N e5E$UMQIFSTRGRTT`e5E$58MQI9E2:TS#MQIF:$ԕ#MQI1F:6 MQI9E2kͧ`di(v6?"`$ͧ`i0 %^r-+T "ru\ Հ]m+@ @`ͬ-+D!~?/[u_XۮW @p!`dD"$")FA2*rf$#FIb2 "$d8"$"FJ@r2b*e,( )cb2*d#(&*Fg@*2r*S4480L136S`M =N: Ḷ0:S@@`Ef ӻB_.  ڰ!jf *!~?/[uXL j@!..\8\-pvá`ru\ ՀPV4i] 9|ۮW@jBd]w+U6HۮW @ppWxoWۧW_r@ $;V">9Z@`ion erro','r'+80H RNGMSG DB 'Index or value out of rang','e'+80H ENDIF OUMSG DB 'Attempted divide by zer','o'+80H MLTMSG IF COMPILER DB 'Too many error','s'+80H ELSE DB 'Multiply overflo','w'+80H ENDIF STKMSG IF COMPILER DB 'Program too comple','x'+80H ELSE DB 'Stack overflo','w'+80H ENDIF FLTMSG DB 'Floating point overflow/underflo','w'+80H STMTMSG DB ' -- statement',' '+80H CRLF DB CR,LF+80H CSET: MACRO Q,OFF1,OFF2 IF OFF1 LXI H,OFF1 CALL CONSET ELSE LXI H,-OFF2 DAD SD,OFFSET CALL ORGAN ENDMAC MTCH: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL COMP ENDMAC NOMT: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL FUSS ENDMAC xcfp: macro pop d pop h pop b xthl push d push h push b endmac cvtf: macro where,value if 'A'-'where' if 'B'-'where' if 'C'-'where' if 'D'-'where' if 'H'-'where' if value-4 mov a,l pop b pop d pop h mov h,a push h push d push b xra a call fout lxi h,13 dad s push h call dsub b dad s mvi m,cr endmac h push d push b call cvtflt xcfp endif else pop h call cvtflt endif else lxi h,value call cvtflt endif endmac dsb1 macro reg xra a dsbc reg d endmac cmpi macro q,value cpi value endmac svln: macro mov a,m exx mov e,a xra a exx dcx h endmac gtln: macro reg,size exx mov a,e exx mov c,a xra a mov b,a lxi h,size P _d`+ CKH@W64 0 hGPZ,t 8T D3XMEIR: LcMEIRkr^hg7\rn\.\8\"ru\ Ձr@a˭pAHvۮW @pp_r@ $;VXr@/% B_.  ڰ3ܮVhҲ`"ru\XV 9u\ u@j˭p_/Hv 0r]` ڸpD/n\ @ 9|ۮW@j6 9|ۮW@j6 9ۮW @pp_r@/$;Vru\XVhڲ`˭pA`K;W]m+@ @`!~?/[uX3o`j@`˭p @ppX0j_rEbXvK@D%DlerYk/n\"X;V ڲګ""VZڭ@"ru\XVm~mX sܭVmmX 9|ۮW@jh[VB]m+ ]` ڸp[J_r@ $;V/\ 9u\, u@j˭pAHv 0r@ % B 00"h0]m+@ @`!2B.;Ͷ -h!..\8\,:IȩʊJhq*f(,ɪ` `ɩJSV dUd5H0:V#0k^/h!~?/[uXKtj@!.Å!~?/[u` ڰf ӓɺsxH}[uXv.<-+\sźfy3@XV^qYJЀ7F h#Dð tnEr4i^@ W/Zru\ Ճ4mrn\ Å!~?/[u` ڰn-3f K-rjij@`˭p_K;W]m+@ @`! J+TB@V]m+@ @`͡-$!0,!~?/[u_X3h jY`rjO`\j_V6(ۮW ;W]m+V+@j@`˭p_K;WUnV]m+@ @`@.V66]m+@ @`ͥ-`!."ͧ`-|!~?/[u` ڰf0Vr͵ 7=ۦgÕbD%DrY^D 0r@ % B 0̘CVTFLTdDdU%(0ENTRSCUDh̰ FADDTdDdHFLTERRdTHpFPEQTe5(( FSUBDHL118ӀDU%(ȐRNGERRTSd$5D0:TS0j\^h;w]m+@ @`g7\W@gB_. B_.|  ڰ[uXv.0# 9QIM2XQVU/12QU#055U1R2#$A1R3nPՕ deD5eHFXDCVTA#7N$٠tnn03[BRӛB ^m !/764C.QWJMӠuA ͩ± sfE#WN?@-+V+D!`^qYJڀۦB@0E7?ۦ`\ͳ *7?ۦ`FWn0T 6}D f7?ۦ`D f *?@+V+D ^qYNLsV+/6Հۥ땺fM{#+'7 h¡ -tlnJۦ]^~9D R![t n iHFWnQ ͵`ErqT n0"3nJۦ!}?ٴ ^ gm@P@n7/7$;Ls":ғfM{#+FWJL*gnp֯vm0%n+ݥ!`gn6gnp֯vm0%n+ݥ!\{ L+gn6gnp֯vm0%n+ݥ!\{L*Dgnp֯vm0%n+ݥ!bêvjiI3[BRLs":ғfM{#+nۦ]^~+ݥ&m3Mt3M0WJB1fM{#+Kϳa&ȩʊJhqJi(豟PJi)V(nL!}?ٵl.n+ܢpW/8ܬڲһFvn-p!^) h·Mtn1]^[Wtl\XV3M\rY(STS D#0ROUNDUS0: L#I=U9:.US +@7Z -h>zQ2B9:e{,ғȈFADDe$tU%)Օ d5eDdHCVTFLT̀Z!`{TfW(ͺ~X+u +@p\-{2P% 9=I6pQSTdDFLTIN5\9u  >_@+fP ģ000f?M*Vi0f@eQ@0áÐ| zܬMpDcA n s+9p@K, j!, fljiZ(?b6=FaLeX!*)(FL2*ʄfX(*Fb"bzٴ<`e`d0qk8ͮ #S68Ⰳqf0PPPPa@0 u@ fp03^GpYEd?2uCmW+uʯ'm,psWEfháLF h P b/ R=o,;0.f`$ c`ںEuzuEq!r(+"65F`9Hw^eP&7>ܭ!$/PWp*nG|2/Pna|]5x@*99|\- 3K$Bbr#_- ^aVG(3@m:D a `Wܭ0nH[~[V`qw %͢@c;6LFoPn n0` AqXaW@B3o8@5U,ͥc60^G.Kt d*אFmbpV7?.yͶ@nV7?^Gd\f0P D0 `lF aBfGh0t05ph9^O*hk#6k0 |@ Œ][MNi-:A|,v-W+tnҳ^~ٴ kb16 dcV0236zY  pCgé"öC 2FnMЊr9BI@i7A`r< &s EFOA*ʢJtep !M*z4e"'FO**zd&*$Fwbzz\e(")'FBrbz\e@))")FU򚢒j2fszRdZ,Zt 02*RSUS'QTTe5(0:QT0jhXV+U#! 5U1RpQUS TdTHFMULT0Z.n_V([Zw7O;/u u ӸDB_-(n[7* ;[!4.+U-+Ep h@ `$  a0B_-Xa#1=92`QT+5A2U-`I=QI%pQРDdDHFSUBDdDHFADD1De5T) zZVg-~\"h F%+[@ ~Le,(")FQ@2zb*4d-"!QTTeU%(FPERR+ۯ_@u!/rwLd(#&*")NUD4UMNGTEQT`T$tCOMPDeU580GTEQDDUORGAN3@X`͠ Z\ n]c]jK6jeqVuWY +Xl \ *ȡh_.K6 SAVREGUӠd44UH %9:INSECTUSSӣ =9MR:S@%9M R:bUSSӦ`hZ,vݥ& ER;,F~0H C͖#Nzh~uXl pG/Z9r",r j*8TU U5DHPSTAT9D 8\@ K&@6A@m,@ X!WAx1R>,02l$` I12UT$QaQeBp T4DX !-!2:Pc !-!2jD@ :rhHJ8JmptT26Qc"@ %12@TQSѓ4Th=1:FTXTIN L D#0:XSѣ=1::rS0:X Lc 0jr樨 _| `dF~YTDa 3H@`xʤ s 0x#H, >IV|ڐh*[2nQSc&5QIU28UQLc( Q%:2U'SU D0WRITEԒUS#,*,NQSTdDFLTIN5\9u  >_@+fP ģ000f?M*Vi0f@eQ@0áÐ| zܬMpDcA n s+9p@K, j!, fljiZ(?b6=FaLeX!*)(FL2*ʄfX(*Fb"bzz\Օє D5eD YQ2CVTSFPD5eDCVTLd5eE4e Dڡur]c+un O("p#?5X26YVw uqA,ftl7F7ahpy<d+Eg?M*G@Q0mW)bsC$s,(;Hv$St( ج\>C   ћ  jQ oI*Q 8QSdeEDTAQQ::S@AQQ:jt!-WX@j e@\4[@n.L@ cȉ*Ȇ1 8U TdDdH%Y:QU#%Yk\h^Vպ~Xrn]j!(n p)w7Ou, uQ"eX)|!}/* ;[ڬQDuA`H+ Àx{aFf v ErEkvhB3@B Z ` h# B(rnPe;JȦQ q b@˕uۧp`WpP`0h^Vպ~Xrn]j!@!7OX(Ud^fYR@!e  ڸa, ~@ nG@9/QͰ` P'eH‐" @f` !#GU^xB ng6A`rg6A˭,?fp, a COMPOPTDS(FPERRTDHROTRIGeU$4QӑLTDS(DONE2B ~YrU1~[ 9|PFNORMTԓ`Td$5AMPSUBTd$MPADDT5T)!L `UP04 an[(F+wi #" S8Z/Xf(K6!Xl pG/Zkh*HUS TTHE5U1R:<RSUS#E5U1RjJg!4BYX=!Tesм{l|Ϣx^W^wXzxD"[oea2>0P uMNQaհWғ&2STTTU D#(IMR: LIMRj~Yl^#`hb6h8 3@U4PX+W"X Xeg^錔T%DhCLSOTddOPNINE44QTԠTU%$( 0:QTԣ 0jP<,Xe o~/p#~ϋQF!iiꑐ 0:\ LLc]I%Q:ԒUS&M+67\0p 3j-##9mm #nZ/[f땺F.m\eb1p¯ AͶtB7G-I@KHv 7XVYX@~\94  >/Vbtnp Y \,[YpYfaC0=, ʎf\`+2YX ,(a~?۠X%np )[`t HPeCyH Àa@ !86mqw E#?A+na@4p # @}H6' nl譺+ ڭ~@|`X1"(s  f O @>,HE#I2+tn [tVa8 b 3mAW(m+n @zO)@6 mVY/?V tBG-˕YPn^g7ݥ ;xD 'f ͬA X 6YDm-b@n``\'@p J6D8ʹMXApEm[tV˭dGiH` % |0@7N#\ u]m0 nIVqm`<K1yä Y+g@!j1;b6UW@8 `4XlΈBYTOT$4ERRTMFeD((PUSHBDπe$$4SCANe$$4RBLOCKڀ@0\18YeaAfb1"']`4 p]`4 [ "]`4123e$Uu$IDF#@V+, iF#f V+̴s-O2[f`F#fXd\/+of0%|Ϡ'녒! 0o7 q@o8Myp:cI\!Lyp:cI 7MXCLSOTdDTUDX(MOVNAMTHPERRORE44SV ddM ::TSՓScM :j@ |_7 z+' _sFr+/+^7d@!*8%A'3@XAi V +r /GLe #$' A2jze0$FP"zSV TTDU(9QIMEXITFTTDU(ENTRSCTUDiHV(qZ/ݐlVDdinʤ :.PņFF*ʢzd('$"!F@@2B$PU T$ĴH eQ=RDERRSQT 1-=R:PU#1IJ:SQT,#F zB-efe\Ff82PE3@ "!F#jrDˬf@ 8D-Q"pe 3@ V#22(j`!ѢYP#AF4cFTB FTB]`4 hAh@"F ŇBB"d60if(DN hrVh.PuL(YP@ pK`dF#; 0D1 :1 Q?1 ZaCI 2Fr7px:MCI 3MR!kam?.pQ- n8^#p6?VQ_ b0#:@A=A! 2T#0@M1M.pӔ $4 >CSTS$4COD55E9@4٠Pݔ:͠ 4 am,L(F#$A=A! 2:T'S`T=A9=R:BSS=A9=Rj 3@<\- d?\- f"%FfPX8 FD""*d('$"!FH2B$d)")ђS dDTUDXA=A! PUSHBDS 1Q:NAUM! :S@ l4 pDxf@s6=Y @l 녺pX,Ej[W6XW+UɜTSW/Gy2&s{,*4F{twiHp,` eYaXXyWpi ^,͠ 9RWYɜUQe4e$TxSAVREG0\R(F#n˭8SS D#h0L128PT4UxI1N: L0:: L#5I.:ӑU㣠I1NjJlC.VD+9YʽRm ˕9 ll[,ȐHPERRTT4 =5A=BZERCHKTc  =5@:T#iI !.:"Tf 0/cN3>!0^U`e$DDI=QQJROTLEFQ㡠I=QQ2:UI=Q1:Q ?Ⰳ P 3 p]`4 [V+l~X84!0M3@ "!F #B1.pi4A&hb,<`CgLF#YlexDD gq"\(eb)үCk@x |D&@&)uBX *T^7v'S+Ґ|U>HRd#%^7d\!ʽ8ԑS U4UT MSGT`54H M9:TTUS# M:# M1:$# M9kBͣ` mY,ͩ`K62Y~n[09n\-Ktnݪ9J7 EbwKtqZ,֯t\A-+ nO+@-^<"ku tF\\A-+ nO+B-^<"ha8U TDdH%5=:RQU#@%5=k|U=Yg@/+,(s#WB=*Ǖ.uiI^\}0Y3DLOOK+ׂ +dE@`EX B4Y3 DeUARFPGTE TeDXA9F:8TcAR:QcA1R:*Qc`A9Fk<ͥ` `Fͥ`(`8ͥ``*ͥ``ͥ``ͥ`0`>2땺!tnG[7OV`:~V ܀#O7rp "tntn@a+,(A0`nRSTTC%1=ILOD12RS dC#%1=ILODVS`dEc(%MQ=JISTOR1TԌUDE(eJ:RS c %1=:S L%1=: S c %1=:@RS %1=X:DS@%MQ=J:fTԌc%MQ=H:VQ@eJjO#[V$+'8A&;$Gb\IVNpH³qO#[V$+' Cm^sV땂 # ³="dݥ&땢dݥ'땢dT D5HLASTN ܀#O7rp "tntn@a+,(A0`nRSTTC%1=ILOD12RS dC#%1=ILODVS`dEc(%MQ=JISTOR1TԌUDE(eJ:RS c %1=:S L%1=: S c %1=:@RS %1=; Pascal/Z run-time support interface . ; COPYRIGHT 1978 BY JEFF MOSKOW ; ; This is a collection of macros for use in constructing ; external modules from Pascal routines ; NAME EXTERN EXT FLTERR,HPERR,REFERR,STKERR,RNGERR,DIVERR,MLTERR EXT PERROR,STMTMSG,CRLF,STRERR EXT ILODV,ILODV1,ILODV2,ILOD1,ILOD11,ILOD12,ILOD2,ILOD21,ILOD22 EXT ISTOR,ISTOR1,ISTOR2,XADDR,YADDR,FSUB,FADD,ENTRSC,ENTER,EXITF EXT FPEQ,SEQUL,FPNEQ,SNE,FPLTE,SLE,ILE,FPLT,SLT,ILT EXT FPGTE,SGE,IGE,FPGT,SGT,IGT,FMULT,IMULT NEW EXT MARK EXT RELEASE EXT TRUNC EXT ROUND EXT ARCTAN EXT COS EXT EXPFCT EXT LN EXT SQRT EXT SIN R: SET 0FFFFH C: SET 0FFFFH M: SET 0FFFFH A: SET 00000H S: SET 0FFFFH D: SET 0FFFFH E: SET 00000H F: SET 0FFFFH T: SET 00000H VALID: SET 00000H CR EQU 13 LF EQU 10 EOFMRK EQU 1AH BUFLEN EQU 80 MARGIN EQU 50 COMPILER EQU 0H MAXDRV EQU 16 CPM EQU 5 FINI: MACRO ENDMAC EXTR: macro intn,extn extn: equ intn entry extn,intn endmac EXTD: MACRO INTN,EXTN EXT EXTN INT ELSE MLOAD ILOD1,OFST ENDIF ENDIF ENDMAC ISTR: MACRO Q,SIZE,OFST MLOAD ISTOR,OFST IF R JC REFERR ENDIF ENDMAC LPOP: MACRO REG,DISTANCE IF DISTANCE PUSH H LXI H,DISTANCE+2 DAD S MOV E,M INX H MOV D,M PUSH D MOV D,H MOV E,L DCX H DCX H LXI B,DISTANCE LDDR POP D POP H POP B ELSE POP D ENDIF ENDMAC ADDR: MACRO Q TEMP SET 'Q'-'IY' IF 'Q'-'Y'*TEMP CALL XADDR ELSE CALL YADDR ENDIF ENDMAC MIDL: MACRO REG,LEVEL PUSH X MVI A,LEVEL MIDLER ENDIF ELSE Error Main programs may not be externals JC STKERR ENDIF ENDMAC EXIT: MACRO Q,SSIZ LXI H,SSIZ+8 JMP EXITF ENDMAC EQUL: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPEQ ELSE LXI B,SIZE1 CALL SEQUL ENDIF ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STREQL ENDIF ENDMAC NEQL: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPNEQ ELSE LXI B,SIZE1 CALL SNE ENDIF ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRNQL T,QMULT,IDIVD,IMOD EXT ERROR,CSTS,CI,CO,CHKDE,CHKHL,PSTAT,CONSET,UNION,INN,LTEQ EXT GTEQ,INSECT,ORGAN,COMP,FUSS,FOUT,FXDCVT,CVTFLT,TOUT,TXTYP EXT FDIVD,STREQL,STRNQL,STRLEQ,STRLSS,STRGEQ,STRGRT,LAST EXT WRITELN,L109,L110,L111,L112,L115,L116,L117,L118,L120 EXT READLN,L121,L122,L123,L124,L125,L126,L127,L128,L129 EXT WRITE,L130,L131,L132,L133,L134,L135,L136,L0 EXT READ,L137,L98 EXT ABS EXT FPABS EXT SQR EXT FPSQR EXT EOLN EXT EOF EXT RESET EXT REWRITE EXT FTXTIN EXT CHAIN EXN: equ EXTN ENDMAC SPSH: MACRO Q,SIZE IF SIZE IF SIZE&8000H LXI H,SIZE DAD S SPHL ELSE MVI A,SIZE CMP M JC STRERR MOV B,A INR B PSHLP: SET $ MOV D,M PUSH D INX S DCX H DJNZ PSHLP XRA A ENDIF ENDIF ENDMAC MLOAD: MACRO WHERE,VALUE IF VALUE IF VALUE&0FF00H LXI B,VALUE CALL WHERE!2 ELSE MVI C,VALUE CALL WHERE!1 ENDIF ELSE CALL WHERE ENDIF ENDMAC ILOD: MACRO Q,SIZE,OFST IF SIZE&8000H MLOAD ILODV,OFST ELSE IF SIZE-1 MLOAD ILOD2,OFST 1: SET $ MOV C,4(X) MOV B,5(X) PUSH B POP X CMP 1(X) JRNZ MIDL1 XRA A ENDMAC DSUB: MACRO Q,SIZE IF 0!SIZE&8000H CALL FSUB IF F JC FLTERR ENDIF ELSE XRA A DSBC Q D ENDIF ENDMAC DADD MACRO Q,SIZE IF 0!SIZE&8000H CALL FADD IF F JC FLTERR ENDIF ELSE IF 'Q'-'C' DAD Q D ELSE IF M&A XRA A DADC H JV MLTERR ELSE DAD H ENDIF ENDIF ENDIF ENDMAC ENTR: MACRO Q,LVL,VSIZ IF LVL-1 MVI B,LVL LXI D,1-VSIZ IF S CALL ENTRSC ELSE CALL ENT ENDIF ENDMAC LE: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPLTE ELSE LXI B,SIZE1 CALL SLE ENDIF ELSE CALL ILE ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRLEQ ENDIF ENDMAC LESS: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPLT ELSE LXI B,SIZE1 CALL SLT ENDIF ELSE CALL ILT ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRLSS ENDIF ENDMAC GE: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPGTE ELSE LXI B,SIZE1 CALL SGE ENDIF ELSE CALL IGE ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRGEQ ENDIF ENDMAC GRET: MACRO Q,SIZE1,SIZE2 IF 'Q'-'S' IF SIZE1 IF SIZE1&8000H CALL FPGT ELSE LXI B,SIZE1 CALL SGT ENDIF ELSE CALL IGT ENDIF ELSE LXI B,SIZE1*256+SIZE2 CALL STRGRT ENDIF ENDMAC FDVD: MACRO Q,SIZE CALL FDIVD IF F JC DIVERR ENDIF ENDMAC MULT: MACRO Q,SIZE IF 0!SIZE&8000H CALL FMULT IF F JC MLTERR ENDIF ELSE IF M CALL IMULT ECPI 'C'&3FH JZ ERROR MVI C,7 CALL CO XRA A ENDIF ENDMAC RCHK: MACRO REG,LBND,HBND IF R LXI B,LBND IF 'REG'-'H' IF 'REG'-'S' PUSH H LXI H,HBND CALL CHKDE POP H ELSE MVI A,LBND CMP M JC STRERR XRA A ENDIF ELSE PUSH D LXI D,HBND CALL CHKHL POP D ENDIF ENDIF ENDMAC STMT: MACRO Q,NUMBER IF T+E VALID SET 0FFFFH EXX LXI B,NUMBER IF T IF 'M'-'Q' CALL PSTAT ENDIF ENDIF EXX ELSE IF VALID EXX MOV B,A MOV C,A EXX VALID SET 00000H XI D,OFF2 LXI H,OFFSET CALL INN ENDMAC INCL: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL LTEQ ENDMAC SBST: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL GTEQ ENDMAC INTR: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL INSECT ENDMAC DIFF: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL ORGAN ENDMAC MTCH: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL COMP ENDMAC NOMT: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL FUSS ENDMAC xcfp: m call cvtflt endif else lxi h,value call cvtflt endif endmac dsb1 macro reg xra a dsbc reg d endmac cmpi macro q,value cpi value endmac svln: macro mov a,m exx mov e,a xra a exx dcx h endmac gtln: macro reg,size exx mov a,e exx mov c,a xra a mov b,a lxi h,size dsub b dad s mvi m,cr endmac ; ; Pascal routines to become external modules ; (remember to include the ENTRY statements so that the linker can ; find your module) ; LSE CALL QMULT ENDIF ENDIF ENDMAC DIVD: MACRO CALL IDIVD IF M&D JC DIVERR ENDIF ENDMAC MMOD: MACRO CALL IMOD IF M JC DIVERR ENDIF ENDMAC NEGT: MACRO REG IF 'REG'-'H' IF 'REG'-'D' POP H POP D MVI A,80H XRA E MOV E,A PUSH D PUSH H ELSE MOV A,E CMA MOV E,A MOV A,REG CMA MOV REG,A INX REG ENDIF ELSE MOV A,L CMA MOV L,A MOV A,REG CMA MOV REG,A INX REG ENDIF XRA A ENDMAC CTRL: MACRO IF C CALL CSTS JRZ $+16 CALL CI ENDIF ENDIF ENDMAC GLBP MACRO Q,OFFSET,SIZE PUSH Y POP B DAD B MOV B,M DCX H MOV L,M MOV H,B LXI B,OFFSET DAD B IF SIZE-1 MOV B,M DCX H MOV L,M MOV H,B ELSE MOV L,M MOV H,A ENDIF ENDMAC CSET: MACRO Q,OFF1,OFF2 IF OFF1 LXI H,OFF1 CALL CONSET ELSE LXI H,-OFF2 DAD S SPHL MVI B,OFF2 CSETCL SET $ MOV M,A INX H DJNZ CSETCL ENDIF ENDMAC UNIN: MACRO Q,OFFSET,OFF1 LXI H,OFF1 LXI D,OFFSET CALL UNION ENDMAC MEMB: MACRO Q,OFFSET,OFF2 Lacro pop d pop h pop b xthl push d push h push b endmac cvtf: macro where,value if 'A'-'where' if 'B'-'where' if 'C'-'where' if 'D'-'where' if 'H'-'where' if value-4 mov a,l pop b pop d pop h mov h,a push h push d push b xra a call fout lxi h,13 dad s push h call fxdcvt else call fout endif else call cvtflt endif else xchg call cvtflt endif else pop b pop d pop h push d push b call cvtflt xcfp endif else pop h acro q,value cpi value endmac svln: macro mov a,m exx mov e,a xra a exx dcx h endmac gtln: macro reg,size exx mov a,e exx mov c,a xra a mov b,a lxi h,size dsub b dad s mvi m,cr endmac ; ; Pascal routines to become external modules ; (remember to include the ENTRY statements so that the linker can ; find your module) ;