HDOS:II  QSYSTEM 200H 11035C -------- DOS  SHORTCUT PHD5DOS (P HD18DOS 4(PHD5TEST \'+ MWCHK1232d TOTREC +&HD18TEST"+ HDCHK1  / HDCHK2  RECMAIN HDCHK3   COMREC  INTRO 'PSYSGEN ): EQUS F N*S G P È áZ!ù|Ã{U  : h 1u>2>!uG]yg> gy?Oڑ o&"Ϳ~{=! >&i-~YZZ!~q*~}OG<:+=ͫ:57@>:!>wG#7wG# #>:>:>Wr! _r/<_: .:oVoVoV:;8‡=…:4/Gİ:%«r::í::20íx̭ ::>@>:2G#2G# s9>:::=:E::\:I~_G#~_G# ^X*>?H41u: PRE-BOOT">TH0H,>DHy?0H,>SHÀi, >2!+6 T]͎7 ,7 ,7w#͎[͎ 7:/!O:o&>",{H̫:+Bd2a{2> >"w#Gy@O:u2Ox2y=Ҙ=f*:!h&)T]))o|g:!9"C_y?x755g} W /2h""M\V**|E.} W\MVyW:4J>FD"2~ >2>2/!"͓: }7*y2*!"!/:O:o&>"" :/!:/# ~ CN#F !͞ "<":/2/â~ :h:h=eP, O4:3=2F.# hC,C~),SʚD.o&~º,#C4 ,PRESS RETURN TO CONTINUE"0  0   /"*x,:.G. :  . .s#r#^#V#G2 "HP͎w [0,,,Oy2m}2:32>l*~ ʜ#"#z+{OCC~怱O~#,{Cz 2"*>W TEST NORTH STAR DOS 5.2DQ AT "COPYRIGHT NORTH STAR COMPUTERS, INC., 1980>! u]ͫ:>=w:tz2;2>!6Y#=:0 P!4Ã! F#   >@ RAM PARITY ERROR (/>/>>: (((/>/>/>ɯ>>>7>7>@!T]< :+0> G^> xx>h ((xx >: 7?P 7!U   @ ! @.À__4 4 @ .ʀ+ wG.  .# {GO INTRO ͎ u u !͜ ,))))o͎ † 0:ҧ 0_AG?7u 7!:,0,T])))_͎ ,û ͳ ,|,}u _D S ,u ,!"!{"-2+. !U _,~_#~W#"!M ͞##D ##3 {C(CR/ DEy GOJP RD WR IN LI TY LF SF  +6  ̀ *> ,G~怰w¼ ̀ #>  :OCCz,~怱O{̀ ", ͳ ,  ,,[̀ xO}* < ,i,t,ͳ ,*~Aܳ x2n #|g}o:OCDM+ ,,>q#p#:w#q+w˜ [ xOx/G!6 #6 #· C!> ", = *~# #> ~#"o[|!UPFxP> #>G> Y$Py*"QP!7P"!sR"SP*SP~GP#"SP*QP" SHORTCUT, Version 1.0.0 This program is a shortcut for your convenience in updating a hard disk running HDOS release 1.B for use with HDOS revision 2.0.0. It will issue a set of commands to delete the files which are to be replaced. When this process stops, issue the command GO TOTREC,1 to recover the updated versions of those files from the HDOS INITIAL RECOVERY DISKETTE. Be sure to give the answer NO to the first TOTREC question. Are You Sure? AS SYSTEM TY TRANSIENT RW DE \ DE TRANSIENT TY BACKUP RW DE \ DE BACKUP TY BACKUPS RW DE \ DE BACKUPS TY BAKEXP RW DE \ DE BAKEXP TY CLEAN RW DE \ DE CLEAN TY RECOVER RW DE \ DE RECOVER TY RECOVERS RW DE \ DE RECOVERS TY RECEXP RW DE \ DE RECEXP TY RECMAIN RW DE \ DE RECMAIN TY HBASIC RW DE \ DE HBASIC TY FPHBASIC RW DE \ DE FPHBASIC TY DT RW DE \ DE DT TY EQUS DE RW \ DE EQUS S͆\ T$ÝPY Xa!m">"í ]"S!)% h>J>>:=>x!F#   >@ RAM PARITY ERROR O!P&GO HBASIC (/>/>> (((/>/>> >>>`/_> >>>@!T]<>>>7>7 !+~(>G^> >>>`x> >x>) ((xxP>7?7$`=( P +h H›@T` x(̀G x  2  * : OSy!^^^^­= QYz/y{/y͋ : O x y_ xKxyOxo( G >qu ͮ [^   : O>y>yyy>y : ju xsccLyHx>= xM= x@u pu@  2   @: ( Xs#Xs#Xs#Xs#Xs#Xs#Xs#Xs#(Xg R ͮ (>n! ! ͼ ͋ O &W:(>p! :(2 * : OW0! >o! ü >ku PXx/x/  2  (: G(2 ! 4~#( V bx #x #g ͮ [|>m! ! ͼ >l! :+(2 y(x: I #! :A(! :" 2 G  o(}_  (~g O q>@ _ g G(K > @(bbh= 2 *   w<w: 6 (F (G* Fw#~2 rz@O2 0/ >y y : = =:2 [zW{ {{@: 02 F u   :  G >q( z >| @(| @ < !:_: _ e: PO $<( >{ : : t! (! >i - ê ! ! rͼ ̓ :  O? ˩> : xo x0 x@W  x  x+~+<(>~+ #K~(>#~ :>: su } ~22 : G((C!#w#/w     *#": 2 * #" : 82: =2 D >u !#w/#w: D :G<8: >s_<2x(2:2 * " * " *" : 2 : Gw2 O7: 2* " * " * ": 2 * 2 : O(G [[** [ K : G: G: 2 4~#(02 4 5!4~#0: ! u s,15(!"48>.G !G _#!~#fo{,25S= 8>>'!1 Aħ~ħ>(fnR>0ԧ-,̧V^!96rs66uV^!9ͧG2{,33>*= !eqѷ!"41qxG15D <! <>G> Y*3b3:/eG*0+R>":/O[0"0ox2/>eGm~>$~>/6ifn~>'?ͻtu!?!?6Nq~wNqFNVpqrwwwww/wwirr?ͻ!?:.( Ͳ4frsA\[2rs~ O:.w FNV^V^~ >)5?.ѷ!?rs!?666V^i4DMfn+|#>%([0R(J M`iy6i4FN x>&?.ѷV^ѷM?ͻ!?:.eG?.!? >:.eGmpqrsim~wiV^~ >)~=>6~>#͓|3B>'|(#~ 0>0zu{uGw͘p qHͬ>'V^yA\>fnV ^?ͻM#`͓-GJ |(Gu r sx- F Np q 6 fntu6 6 V^fnR#>2NB>1>-`iBDMapBRAfn~͞tux w oy!FN##x>0OèB< ~ R>RV^># 8 N!"4!xg:.G!"4!xg!^ͧ -!"4:.g~<( !R swͧ>^V ^ z>+>>ͳ* "BK[[R !#( x Bz>BK>ͳ*B"^sut^snf66*4*2!^zWK>*4R(*2!M"4y_>!*8"8::=2:6*8'''Wrs!\ fnR *8R(::=(>> *8R#DM::<2:*8R"8>2:!_"8\V^y\i  :.>Ͱ x2."2!"4~ 2.fn"2!"4# x O/G/O~w}<<<G>'~ 0͠<(-(, >͠<( >- >, x{y~   >ɯ ͒>͒*;#|+( yѷ>,>-*;#|S;!";0>zW:/G K( so>so! >!~w#~w:0O:1OͲ> ́:/GoK>soͲ> y08:0>  ́> s>!GͲ( >+>S6ʹ>'~>#:.i~>~wH:.i:.Bi:.Ai([?[M!:06(6'6*6)6+6-6,!"4!xg!xg?ͻ !? :.>>*V^tuR!!96666rs|(!"4!+(!9ɯ~>;!~ ͜R0!b3!.p5!2/"0!&hͤ!RBKM!9!#P !#9!222xdG26|*&h)!fn|>4#|+>xiM!:G>2[S=Sfn|+}+>2>25:%%:&1>7ɯ25*'<"f/n.xX:X>8*=[|s|o}s>9tu2>!)~2=66:>i}:= !+|¸z´2625Ͱ) 6#6 ixe8?0>!o&G!y~ ~ | }(0fn# x ˯?.!?>y~ | }> x Ͳ>͔>AͲ>͔>ͣ>y0 8?Ox ؀'؁G~#O, 8ɯqxs# G!|7?ɷG!|7?#:# x ~#,? !?#_xF> # !"4:.g:.g!9~w~w:6w:7woyMMOxxG!9|29"726>5d 12*P qD$fZ| message code Cold Boot ?zկ ( :  Y 2r(Q0Mշļ 7 wO#7wO#!u(<>  - *q>*sG* :kOx25*o!!>* &@:(:>?: 4>>G*k-~Y^ 6YGp(4G! v/ >!:kw(* * w>:- >J>G- 8:;= ͼ::(:0 :: :0BO#BO#::+::: :xO: ::j_x8~_O#~_O#:u_*4:g:k=) =2u|!!u4!D!> 7ý!gy2k=0y82m<2rL̀ x(> 0> 8+ > 8!9"s: 22- B8} /_8"oQL*m~z0"0#Gxg2j|DK>(x`*mo/G~vy %:+0z *q vv25>?a$N$(>Ta$0a$F$>Da$y?0a$F$>Sa$$N$( !$+6 T]͑$7 ",7 ,0"7w#͑$p$͑$ 7:/!$O:$o&>">25O#y$}2$>"$2$~ !">د2$>2/!"$͹":$  7*$":/2/y2$*!""!/:$O:$o&>"" :/"!:$ N # ~ (\$N#F !$͠$8"$25,~ (F$FH$# \$$F$\$~t#)$F$S(DH$o&$~= F$~#\$(0-$$PRESS RETURN TO CONTINUE"N$:$! 5##f$ N$:3=2 <2 0-$-$0-$-$-$/8x( :8G :$  H$ s#r#^#V#G "a$͑$( (08 0 (Oy2$> E#*$~ (#"$#z+{x˸>>+x ><! (v>%%8u(j%0d>_ w#6 G ˸6 ! %$@(Z_(( 02((O(O(r(' (p (q(.(((>$ ^>T%0>$> $>>@$>7>3$o&$ ( |%8=%8%8 ˸x > % 6 7x> %7o&9~8 <(+~07 $7% F&1D!YY""!~-~(f(,~>=&&:#&z2;>J!"51N͑.!" :5!06ʺ(: >\ !5~6!-l(y͟'͑.(k/#" \(:DH252D:32 .̓G͑.&0g!z&k/!0_!0WoH##&##¼&yt&&HAC|6AD6ALJAR6AS6CD8CF@9CR:5DAV@DEC5DH`@DOV?DS ADT'EB?EM?EP}?FM7@GOAHE.KIL@?INCJP6?LFBLIIMC;MD5MLcJMM@ODI?OFwHPANPOl?RDBRN7RSHSFBSL8SM@STMSXHTY6VM@WRBWS>ST'VF'VD'>Gt&!-l(y!i8" O:D2D!6~6o yF >}hG̓GB͍(&GͿ>x(#C͍(:9eo&GͿ>D͍(*7:/Ϳ>͍(̓G2D!9F:9Fݦ<(>J( !-l(͍(̓G!*E:*Eݦ<>J!-l(͍(ÃGH͍(8( *>%0YʃG̓G>It&F(#N# !+.F#N# GFcOy>5t& !(~# ~(>~#(*>͍(ÃGe>J(~(xi >26ß&North Star Operating, Version 2.0.0Syntax Output Device Sync Orette Available˒ Transfer To DOS Port CF MC on Boundary Full Expanded KeywordGO One Attribute Size Lockedͭ Text OnEnd of Exceeded Newing A Only Making Partial Block Execution Message ValueSingled:::: Unforeseen Yet ImplementedAre You Sure? AbortedWork: EmptyĻ Field Changed . . . Waitingʖ In Header In Data Seek Relativeʯ RunningControl-C Stop Completed˒ StructureBad:Unused:Overhead:Used: Track SpacingIllegalExtraneousDensityLengthMemoryByteSectorFileAccountNameNumberDiskHardSystemDirectoryErrorAlreadyTypeCommand FoundMissingProtectedRequiredAddressetteSourceDestinationExcessiveNumericSpecification In UseWARNING: CopyOptionStructure Contaminated Line LongNotMicro DiskTooDriveSide ControlReadWriteVerifyDeletedCannot BeAllocatedion FactorArgumentOut Of RangeOpenTableSpaceˆ ReadyCRCFullMismatchRevision =!@>!A*6COPYRIGHT 1980, NORTH STAR COMPUTERS, INC.:  Y3   bLM4zNO) +!#$,%-&P'[(!+31(2W4X6}RySvVuVtSpVoSnTmUlT7]3 \1D!"!"!."!F&"-!"!"-2D̓GB͍((>o&GͿ>C͍((>y0*>Ϳ>D͍(GͿ>g&!~=(CPH>=*>!CPG ~#" =+" =(=(>%t&H0GG0xG)Gk/# ^HE02D>t&* ~# n/+" 0?:͍/>$t&k/͋.7!ʹ/T]͋.* +" !0100O)ܱ/)ܱ/)ܱ/)ܱ/oBK)80)8- 8*)8' 8y 8!0H('T(100x(p>Kt&Ox?y>t& 0p ^Ha8{0߷0:00AG?76͉/>$t&|yt&}`0Ê0k/!0S(D #" ~͋. +" 7#" k/͋.>'t&k/^HOTk/!0>t&!0>t&RFͣ0MO+0* " k/k/͋.0~͋. #, V#^+~ (͋.(#zy/{0͋.7 7yt&}o|gk/,;1#~y/;10;1O#" 08(>~#!8*> 9>:D*>> *>G_|@N H̓G7Y> H(~7:D262DQʹ(2D:9eGe>J((~ 1 xe1O>+Hyɯ26'K>J(~(!-"652+5C,5S.5"05"25"45"85J*85*45*25*05[.5K,5͈18 :+5*65p&)\2xt&)=<з7yt&*\2xt&->2(p&%>"D"D! > ڠ2y:EON!13"*D!*Eď3͢.!-p&:E=O:E=2y2<2=!N=26 #2 *DN!9Fď3!-p&O*D O*D }O|GÍ2¼.*D1:D(}͢.EO!E~w,G:EOs3}!N=3 w36 # x3#xù2 "2Ex2E"E"E!E>27ɯ2E2E2E2E>2E2E0`4!E"E4͉/:E8 z>t&{52E͊0>2g&2D D"E!9F>J2D !> J͘'!> JĘ'>J(!DĘ'>Jz&z&!Dz&g&*p22E!i83R24Y00͉/Y0(x2E2D0#<4!Hq#p#:D_:Ew#!E!,( (w#6 #"Dg&*D|<͉/0:EOHGDM>8+ >t&0 ( 0x >t&!"Dï30͊0\5O2+6  !*Ex2V>,t&!> 1>1>1>?2D0"D͊0~y/8K>1nf>15!@> G<~'K^V@>'Kd" ;HO!76"!#>y <,UG<"͢.!J !~ (H6¼.͢.˹>:32 E1DS 8=>,*D8=> C5(ô(>>0͊010͊0>1nf>10͠00͊0>106͟7͊0O2##N##~怰w# !H64q4k/%0G0K#B8 ~%0U(<D ~%0P(.H *͟7x=(>1^x(^VN>1k/͋.( 7"ð& >1ˁˁˀˉˈˉˑˑːSC[7BUb7RWi7ROp7DPw7DE~7͉/>$t&{怲>t&C͍/> t&?0yt&O2͠000m2͊0O2+6  ( ͋.(w#40j8z!c833p2"DO22E͉/>$t&͊0N#F#&H~(#<@>0 *D@>>t&PY4F(+r+s4@@_ ͉/>$t&͊0>1nf@>F(!*Ex2t&nf^V > Jg&ѷ!-p&F(;HG2E͠0;HO2E2DHG0"HHG0k/!0N(+Y(͋.0͊0)k/!0N(Y >;t&͋.0͊0:4.Ĵ(^!͍2Zô(!" E1x9(==R2O&HSD&H~怱2Er9)~2E>2E2E2E#E :y0O2E>2E2E2E2E2E2E`0xʶ9y2EHG!"DRx9)=2EW_SD!*E-{2x2ESEy2E~ 2Enf)>&t&2E~2E:ð&TO":SL:CR;1x(z0;SD>R2Y0͊0O: >t&&HSD&Hy2E:Ewn:)!E*D|4[;1>t&xt&͉/" E͊0"E>!-"652N>t&:EG[E:EO>J!-p&!9F{2* E|<> 12Ego"D" Enf)[;![;"Dk/3[Dz::EG:EF:y02EF(Y0:EOxG;y2E!"DRxZ;)2D@>0/ʹ(DM:E=z;8͔2!9F:9Fݦ<Zʴ(!NN6* E"E>J(1( 2(!-͛'Zʹ(>J!-ě':EG*E>J!-p&0"D;ð&CR;TO;YN1>?2Dk/"D*D~y/8^>!-"652nf>1U<!@> *D#~͋. " ~'K^V@>'Ki" ;HO!<"!#>y <,U "͢.!J !~ (<0¼.͢.˹>:32 +=E1?DS 8=>,*D8=!B=+=8=>,K*D@9(7*D~y/~!8= CR 6k/"('(͍/0zyt&Ck/^H^HG^H"('0k/͍/>$t&k/,(- ^H͍/0^H͍/0+@>>2t&ͅ==DMT/ͅ=Ê0̀/Ê0ͅ=k/͋.>$t&!EI=p#^H,(SDÊ0G>x0:*>*>(>|>}>> G:D > (> z{J>(>~>@>7(# (>>F>8(>F>̓G>>͌>8(>͌>8xG͐>(> (>~>-8y*>~~00y*>@>7(# ۷>O(> ůT/͊0J͍(Ϳ>!NG>h*>(>>-*>(>*;.+G>h*>(>>.*>!N:/>t*>(>>-*>:/>t*>ÃG̀/>* ͊0̓G&T/͊0:D2=T/^HO͊0GHI=͠0PE=͊0HQT/E=͊0HP(>y>(>T/=V>T/I=͊0P>>:*>>>>0*>y(> ja>>G>t*>>>W>>h*>z~҃G ڃG>>z>-*>z*>ÃGͽ=x y0 ~@>#1 MD@> =!DE~w w@>#5 =>2D=2Dc>:Dw>> >Yt&T/ͽ= (#>~>(> >(>i`>̓G>|@@>#T/=E:DG # > >|@̓G@>ʃG# 5>G>>x#,( 0aA=͆A>܃A͏A108GO͏A108FHG͏A( (,( 0p5>>AOp#(>aAp#(>> 8~>>=+H(>( (_(>{H>fAɯ%0|@( (_*>>_*>>0BO2O&H&H~#=(>!t&{>&t&z>&t&C&H!N@>0 1!(ͯ.! x"ͯ.1([ > 10=PBO2O&H&Hz>&t&~怱O{"!*Ex2!Ex2E(>t&:1E>&t&:0E2E"E>&t&!"E>1BB͠0=B͍/͠0B͊0:EOzB<!*E͏3g&G0G>t&k/%0S( D ^Hù02E͉/, ^Hyo;H2EFOͣ0> t&0cC\2O&H##~怱2Ext|>t&x<̓C!*Ex2t&!*0E:>t&F(!NN6 ;HOY0>t&͊0xO! {N"ҵC yW:4OG>FDPRESS RETURN TO CONTINUE":  =2 H>|@:D! 5:3=2 _G0H|@ H>*>0GGG0GGG/"DG*DxH:HGH :D  H Hs#r#^#V#G "+H0Hk/18<0O#~"  ċ.y2E>t&* ~͋.mH#" #z+{F(͉/8͊0|>t&E>1>ͯHyQʹ('KʹHy >+H2DUi26xdȯyO:DJˁ(}((~(ˁ͘'F(͊0>͑H> 2F(0͊0> 1T/0;HG^H( >+t&͊0*Dxb">1͋.(0>1nf"D͊0>12E_W>1̈́I!@> ̓GE͍(!EGJC͍(h&GÃG~ -^VͰJz #^VͰJ*D@> E'K*D@> GJnfH/~o>(- o&GHHSF AHWN(AHU~ AHDV(AHnG-}ƒG}nf Ϳ>GÃG:/ÃG(>~y>F#x  H ÿ>T/͊0d26xi>J}(xe( ̓G !"D!"EKI*E|(̓G*D#@>*E|7@>SET/͉/0!e͊0>1|>t&E>1J!@> ~'K~'Knf:/(>GJ̓G|@* k/͋.~K!0W!0_͊0O!&~eK~eKBHCHK ####y-KK-K!&-FHFH H HʴK####‡K.;K.þK/OyR>5t& !K~# ~(>~#K*>;KÃG newaccountnamed1 d2CFCF [len]CFCFCFCF {daddr} {[char]}d{[command]}dMC YNMClines floppyname,d floppyname [filetype] {[raddr]} [attr...] HelpaccountTOCRSLOFIllegalOption{,d}pathnamelenraddrbval{[args]}region[#n][account]{d}{dens}{[#n]}{sides}{len}[alloc][d]paddrFROMdaddr{[]}12MDCF[len] {[,,...]},d ͉/0!e͊0|>t&E>J˜'^͍(:/yN`͍(f-n,nN:/yNa͍(RR:/yN_͍(f(n'nNѯR:/̓G< H H͉/>$t&͊0| N}ʠN23>t&(AHU~ AHDV(AHnG-}ƒG}nf Ϳ>GÃG:/ÃG(>~y>F#x  H ÿ>T/͊0d26xi>J}(xe( ̓G !"D!"EKI*E|(̓G*D#@>*E|7@>SET/͉/0!e͊0>1|>t&E>1J!@> ~'K~'Knf:/(>GJ̓G|@* k/͋.~K!0W!0_͊0O!&~eK~eKBHCHK ####y-KK-K!&-FHFH H HʴK####‡K.;K.þK/OyR>5t& !K~# ~(>~#K*>;KÃG newaccountÝPY Xa!m">"í ]"S!)% h>J>>:=>x!F#   >@ RAM PARITY ERROR O!P&GO HBASIC (/>/>> (((/>/>> >>>`/_> >>>@!T]<>>>7>7 !+~(>G^> >>>`x> >x>) ((xxP>7?7$( P htH9@…p(!x(!D" " " * [ K x(!D" " " K [ *  ͩ 2 >>`'<::::::::: >!* ^^^^= QYz/{/F> >`> > q ʌÏp ͩ 2 ں@: ( Xs#Xs#Xs#Xs#Xs#Xs#Xs#Xs#(X R q EH>n! GR Rẍ́ LF>  %W:(>p! à :(2 !* W(o! >k PX// ͩ 2 0: G(@2 x͌  Ó # # q ڌmR 8! lẍ́ `( ( x(~ ͸ x  ( x: P G (1x > > ͸P >~͸ 0 P*: > !>`+~+<(R 8>> ~+ #K~(>#~ :> 22> `` !:=k>)_: _ i> U>0  {>z >: >   >{ 0 >t! ͠ {s! |   0 ͭ {  (( >  :+2 y e> >C A>6 2 >>`=>U> >>` + %U  > /o w(x: R 0}y }2 [z@G: >w ɯ2 : 2 : A2 S S " " "" "!9" ** R8x  y >s }G ~22 : C!#w#/w ' $!( %") & # *#": 2 * #" : *8*2: =2  > !#w/#w: :G<8:<2x(2:2 * " * " *" : 2 : Gw2 O7: 2* " * " * ": 2 P y 8P g> {a y 8>  >|x> >|> >|>>g >_ 2!~4#0 ! 4 57! ͱ >kĆ( z  <DG(!~4#>r G(>q >|! ͱ * 2 : O([[** [ K  : G: G: !~4#! x > >>` * 45x ! x ! x ! ~4#8 !  x !4~#0! 4#45+5s,15(!"48>.G !G _#!~#fo{,25S= 8>>'!1 Aħ~ħ>(fnR>0ԧ-,̧V^!96rs66uV^!9ͧG2{,33>*= !eqѷ!"41qxG15D <! <>G> Y*3b3:/eG*0+R>":/O[0"0ox2/>eGm~>$~>/6ifn~>'?ͻtu!?!?6Nq~wNqFNVpqrwwwww/wwirr?ͻ!?:.( Ͳ4frsA\[2rs~ O:.w FNV^V^~ >)5?.ѷ!?rs!?666V^i4DMfn+|#>%([0R(J M`iy6i4FN x>&?.ѷV^ѷM?ͻ!?:.eG?.!? >:.eGmpqrsim~wiV^~ >)~=>6~>#͓|3B>'|(#~ 0>0zu{uGw͘p qHͬ>'V^yA\>fnV ^?ͻM#`͓-GJ |(Gu r sx- F Np q 6 fntu6 6 V^fnR#>2NB>1>-`iBDMapBRAfn~͞tux w oy!FN##x>0OèB< ~ R>RV^># 8 N!"4!xg:.G!"4!xg!^ͧ -!"4:.g~<( !R swͧ>^V ^ z>+>>ͳ* "BK[[R !#( x Bz>BK>ͳ*B"^sut^snf66*4*2!^zWK>*4R(*2!M"4y_>!*8"8::=2:6*8'''Wrs!\ fnR *8R(::=(>> *8R#DM::<2:*8R"8>2:!_"8\V^y\i  :.>Ͱ x2."2!"4~ 2.fn"2!"4# x O/G/O~w}<<<G>'~ 0͠<(-(, >͠<( >- >, x{y~   >ɯ ͒>͒*;#|+( yѷ>,>-*;#|S;!";0>zW:/G K( so>so! >!~w#~w:0O:1OͲ> ́:/GoK>soͲ> y08:0>  ́> s>!GͲ( >+>S6ʹ>'~>#:.i~>~wH:.i:.Bi:.Ai([?[M!:06(6'6*6)6+6-6,!"4!xg!xg?ͻ !? :.>>*V^tuR!!96666rs|(!"4!+(!9ɯ~>;!~ ͜R0!b3!.p5!2/"0!&hͤ!RBKM!9!#P !#9!222xdG26|*&h)!fn|>4#|+>xiM!:G>2[S=Sfn|+}+>2>25:%%:&1>7ɯ25*'<"f/n.xX:X>8*=[|s|o}s>9tu2>!)~2=66:>i}:= !+|¸z´2625Ͱ) 6#6 ixe8?0>!o&G!y~ ~ | }(0fn# x ˯?.!?>y~ | }> x Ͳ>͔>AͲ>͔>ͣ>y0 8?Ox ؀'؁G~#O, 8ɯqxs# G!|7?ɷG!|7?#:# x ~#,? !?#_xF> # !"4:.g:.g!9~w~w:6w:7woyMMOxxG!9|29"726>5d 12*P qD$fZ| message code Cold Boot ?zկ ( :  Y 2r(Q0Mշļ 7 wO#7wO#!u(<>  - *q>*sG* :kOx25*o!!>* &@:(:>?: 4>>G*k-~Y^ 6YGp(4G! v/ >!:kw(* * w>:- >J>G- 8:;= ͼ::(:0 :: :0BO#BO#::+::: :xO: ::j_x8~_O#~_O#:u_*4:g:k=) =2u|!!u4!D!> 7ý!gy2k=0y82m<2rL̀ x(> 0> 8+ > 8!9"s: 22- B8} /_8"oQL*m~z0"0#Gxg2j|DK>(x`*mo/G~vy %:+0z *q vv25>?a$N$(>Ta$0a$F$>Da$y?0a$F$>Sa$$N$( !$+6 T]͑$7 ",7 ,0"7w#͑$p$͑$ 7:/!$O:$o&>">25O#y$}2$>"$2$~ !">د2$>2/!"$͹":$  7*$":/2/y2$*!""!/:$O:$o&>"" :/"!:$ N # ~ (\$N#F !$͠$8"$25,~ (F$FH$# \$$F$\$~t#)$F$S(DH$o&$~= F$~#\$(0-$$PRESS RETURN TO CONTINUE"N$:$! 5##f$ N$:3=2 <2 0-$-$0-$-$-$/8x( :8G :$  H$ s#r#^#V#G "a$͑$( (08 0 (Oy2$> E#*$~ (#"$#z+{x˸>>+x ><! (v>%%8u(j%0d>_ w#6 G ˸6 ! %$@(Z_(( 02((O(O(r(' (p (q(.(((>$ ^>T%0>$> $>>@$>7>3$o&$ ( |%8=%8%8 ˸x > % 6 7x> %7o&9~8 <(+~07 $7% F&1D!YY""!~-~(f(,~>=&&:#&z2;>J!"51N͑.!" :5!06ʺ(: >\ !5~6!-l(y͟'͑.(k/#" \(:DH252D:32 .̓G͑.&0g!z&k/!0_!0WoH##&##¼&yt&&HAC|6AD6ALJAR6AS6CD8CF@9CR:5DAV@DEC5DH`@DOV?DS ADT'EB?EM?EP}?FM7@GOAHE.KIL@?INCJP6?LFBLIIMC;MD5MLcJMM@ODI?OFwHPANPOl?RDBRN7RSHSFBSL8SM@STMSXHTY6VM@WRBWS>ST'VF'VD'>Gt&!-l(y!i8" O:D2D!6~6o yF >}hG̓GB͍(&GͿ>x(#C͍(:9eo&GͿ>D͍(*7:/Ϳ>͍(̓G2D!9F:9Fݦ<(>J( !-l(͍(̓G!*E:*Eݦ<>J!-l(͍(ÃGH͍(8( *>%0YʃG̓G>It&F(#N# !+.F#N# GFcOy>5t& !(~# ~(>~#(*>͍(ÃGe>J(~(xi >26ß&North Star Operating, Version 2.0.0Syntax Output Device Sync Orette Available˒ Transfer To DOS Port CF MC on Boundary Full Expanded KeywordGO One Attribute Size Lockedͭ Text OnEnd of Exceeded Newing A Only Making Partial Block Execution Message ValueSingled:::: Unforeseen Yet ImplementedAre You Sure? AbortedWork: EmptyĻ Field Changed . . . Waitingʖ In Header In Data Seek Relativeʯ RunningControl-C Stop Completed˒ StructureBad:Unused:Overhead:Used: Track SpacingIllegalExtraneousDensityLengthMemoryByteSectorFileAccountNameNumberDiskHardSystemDirectoryErrorAlreadyTypeCommand FoundMissingProtectedRequiredAddressetteSourceDestinationExcessiveNumericSpecification In UseWARNING: CopyOptionStructure Contaminated Line LongNotMicro DiskTooDriveSide ControlReadWriteVerifyDeletedCannot BeAllocatedion FactorArgumentOut Of RangeOpenTableSpaceˆ ReadyCRCFullMismatchRevision =!@>!A*6COPYRIGHT 1980, NORTH STAR COMPUTERS, INC.:  Y3   bLM4zNO) +!#$,%-&P'[(!+31(2W4X6}RySvVuVtSpVoSnTmUlT7]3 \1D!"!"!."!F&"-!"!"-2D̓GB͍((>o&GͿ>C͍((>y0*>Ϳ>D͍(GͿ>g&!~=(CPH>=*>!CPG ~#" =+" =(=(>%t&H0GG0xG)Gk/# ^HE02D>t&* ~# n/+" 0?:͍/>$t&k/͋.7!ʹ/T]͋.* +" !0100O)ܱ/)ܱ/)ܱ/)ܱ/oBK)80)8- 8*)8' 8y 8!0H('T(100x(p>Kt&Ox?y>t& 0p ^Ha8{0߷0:00AG?76͉/>$t&|yt&}`0Ê0k/!0S(D #" ~͋. +" 7#" k/͋.>'t&k/^HOTk/!0>t&!0>t&RFͣ0MO+0* " k/k/͋.0~͋. #, V#^+~ (͋.(#zy/{0͋.7 7yt&}o|gk/,;1#~y/;10;1O#" 08(>~#!8*> 9>:D*>> *>G_|@N H̓G7Y> H(~7:D262DQʹ(2D:9eGe>J((~ 1 xe1O>+Hyɯ26'K>J(~(!-"652+5C,5S.5"05"25"45"85J*85*45*25*05[.5K,5͈18 :+5*65p&)\2xt&)=<з7yt&*\2xt&->2(p&%>"D"D! > ڠ2y:EON!13"*D!*Eď3͢.!-p&:E=O:E=2y2<2=!N=26 #2 *DN!9Fď3!-p&O*D O*D }O|GÍ2¼.*D1:D(}͢.EO!E~w,G:EOs3}!N=3 w36 # x3#xù2 "2Ex2E"E"E!E>27ɯ2E2E2E2E>2E2E0`4!E"E4͉/:E8 z>t&{52E͊0>2g&2D D"E!9F>J2D !> J͘'!> JĘ'>J(!DĘ'>Jz&z&!Dz&g&*p22E!i83R24Y00͉/Y0(x2E2D0#<4!Hq#p#:D_:Ew#!E!,( (w#6 #"Dg&*D|<͉/0:EOHGDM>8+ >t&0 ( 0x >t&!"Dï30͊0\5O2+6  !*Ex2V>,t&!> 1>1>1>?2D0"D͊0~y/8K>1nf>15!@> G<~'K^V@>'Kd" ;HO!76"!#>y <,UG<"͢.!J !~ (H6¼.͢.˹>:32 E1DS 8=>,*D8=> C5(ô(>>0͊010͊0>1nf>10͠00͊0>106͟7͊0O2##N##~怰w# !H64q4k/%0G0K#B8 ~%0U(<D ~%0P(.H *͟7x=(>1^x(^VN>1k/͋.( 7"ð& >1ˁˁˀˉˈˉˑˑːSC[7BUb7RWi7ROp7DPw7DE~7͉/>$t&{怲>t&C͍/> t&?0yt&O2͠000m2͊0O2+6  ( ͋.(w#40j8z!c833p2"DO22E͉/>$t&͊0N#F#&H~(#<@>0 *D@>>t&PY4F(+r+s4@@_ ͉/>$t&͊0>1nf@>F(!*Ex2t&nf^V > Jg&ѷ!-p&F(;HG2E͠0;HO2E2DHG0"HHG0k/!0N(+Y(͋.0͊0)k/!0N(Y >;t&͋.0͊0:4.Ĵ(^!͍2Zô(!" E1x9(==R2O&HSD&H~怱2Er9)~2E>2E2E2E#E :y0O2E>2E2E2E2E2E2E`0xʶ9y2EHG!"DRx9)=2EW_SD!*E-{2x2ESEy2E~ 2Enf)>&t&2E~2E:ð&TO":SL:CR;1x(z0;SD>R2Y0͊0O: >t&&HSD&Hy2E:Ewn:)!E*D|4[;1>t&xt&͉/" E͊0"E>!-"652N>t&:EG[E:EO>J!-p&!9F{2* E|<> 12Ego"D" Enf)[;![;"Dk/3[Dz::EG:EF:y02EF(Y0:EOxG;y2E!"DRxZ;)2D@>0/ʹ(DM:E=z;8͔2!9F:9Fݦ<Zʴ(!NN6* E"E>J(1( 2(!-͛'Zʹ(>J!-ě':EG*E>J!-p&0"D;ð&CR;TO;YN1>?2Dk/"D*D~y/8^>!-"652nf>1U<!@> *D#~͋. " ~'K^V@>'Ki" ;HO!<"!#>y <,U "͢.!J !~ (<0¼.͢.˹>:32 +=E1?DS 8=>,*D8=!B=+=8=>,K*D@9(7*D~y/~!8= CR 6k/"('(͍/0zyt&Ck/^H^HG^H"('0k/͍/>$t&k/,(- ^H͍/0^H͍/0+@>>2t&ͅ==DMT/ͅ=Ê0̀/Ê0ͅ=k/͋.>$t&!EI=p#^H,(SDÊ0G>x0:*>*>(>|>}>> G:D > (> z{J>(>~>@>7(# (>>F>8(>F>̓G>>͌>8(>͌>8xG͐>(> (>~>-8y*>~~00y*>@>7(# ۷>O(> ůT/͊0J͍(Ϳ>!NG>h*>(>>-*>(>*;.+G>h*>(>>.*>!N:/>t*>(>>-*>:/>t*>ÃG̀/>* ͊0̓G&T/͊0:D2=T/^HO͊0GHI=͠0PE=͊0HQT/E=͊0HP(>y>(>T/=V>T/I=͊0P>>:*>>>>0*>y(> ja>>G>t*>>>W>>h*>z~҃G ڃG>>z>-*>z*>ÃGͽ=x y0 ~@>#1 MD@> =!DE~w w@>#5 =>2D=2Dc>:Dw>> >Yt&T/ͽ= (#>~>(> >(>i`>̓G>|@@>#T/=E:DG # > >|@̓G@>ʃG# 5>G>>x#,( 0aA=͆A>܃A͏A108GO͏A108FHG͏A( (,( 0p5>>AOp#(>aAp#(>> 8~>>=+H(>( (_(>{H>fAɯ%0|@( (_*>>_*>>0BO2O&H&H~#=(>!t&{>&t&z>&t&C&H!N@>0 1!(ͯ.! x"ͯ.1([ > 10=PBO2O&H&Hz>&t&~怱O{"!*Ex2!Ex2E(>t&:1E>&t&:0E2E"E>&t&!"E>1BB͠0=B͍/͠0B͊0:EOzB<!*E͏3g&G0G>t&k/%0S( D ^Hù02E͉/, ^Hyo;H2EFOͣ0> t&0cC\2O&H##~怱2Ext|>t&x<̓C!*Ex2t&!*0E:>t&F(!NN6 ;HOY0>t&͊0xO! {N"ҵC yW:4OG>FDPRESS RETURN TO CONTINUE":  =2 H>|@:D! 5:3=2 _G0H|@ H>*>0GGG0GGG/"DG*DxH:HGH :D  H Hs#r#^#V#G "+H0Hk/18<0O#~"  ċ.y2E>t&* ~͋.mH#" #z+{F(͉/8͊0|>t&E>1>ͯHyQʹ('KʹHy >+H2DUi26xdȯyO:DJˁ(}((~(ˁ͘'F(͊0>͑H> 2F(0͊0> 1T/0;HG^H( >+t&͊0*Dxb">1͋.(0>1nf"D͊0>12E_W>1̈́I!@> ̓GE͍(!EGJC͍(h&GÃG~ -^VͰJz #^VͰJ*D@> E'K*D@> GJnfH/~o>(- o&GHHSF AHWN(AHU~ AHDV(AHnG-}ƒG}nf Ϳ>GÃG:/ÃG(>~y>F#x  H ÿ>T/͊0d26xi>J}(xe( ̓G !"D!"EKI*E|(̓G*D#@>*E|7@>SET/͉/0!e͊0>1|>t&E>1J!@> ~'K~'Knf:/(>GJ̓G|@* k/͋.~K!0W!0_͊0O!&~eK~eKBHCHK ####y-KK-K!&-FHFH H HʴK####‡K.;K.þK/OyR>5t& !K~# ~(>~#K*>;KÃG newaccountnamed1 d2CFCF [len]CFCFCFCF {daddr} {[char]}d{[command]}dMC YNMClines floppyname,d floppyname [filetype] {[raddr]} [attr...] HelpaccountTOCRSLOFIllegalOption{,d}pathnamelenraddrbval{[args]}region[#n][account]{d}{dens}{[#n]}{sides}{len}[alloc][d]paddrFROMdaddr{[]}12MDCF[len] {[,,...]},d ͉/0!e͊0|>t&E>J˜'^͍(:/yN`͍(f-n,nN:/yNa͍(RR:/yN_͍(f(n'nNѯR:/̓G< H H͉/>$t&͊0| N}ʠN23>t&(AHU~ AHDV(AHnG-}ƒG}nf Ϳ>GÃG:/ÃG(>~y>F#x  H ÿ>T/͊0d26xi>J}(xe( ̓G !"D!"EKI*E|(̓G*D#@>*E|7@>SET/͉/0!e͊0>1|>t&E>1J!@> ~'K~'Knf:/(>GJ̓G|@* k/͋.~K!0W!0_͊0O!&~eK~eKBHCHK ####y-KK-K!&-FHFH H HʴK####‡K.;K.þK/OyR>5t& !K~# ~(>~#K*>;KÃG newaccount+7!w!+PX+_p^u]\=[>2&[#"9[";[>2,[!zX"XW>2X>2zX2Xң+*9[~ʀ+h+͛S!;[FP+*9[:,[u+*/[60.,"7[:,[ʝ+*/[#͵C*-[F,,0+!+6+/!X{X:+6# »++GG͂B> 2YW:&[*9[̪42zXWWWK>2X!<ͽFK*X!"/["1[2)[:XN,*XYJ> !Y͸F*X*X4"XY͊GLOYkJQ,eJK:Y 4,.s,:Y4R,4|,+!Y"X͍F !Y͸F+͡H*ZF:&[o&͡H*ZF2Z*X*X"Z*Z###"X5ARG"DIMENSION"FUNCTION DEF"OUT OF BOUNDS"TYPE"FORMAT"LINE NUMBER"FILE"HARD DISK"DIVIDE ZERO"SYNTAX"CONTINUE"TOO LARGE OR NO PROGRAM"DOUBLE DEF"CONTROL STACK"MISSING NEXT"READ"INTERNAL STACK OV"INPUT"MEMORY FULL"ARG MISMATCH"ILLEGAL DIRECT"LENGTH"NUMERIC OV"STOP" BLOCKS"!Y"XͺI"Y*XYͰ/~].6);.6,:.6\S=G/#.5//.~ ʧ/ #".~ ʧ/ #".#/x #/#/#/#/#/w/w/w/w/w/w/.Ͱ/"XͺI>D}*X.  x Ͱ/,.# w/> !Yq+ # ~ ʳ/#FJ##~// /!S=#/~/#//#FJ/*9[6"7[*;[6+"ZU*7[#"X!4@F2XͺIڠ,~4wʠ,0!XFڲ," +7+LͷH|²,}Ҳ, ڲ,L}*&[wͣFͷHz.w0.9*&[w*9[~ʜ0eH*7["/[>à0*9[2,[>2&[U͍F>ڠ,O͵C##~¸,~怱O#~,*;[)40| 0",73+͍F>Ҡ,"4o&*X#"X~ )1 1ͺIڠ,>2&[N1:([O:3[*9[""Xþ1!/2([b1xGyO! ҂1,W_:4y1,z!$;,ͰC"3[ͰC:&[!/w , w#è1"42Z͍F>ڠ,O͵C͵C~怱O~¸,#z:Z1 1=Ҳ,w 2*9[",͍F ,I,͍F ,Y;/+͈2>,vFͷHͣF>e2ͷHz²,,2&[!ZN1͈2>,+6 ~2! "Z!Z7pC> ! "/["1[ͺI2"/[ͣF2ͺIڠ,|ʲ,"1[͍F  ,eH*9[~3###"X͕F 2I2eH22*3[*X++ͰC2*1[DM*/[*9[~#ͰC͛S 3LͺI>13}!8"-*zX%L:+2([͍F *9[*7[p3IͣFp3͍F *7[p3I#"Z͍F  ,K͍3~ï3:zX:([=«3!<ͽFeJK:+=2([Y;/#͸FKK!ZFڀ3! "X"XͺI3"XͣF3ͺIڠ,|ʠ,"X ͅF>2X+2X"4o&YJ> ͸F!.ýF*9[*7[͊G#}34$|ͺIڠ,͗HvFͺIڠ,͗H"&[ ͅF!&[FҠ,0*&[~͛S*7[͊G#DM~S+:X.,2X2X"Z"X5!zX"XI,K0*9[~).,+"X"X6 2X2X2Z͂BUWEE 5ʬ,ͅF=E͉E4.,!@F~FͰC\E4###"X+GGK!9"X*Z"X45D59> 2X2X͍F"X]5,=͕Fo&FCͅF>pC;FGCʸ,ͅF;FͅF;>ͥFҨ5!GAEë5;"F*XDE;r+s+r+s+6"X"&[GEEM.*&[,555G2Z*Z#~E;#E6CFE;N#F:ZUM~F:6DM͑?G6"ZFD"X5Fʂ6;FͅF:X6>2XIs7=5*ZͷB͕F,,Ͳ<#F###*ZͷBx6z6~++ ʱ66z67!6!X6A>"Zf6<6͍F"7͕F͍F ,"7͕F6 \I6͕F666>2Xy6G*Z#~E;"ZI,G͗H###N6ͷHz²,ͅFI, s7vFa7G͗Hß7G"FI,͗HDDMp+q+6###S6G*Z#~E;77ì7#^#V"Z~N69#~Gz_>XWw#7"Z#~8ͷBD*8*Z͉S"Z$8+#;D*8E2X#^#V"X#~"Z#^#V"ZF*Z48G Z8\I͍F ȸ͕FZ8>Q8+Eڒ8͉EҦ,~FͷHʦ,̓F͢CͣFp8y O͉EҦ,~F!@FͷH!@FͰCͣF8ͷH͂Iì8̓FCË8GD9>2X*X*Z!9"X2zXK!.ͽF3-G2X+>#ͥF҉TG/FͣF(9EE/F[.,C/FH92G+9FM9>"pC/FͣF9I*9[ԗH+"XGLu9 EK Eq:%9Fʭ9;F*Z͞P,LGL9ͽFͣFu9K*ZͷB"Zzʤ9LG,L9FͲK+ù99K!X L+G͕FͺI%:D:!ZZ:@C: :$:#`:~w9G9|¾,}!Ҿ,2Z͕FI]:EE:F¾,ͺIھ,|¾,}!ZҾ,2Z2Z!ZF~wxGä9͕F~FͷH̓Fz²,,LҤ9 ͲKÂ:G*X>1ͥFL>"ͥF;?ͲKeJ2)[KYC:͠Q:ͣF:x,ʽ: :?ͲKé:OH> pC"X :x !$;ͽFK"XÑ:#"*[ͽF#"XvF>2)[î: INPUT ERROR-RETYPE "wG\EM8wG?.,ͷHͣFͷHz²,{>f;áZ!Zwz²,#s#6ͷHͣFͷHsG E>ʴ;I,͗H"ZvFCʸ,"ZvFCʸ,"Z>2Zɯ2&[U*9[͈2ï0! ?!9`.,2X:X4<E;Cʸ,E4 Ͳ<͕F;~EŽ<"Z DM!;#F͕F*X-,Ͳ<~F;̓F~<O!? READY"PRESS RETURN TO CONTINUE" ERROR" IN LINE "4=3$0/30}40201(2544%3]5x5f95Z69:M8@7}77p889W9k8B;9;f9S7K;u;,79UUS,;H0q2=2;LETFORPRINTNEXTIFREADINPUTDATAGOTOGOSUBRETURNDIMSTOPENDRESTOREREMFNDEF!ONOUTFILLEXITOPENCLOSEWRITECHAINLINEDESTROYCREATEERRSETRUNLISTMEMSETSCRAUTOLOADCONTAPPENDRENNSAVESAVEBYEEDITDELPSIZECATSTEPTOTHENSIZETABELSECHR$ASCVALSTR$NOENDMARKINCHAR$FILESIZEFILEPTRFILE([*+-/ANDOR>=<=<>=>=<<=>NOT^INTLENCALLRNDSGNSINSQRTATNFREEINPEXAMABSCOSLOGEXPTYP@ A 3LUMMA>MU@ cN ?@]??B??~?p^?h?x?n? ?@@@?u]\=[A͓?w͓?w>Aw͓?w͓?w͓?w͓?w>? ?PYDMg ??! ?# ¾?$E> PYE ??BK?E!f;͡Zo&áHF*X*Z͊GáHͺHná@{F!"Z!Z7pC!XZ @͠Qs.,!XE'@{F͈2>A!͎B>ZEZZcNZZ>MBAZ3LZZUM=tA!ZEwTB@TBA APY!GAEmIB=AB͑?BEͺHZEZ3LAE͊\!XF3L=[WB=BEBKB3LͺH+"ZZB:+W0!G#LB"ZF*Z}-fB?|g}o`B"Z#͡HEBKBcN!"ZeS`E"&[E3L*&["&[UM=ÙBŷHGB,͍F C8CRC>͑G CC¸,z C*ZDM͊GUF"Z*Z~ #zCC>ͥFҾB{FͷH"Fs̓F C{FͷH{_&C:+8&C{F;̓FFG*Z͞PX"ZB*Z͸B*Z"Z!9FڎC԰C*Zz~+×C! BFͰCs#r#^#V#!@F## ͰC͂IͰC##@FE,1EKD͍F>ͥFD͉EDD!@FDD> O͉EܺC##ͷHFҲ,##N#Fx:D͂I+vFD̓F#ͲF͉E ܢC͵C"Z͵C"Z"Z>ͥF?ҸDD!ZFځD²,*Z+"ZͣFڣDD!ZFڟD²,"Z̓F*Z͊G,#"Z"Z7*Z*Z>=*Z*Z*ZͷHʲ,"Z"Z"Z͕F\ D!X,P8D~? E###"X͍F \!XEGE?OE,>$ͥFyO+Ey@OQ8D͕F 7ȸȹEE͍F rE\rE͕F\EEE-,ʬ,ͅFxA*7[#͛ST]F|ʧE~#”E##!@F"Z"ZͰCq###>2X7͍FA[?E͍F0:?#"X!GA~+ E*Z T]EBK"FE<2X!X*Z "ZE*ZUF"Z*X*X"X"X*XUF"XF!XFiF!ZFy.*;[+"Z,,ÅF͕FÅF)͕F,͕F+"X*X~# ʘF"X>,͕F+"X7 ²F ÿF"~G ,ͲK#ÿF#z+{~#fop#zF͍F̕FEFEԕF"X"$*Z"Z*Z"Z*Z"Z*Z"Z!#"Z͍F!X͠Q"X!XENG>""WGͥF*X"ZG~#pG ,aG"X*Z:X E;:X.,}o|gW>ͥFG=E,͉Eڬ,͵C~F"F6OHCOHGE"Fr+s+6;F͕F,GOHͣFFHÿG>pCG),OH>)ͥFFH"Fr+s+w:X!9"FyXS w +,Hr+61zX>ͥF+5å7OH.,"X"X*X"X*X*X*/["3[*9[Ny7#"-[F+?*1[*3[ڲ,"3[ pHeH,,ZJ> !X͠QE;EU@F~,O #~SIڲ, H~SIڲ, Hz;EBKB͑? IͺH{Z*ZEERIcNEU@EEͺHEBKRI3LE DM>MFͺH{%`C"Zbk)))*Z_zWXEU@͑?xʣIz²,{YͨIXͨI|²,}gò,ByÎI!T)I ®I͍F"[͜R?SIڲ,͜RI*[+"X>ͥF7#^#V#"X͍F *9[ͺIڠ,eH,ɯ+J+J+J+J+J>0"Z .J*ZBѰ>0:zXG CJCJ:+x*X"XKY!Y6 ,LOLO2Y2YCJ —J6 !YY~# J!}JKKXKSKGK_XKXK$KxKʊK@ʊK 0K:YJ Jw#6 GͲK LOY!Yw# J6 ., 0KJK JKCJ 5KòK(KJG:K 0K%òK\K:+G:Y0K+6 :Y²K ʲKòK:Y<2Y²K>òK!YY#~ K@ͲKK:)[eJ**[ͽFeJ:zX  K ,L*&[4,L*&[6,L ͲK òK:+2X:X8:.2&[:Z-8>#ͥF>LͷHͣF{2zX!{X:zX͛S"&[~!X L =L![>6+=DL![L>![ sLO.M>w fLʌL[O.M ƒL+=XL[L[ MG~@LL>L.,G怰[EO+wL+w!~ MP+>M>'w+ >M !T]Lշ'w+1M! [w+ IM [ rMo`imM/< wMEV[+~ …M![ʟMO+ ˜MګM#T]L~P+MF+1N7>'+ MMx'w+ ?MT]#wM#~ N MN xw!N6*NL+E'+5NLNE>~ MxʼLpL, ! "Z!%[w+}N6![L![w+–N w+žN6[!%[OG![O*Zw#"Z ­NL MgoAON>OüLW{怲 7>'+ OO.My" [G!Z6":ZCO+60ʾ,=5O+6."["["[YO+6 OO"Z+6!* [~OA*P0;P yOH }P;P†OA}PcPÑO+~.ʛO,ʛO"ڸO1;P!Z:Z#O:ZO~0O6 +O:Z#O#6"+~"[.P+~ P!P##60P>0;P* [~>-SP*Z/GʐO>0cP/P:Z@RP! [5RP6>,SP*[+W~!ʾ,"[r*[#W~"sP"[rz5OÛO>W>0x=_* [~ڙP0>2 [>2Z:ZI)Q#PEBQ:Z(O:Z P~>+SP>$SP*Z:Z#P#~ P+T]"P!"Z~)QIBQG+~Q~QxABQmI»PmI¾,2Z:Z<(O>"2ZP~2ZNQAw:Z(O*[~.aQ#6E#:Z+wQAwQ-/"P2Z2Z2Z>2Z+QQQ-Q>2Z"Z>+6=Q"["[͜R R.Q͜RQ7!Z5͜RQORE]RͥFҦV#ͅFͷH͵W,>%ͥFSHgWvF>ͥF>&ͥFtTF.T͗W;F!X~T6~%V#TͣFS͗W>UͷB|##LT͗W>%V|%VTT͗W>%V}%V*Z"ZzT~%V+bT͗WͷH²,{%VTͷH͵W,>%ͥFڢTHgWvF>&ͥF"UCTVʸ,Vw#TͣFҥTT*ZVT¸,TVWV_*Z+͊GUF*ZzUVw+ UÂCCʸ,Vo&͡HFT#ͅFͷH͵W,~iU:!]U)@F6#ͰC>%ͥF>wUͷH{vF͈2>,2Z͵C###ͰC͵C~¸,~!ZwU)ͰCͰCr:ZwͣF͡HCʸ,F͵WEW6U#ͅFͷH͵WEW~w5W*5[~ w Vw~#͵C N"V++~G U q*5[~怰EW ͵CðC{FͷH̓F͵W,͵C͡HERI3L*5[ n&͡HEUMF4<{FͷH̓F͵W,͵C͡H4<#ͅFͷH͵W,vFͷH,V(V5W*5[ V~~O#͵C͵C͵CFڲ,ʲ,͵C!W"yWzW{_>"!,",!,",6 #6 #=*W*5[~@~@wV~@~G~p V͵WEWZW*5[~ FʊWxŠW{_FEWͰCw*5[ ##F#~#N+ W\FҲ,z²,{², ͂IX~"5[!XPF!,"-!,"COPYRIGHT NORTH STAR COMPUTERS, INC., 1978, 1980IfFI&L&LY(\5y,PPPPPPPPzXYS_PBYE ET 49151 Y 49151 BYE ET 49151 Y##BYXX__!GAEa\͑?!FAE\\͑?ڲ,EEQ]3LEBAUMEU@EEEZEZEZU@Z>MZf\3LZZ>MZUMEk\3LE>MFZEZ3LZZ!z\>͎BZZ!\>͎BZ3LZ>MZcNBAUMBAcNE~wͺH{4\/<{P\p\cN3LO\<wPbCseQA)%FI=1b'vA$8C 2BDCA͕\LAcNʲ,,>@BKL]͑?ҵ\=ʲ,4ZEBA>MBA>MZGAUMZcNZEZ3L>Z!`]͎B>Z!t]͎BZ3LZcNQ]UMZ3Lo&͡HEG]>MEUMFdB1b'v@@)h1cIAg5`iBABKL^UM2ZEEQ^cNEBAUMEU@EEͺH{ʽ]:Z2ZEZEZEZU@Z>MZV^3LZZ>MZUME[^3LE>MFEE3LEZ!o^>͎BEZ3LZ3LZUMF:ZwpycA1AY&A1AAY&SX=ffW3Q>t&0;Aڙ^!GAZEZcN!ZEZEZ3L> ZZ!_͎BZ3L^Z ^L^UM!Z^~^wE@333#@'YE@w&g?D5u3"'C?q@IT>S>:dOd!h˽">VbXbXb! w# x > x>`!s,r-$$R>> bdbbdb!{2 ds#r# x ɷ,c=(=(Mb!#bR0Rbb!b)b:*c2*c)c*`#"`<<<<}<<<`F2*cF!`>0= # x *`R*`:dfO>@yyOx@ x@ x@(x@(Pc! x xw((#}{ Pc! x x0 x  x#0d+d%dn2 d<2 d1m4d(>f{2d>2 d!9"d2d* dw!ofggOjOj:dOOj(x~īg!fg e#e*e>dTe( !eg!= !)fg e#e*eTe!fg e#e*ex >.$g y !fgTex >.$g y !fg!! : dw#{ ̓e̓e fx(!Mfg*d!*d!̓e>ͭe(fx(>ͭe!!(@ (:dO>G: d xxçb!eg|͔g}͔gg HUNK FOUND BAD = FORMAT ABORTED BY BAD TRACK 0 FORMAT AND VERIFY CYLINDER 0 FORMAT AND VERIFY LAST CYLINDER FORMAT ABORTED BY WRITE ERROR DRIVE INITIALIZATION ROUTINE DRIVE INITIALIZED, START VERIFICATION START WRITE INITIALIZATION END VERIFICATION >2d"cjOj[l.g(*cj~#$gg> $g> G:d  : d8 !`gg(0 !gg: d( HIT SPACE BAR TO CONTINUE - PROGRAM CONTINUING ͝g0:$g$g: d2dgx!h (#!h> O ~#fog!qjg !jgjg᯶#!gO!nh ~#fonoptuvy{lm)h)h2h2h2h>h>hKhKh\h\hfhDATAHEADERPOSITIONTARGET SECTORVERIFYSYSTEMhh iii|hg>2d* d~2l* d~2l* d~2lhg!lKl ~jg!jglgj!j* d~2l* d~2l* d~2lg!jhg2l> 2l!0l6+=w+ * d=l * dLl !%kgl:l :lOG8Alj͝g͔gg=l͊iLlgAljlj͔gg![kg:l=i( 5> (j50d8:l !jggjgRi!zkg:ej͔gg:gj͔gg:fj͔g[hj j[jj jggz͔g{ÔgCl20 d8d x$g 8 :x (y0$g$gKl2ejCfjShj"jj* d> $g ERROR - ERROR NUMBER = NONE ERROR OCCURRED WHEN REFERENCING: CYLINDER = , SURFACE = , PHYSICAL SECTOR = , LOGICAL SECTOR = DATA READ ON HEADER IN ERROR WAS: BYTE # EXPECTED READ NUMBER OF BYTES IN ERROR = REGISTER VALUES FOR CALL: NUMBER SECTORS (A) = , COMMAND (B) = , DRIVE (C) = RAM ADDRESS (DE) = , DRIVE ADDRESS (HL) =     ÙmomìoB $% ? (Y/N): EDIT?  SAVING  BAKx :d[hj͂lxëgn«g͂lnëg:d(ļl lļl : do  ŸlʱlßlClͼlSlSl2l {0!Kl:lw}!2A7G*7|!:Œo:7uoͯ$:6m!9L$:T82V8&$\!N6m,l2l3$q$*"n`=(P +h Ho@žn2q` x(qG3txp(!x(!D"Xv"Zv"\v*Xv[ZvK\vx(!D"^v"`v"bvK^v[`v*bv2qWt͂r2 nLt*gv:zvOSy!^^^^n= QYz/y{/yr:zvOLtx y_Atx8oKxyOxo( G >qùu%qtpʥnènWt͂rLt:zvO>y>yyy>yLt:zvjùuxo­o­oLyHx>= xM= %qx@oÿup¿p2q@boWt͂r2 njp @:fv( Xs#Xs#Xs#Xs#Xs#Xs#Xs#Xs#(Xͱp R t(>n!`v! n$vr͓s &W:n(>p!bv3v:n(2nv*gv%q:zvOW0%q!_v>o! n$v>kùuPXx/x/2qWt͂r2 njp(:pvG(2pv! n4~#(Ov͚uìnx #x #ͱp tڥnp>m!cv! n$v>l!`v̓v:v(2dvy(x:dvI #!{v:nA(!}v:n"v2zvG )to(}_ )t(~g O q>@3t)t_ g G(Kv>)t@(¬q¬qh fr>fr dr%qdrdr> fr>y3ty3t:n = =:n2 n[nzW{ { r{@:v02v3tͱr¹u)t :yv%q)tG >q( z >|)t@(r)t@ < %q̓v!:n_:fv_ b:v3tP͓s $<( >{Rv:v3t:zvt!_v(!av>i3vs!^v! nr$v%qq͆r:zvxo x0 x@ʛs x  x+~+<(>~+ #Kn~(>#~ :n>:zvsùu}t~2n2xv:fvG((Cn!n#w#/w     *n#"n:hv2hv*iv#"iv:n 82n:dv=2dv ͈u>ʿu!n#w/#w:n ͈u :nG<8:n >s_<2nx(2n:n2xv*iv"vv*gv"tv*n"rv:dv2qv:pvGw2pvO7:xv2n*vv"iv*tv"gv*rv"n:qv2dv!\vFv*kv2mv:fvO(G [n[n*n*iv[gvKev%q:mvovtvG:nvG:dv.ác}2!n2mv4~#(0 2mv4 5!n4~#0 !Zv4#45+5:mv!Xvüu ;GET OLD HEAD SUB D ;FORM DIFFERENCE WITH NEW STA NEWHD ;SAVE AS FLAG MOV M,D ;STORE PRESENT HEAD MOV A,D ORI 40H "MWCHK123,1"  I1 24 \\ 1 335,110 \ PATCH NEW MWCOM AT 6E00)  B$80),P4) ( /2 "NORTH STAR HD-5 DIAGNOSTIC PROGRAM" \\ /< "WHICH DIAGNOSTIC LEVEL TO EXECUTE:" \\ /F " (1) NON-DESTRUCTIVE DAILY RUN" \ ;P " (2) SIMPLIFIED TOTAL DISK CHECK AND REFORMAT" 0Z " (DESTRUCTIVE TO ALL DATA!)" \ 9d " (3) EXTENDED TOTAL DISK CHECK AND REFORMAT" 2n " (DESTRUCTIVE TO ALL DATA!)" \\ "x CSTANTS USED THROUGH   C10 \ COUNTER  C20 \ COUNTER 0 D14 \ NUMBER OF HEADS PER CYLINDER ' D2153 \ NUMBER OF CYLINDERS . D316 \ NUMBER OF SECRS PER TRACK % E50 \ SEEK ERR COUNTER & E60 \ HDCOM ERR COUNTER . A925088 \ ADDR OF AUX RINES 6200H) % WA9 \ RINE 1 SECR * F9A9512 \ ADDR OF MATTING RINE / D9A9341 \ DRIVE NO. BYTE IN AUX RINE 6 S1A9379 \ ADDR OF SECR PULSE COUNTING RINE 4 S2A9414 \ ADDR OF SECR PULSE TIMING RINE ( B9A9512 \ ADDR OF BAD SPOT LE (" B8A9188 \ RINE SET BAD SPOT 2, B7A9178 \ ADDR OF BAD SPOT TESTING RINE 46 B3A9300 \ ADDR OF BAD SPOT LE VERY RINE 2@ R2A9142 \ ADDR OF MULTIPLE SECR RINE 2J W1A9136 \ ADDR OF MULTIPLE SECR RINE .T RA934 \ ADDR OF RINE 1 SECR ,^ S949152 \ ADDR OF BUFFER C000H) ;h B1A9147 \ ADDR OF RINE BUFFER WITH PATTERN l X1 S1,100) \ COUNT SECRS 100 TIMES 9v X1 D31  \ 15 IS RIGHT ANSWER  "Sector pulse count =",X1 G X22000 \ X30 \ INITIALIZE SECR PULSE RANGE  I1 50 2 AS2,10)D32))) \ DO IT 50 TIMES 5 X3A X3A \ X3 HAS MAX UE 5 X2A X2A \ X2 HAS MIN UE  A X2118 X3121 "Sector pulse timing range: ",X2,"-",X3   BAD SPOT LE CHECKING   I0 511 = B9I,S9I) \ MOVE SECR BAD SPOT LE  7  B9)256B91)B3) ` \ CHECK IDITY    ALLEGEDLY GOOD HUNKS * A4 E0 \ INITIALIZE ERR COUNTER !> M0 D21)D1D3D3 D3 2H B7,M)  \ SKIP BAD SPOT 2R FR2,M) \ 16 SECRS 4\ F0  \ JUMP NO ERR 8f CMD1D3)) \ COMPUTE CYLINDER 6k HMD1D3)C)D1 \ COMPUTE HEAD +p \F," ERROR AT CYLINDER",C,", HEAD",H >z EE1 \ INCENT ERR COUNTER 9 M64M64) ".", \ S "." EVERY CYLINDER  # \"NUMBER OF READ ERRORS: ",E  2 TEST RESERVED TRACK CYL 152, HEAD 3  B E0 \ INITIALIZE ERR COUNTER  M1526448 153641 4 FA9,M) \ ".", \ EACH SECR  F0 EE1   M1526448 153641 3 FR,M) \ ".", \ EACH SECR  F0 EE1  8 E2 "RESERVED TRACK FAILURE (CYL 152, HEAD 3)" $ \"TEST COMPLETE" . j 8 B ERR MESSAGES L "DRIVE NOT THERE" \ j (V "HARDWARE FAILURE DETECTED" \ j <` "BAD SPOT TABLE INVALID - MUST RUN DIAGNOSTIC LEVEL 2" j 4 t ~ I1 24 \\  11544,1 5 "**** WARNING **** Level",L," test..." \\ N "PROCEEDING WITH THIS TEST WILL DESTROY ALL EXISTING DATA ON THE DISK"\ 1 "HIT TO PROCEED OR TO ABORT" 4 T$0) \ AT$) \ A27 4 \ A13   28168,40 \ 40 RETRIES  @ IB9 B9511 \ I,0 \ \ INITIALIZE BAD SPOT LE C F0 \ DRIVE NO. IS ZER0 A F915,F \ A952,F \ POKE DRIVE NO. IN AUX ; F196F16 \ F16,64 \ SELCT DRIVE  AF11)16) 9 A2A2)  \ WAIT DRIVE Y   * % LEVEL 2 CODE STARTS HERE ( 2 L2 \ ~ D< FR,2) \ F0  \ GET BAD SPOT TBL, JMP ERR %F I0 511 \ B9I,S9I) \ *P B9)256B91)A9300,0)  ;Z P10 \ SIGNY NO HALT ERR DETECTED 5d P20 \ SIGNY NO INUOUS REPEAT 6n P60 \ SIGNY TEST BAD SPOTS 3x P34 \ 4 PASSES PATTERN 8 P41 \ 1 PASS SERVO HARMIC TEST 5 P51 \ 1 PASS SERVO ROM TEST , O0 \ PUT CSOLE , Q11 \ SIGNY MATTING  H ' E \"BAD SPOT TABLE INVALID - DIAGNOSTIC LEVEL 3 MUST BE RUN"\  4 ) & LEVEL 3 CODE STARTS HERE   L3 \ ~ * B$"DISK NEED TO BE FORMATTED? (Y/N)" #  \ T$"Y" Q11 Q10 ,  TRY BAD SPOT LE /" CAN DISK SHOULD BE REMATTED <, CAN BUT LE INID, START WITH NO BAD SPOTS )6 LE ID, OF BAD SPOTS @ J FR,2) \ F0  %T I0 511 \ B9I,S9I) \ ^ "CURRENT BAD SPOT TABLE", *h B9)256B91)A9300,0)  r " INVALID - ", "| "STARTING WITH NO BAD SPOTS" % I0 511 \ B9I,0 \\   ":" \ \  7 "CANNOT READ BAD SPOT TABLE - WILL REFORMAT DISK"  Q11 ' 0 PROMPT KEYBOARD ENTRY OF BAD SPOTS 2 ASK CYLINDER,HEAD PAIRS UNTIL HIT + RECD EACH ENTRY IN BAD SPOT LE  0 B$"ENTER ADDITIONAL BAD SPOTS? (Y/N)"\  T$"N"b 4 "CYLINDER : ",C$ \ C$)0 b C5C$) ) C50 C5D2  \ 7) \   "HEAD : ",H5 ' H50 H54  \ 7) \   MC5D1H5)D3 & AB8,M) \  '0 ;: GIVE CHOICE OF ACCEPTING REJECTING BAD SPOT LE +D ACCEPT, INUE WITH PROGRAM 7N REJECT, START OVER WITH ZERO BAD SPOTS X Bb "PRESS TO ACCEPT OR TO REJECT BAD SPOT TABLE" l T$0) \ FT$) *v F13  \\ F27 | \ b ' & NOW PROMPT TEST ROL OPTIS  / B$"HALT IF ERROR DETECTED? (Y/N)" \   T$"Y" P11 P10 1 B$"REPEAT TEST CONTINUOUSLY? (Y/N)" \   T$"Y" P21 P20 . B$"RUN TEST ON BAD SPOTS? (Y/N)" \   T$"Y" P61 P60 : \"ENTER NO. OF ITERATIONS FOR EACH TEST SECTION:"\ # " PATTERN READ/WRITE: ",P3 # " SERVO HARMONIC TEST: ",P4 % " SERVO RANDOM TEST: ",P5\ 7 "OUTPUT TO CONSOLE (0) OR PRINTER (1)? ",\T$0) 1  T$"1" O1 O0 \ T$"1" T$ "0"  F911,O %  \"HIT RETURN TO START TEST",T$ .* 4 MATTING SECTI > ;H Q10  \ JUMP MATTING INDIED ?R F99,0 \ CTRLC DISABLED DURING MAT \ "DISK NOW BEING FORMATTED" Bf FF93,F915)) \ MATTER PARAMETER IS DRIVE NO) p F2  ?z "TRACK 0 FAILED" \ 4 \ TRACK 0 FAILURE IS OLERABLE  "FORMATTING COMPLETE"   PATTERN SECTI  7 28168,0 \ INDIE ZERO RETRIES 4 F99,1 \ REENABLE CTRLC < P30 x \ JUMP NO PATTERN TEST  I1 P3  P9PI4I4))4) ; FB1,P9P9256) \ BUFFER WITH PATTERN   LOOP PATTERN   N0 D1D2D31 D3 7 BN) t \ SKIP BAD SPOT INDIED 2 N11 3 \ TRY 3 TIMES 3$ FW1,N) \ PERM 16SECR ,. F1 F0 V \ UNLESS ERR / F116 F111 3 ;0 #O\#O,F," ERROR AT PHYSICAL SECTOR",1528193) \#O 53 F117 8 \ 28168,2 \ FR,0) \ 28168,0 8 ;B AB8,N) \ ERR MARK AS BAD SPOT L )V F1 \ CTRLC HIT 7` C1C1D3 \ INCENT COUNTER %j ND1D3)ND1D3)) ".", t \ ~  LOOP PATTERN   N0 D1D2D31 D3 7 BN) ( \ SKIP BAD SPOT INDIED 3 FR2,N) \ PERM 16SECR ) F1 \ CTRLC HIT  F1  ? E70 \ F911,0 \ ERR OCCURRED TRY 40 TIMES  N11 40  FR2,N)  F1 E7E71  F116 F111 ; #O\#O,F," ERROR AT PHYSICAL SECTOR",1528193) \#O 5 F117 \ 28168,2 \ FR,0) \ 28168,0  \ F911,O 9 E74  \ 4 ERRS IT IS SOFT ; AB8,N) \ ERR MARK AS BAD SPOT 7 C2C2D3 \ INCENT COUNTER % ND1D3)ND1D3)) ".", ( \ 72 #O,"PATTERN READ/WRITE TEST PASS",I," COMPLETE"\ < F SERVO HARMIC SECTI P NNJK \ COMPUTE TRACK SEEK B JJ1 \ KK \ INCENT , CHANGE DIRECTI 9 C2C21 \ INCENT COUNTER ; ND1D2 N0 \ WHEN EDGE OF DISK REACHED 5 #O "SERVO HARMONIC TEST PASS",I," COMPLETE" \   SERVO ROM SECTI  1 THIS SECTI DOES 3000 SEEKS ROM TRACKS ) CAUG MOVING PARTS BE EXERCISED " 6, P50 \ JUMP NO SERVO ROM TEST 26 I1 P5 \ TEST SECTI COUNTER 0@ M1) \ CHOOSE ROM SEED +J N1 3000 \ SEEK COUNTER =T M0)D1D2)D3 \ COMPUTE 1ST SECR OF ROM TRACK +^ BM) \ SKIP BAD SPOT &h FR,M) \ DO SEEK +r F0 \ JUMP NO ERR | F1 } F116 F111 ;~ #O\#O,F," ERROR AT PHYSICAL SECTOR",1528193) \#O 5 F117 \ 28168,2 \ FR,0) \ 28168,0 C2C21 " MS91)256S9)  1 #O "SERVO RANDOM TEST PASS",I," COMPLETE"\ b  P20 :  "TEST CONTINUING..."\ E6E61  P11 X H #O"SEEK ERROR - SECTOR SOUGHT:",M,",SECTOR READ:",S9)S91)256 E5E51  P11 X + * RINE PROMPT WITH B$ GET Y N   B$,\T$0)\" ",T$ (& T$"Y" \ T$"N" \  0 1: #O "WRITING BAD SPOT TABLE TO DISK" \ %D I0 511 \ S9I,B9I) \ N FW4,2) \ F0 X #O "TEST COMPLETE"\4 b \#O "SUMMARY TOTALS:"\\ 'l #O "SECTORS WRITTEN ",%10E4,C1 +v #O "SECTORS READ ",%10E4,C2\#O ! #O "SEEK ERRORS ",E5 , #O "HDCOM ERRORS ",E6 \#O\#O\   ERR RINE  b 2 B$"CONTINUE TEST? " \  \ T$"N" :    RINE BAD SPOT LE  5 B9)B91)0 \ #O,"NO BAD SPOTS" \  I0 D1D21 4 A9178,ID3) A9178,I1)D31)  \ # C4ID1) \ H4ID1)C4)D1 % #O,"CYLINDER",C4,",HEAD",H4 \ * 74 \"HIT TO REBOOT",T$ \ F314)256,0) ,I1)D31)   \ # C4ID1) \ H4ID1)C4)D1 ( #O,"CYLINDER,C4,",HEAD",H4\RETURN  7 \"HIT TO REBOOT",T$ \ F314)256,0) ",%10E4,C2\#O ! #O "SEEK ERRORS ",E5 , #O "HDCOM ERRORS ",E6 \#O\#O\   ERR RINE  $  2. B$"CONTINUE TEST? " \  \ T$"N"  8 $,Z8,Z9 !B Z71 ,x,,D, L V ` RINE BAD SP&7!@bU&P{[4'_xa}`_E^North Star Hard Disk BASIC, Version 5.3.1 "22OCT81">2.^#"A^"C^|v&:<go+~4wv&"C^>24^!j["[ͦY>2[>2j[2[&*A^~&ʴ&O!C^@Bڜ&*A^:4^&*7^6p+)Y("?^:4^&*7^#%?*5^@B ( (p+'!&6.'!!&.B\Gh+!{[s[:&6# '͜B͂B=> 2 \͜Y:.^*A^02j[ͦYYWG2[>2[!+8.B\G*[!"7^"9^21^:[ʧ'*[]wE> !])B*[*[k/"[]B͞GO \Eê'E\G:] k/`'.*':\k/aNp+`'k/'4'!\"[A`8ʼ0͞0A ![S()Y()Y()Y(,)Y(;)Y(A)Y(*7^"?^6p+I)Y(\)Y(V)Y(*?^+"[Y(*Y(i)Y(v)Y(:[o(*]"\*] ? 2.^(:[…(:](2j[WG.B!J8.B:[4'*A^DM^![@Bڥ( o g(!Q8.B\wE> !\)B4'D*]ͅA:.^o&D*]ͅA2]*[*["]*]###"[Â0ARG"DIMENSION"FUNCTION DEF"OUT OF BOUNDS"TYPE"FORMAT"LINE NUMBER"FILE"DISK ACCESS"DIVIDE ZERO"SYNTAX"CONTINUE"TOO LARGE OR NO PROGRAM"DOUBLE DEF"CONTROL STACK"MISSING NEXT"READ"INTERNAL STACK OV"INPUT"MEMORY FULL"ARG MISMATCH"ILLEGAL DIRECT"LENGTH"NUMERIC OV"STOP" BLOCKS"!]"[+E"\*[\+~]N*6);U*6,:\*6\8Gm*#c**q*`*~ + #"C*~ + #"C*Í*x ʍ*ʍ*ʍ*ʍ*ʍ*******C*+"[+E>D}*[C*  x +,C*# *> !\q+ # ~ +#HBwE##~]+E+ 2+!8#I+~Y+#N+2+#HBwE0+*A^6"?^*C^6+"]QQ*?^#"\!4ͱA*\"]"]2[+E'~4w'p+!\@B(" &7&͉G(D|(}( (͞G}*.^wB(Dz.+.H5*.^w*A^~,C*?^"7^>,*A^24^>2.^QQͳU"U>'O%?##~(~怱O#~7(*C^͓/X,| `,"7(7&ͳUµS>'͌/o&*[#"[~ ʢ, Œ,+E'>2.^,:0^O:;^*A^""[7-!/20^,xGyO! ,7(W_:4,7(z!67( ?";^ ?:.^!/w , w#!-͌/2]ͳU2T>'O%?%?~怱O~(#z:]x- r-=(w -*A^"7(A S(`E+(A S( \(+S'͘UQ>7(A(DB>-(Dz((2.^!],͘UQR>7(+6 .!!"]!]7>> ! "7^"9^+ED."7^BD.+E'|("9^A 'C*A^~ʈ.###"[B U.NEa.Ca.a.*;^*[++ ?a.*9^DM*7^*A^~# ?O Ô.͉G:320^A *A^*?^.`EB.A *?^.`E#"]A '\G.~/:j[:0^=/!18.BE\G:3=20^\(+#)BfG\G!]@B.! "["[+E^/"[B^/+E'|'"[ A>2[S'2[͌/o&\wE> )B!&*.B*A^*?^B#}ʝ/$|+E'DA+E'D".^ A!.^@B'p+*.^~O*?^B#DMN&:[})Y(2[2["]"[Â0!j["[`E+(\Gp+*A^~)Y(+"["[6 2[2[2]=QQ͜Y͵@u0(Aͭ@@)Y(!ͱAA ?@@0###"[͜B͂BfG!9"[*]"[͞0S@҂0q4> 2[2[A"[ ȷ0S(8Bo&HBL?A>>67ÅABL?(A67ͅAA67>B1!2[NE2ç0*]'>BS(S(8#HB###*]'>x62zQ2~++ 2<2z<27!J2!\6A>"]1<<2A"t2BA S("t2Ba2 \NEV2BU2V2V2>2[1B*]#~²6"]NES(BD###û1(Dz(ANES( 2A2BD 3B͓ANES(DS@DMp+q+6###1B*]#~ʲ603A33#^#V"]~»1q4#~Gj_>[Ww#N3"]#~3'>S@͗3*]O"]Ñ3+#67S@͗3pA2[#^#V"[#~"]#^#V"]ͅA*]á3B 3\NEA ȸB3>þ3͛@3@(A(D(A?B3y O@(A!ͱA(D!ͱA ?B74(DD4A:?3BS@q4>2[*[*]!9"[2j[WG!!*.BÛ(B2[4'>#BPB͠ABҕ4͵@͠A)Y(L?͠Aʵ4ͣBژ4ͅAú4>">͠AB҆4NE*A^D+"[͏B͉G4}@\G}@5%O5ZB567͂A*]LͮGG͞G?5.BB4\G*]'>"]z5͞GGͮG?5F4G+&5H5\G!k[âG͜BB+EҒ5Dʌ5!]Zʆ5@Cʆ5 ʆ5$ʆ5#5~wR5͏BR5|(}!(2]BI5Eʲ5F(+E(|(}!](2]2]!]F~wxĂB5BA(DAz(ͮG5 4G5B*[>1B͉G>"B{6?4GE21^\G]L?Q6Mj6Bb6x,*6 j6?4G6C> >"[ 86x !6.B\G"[5#"2^.B#"[A>21^6 INPUT ERROR-RETYPE "B@ú3B)Y((DB(Dz({>6é]!]wz(#s#6(DB(DsB}@>!7NES(D"]AL?("]AL?("]>2]ɯ2.^QQ*A^͘U",!:!9)Y(2[:[¡7͋@a7R?(pAá7ʷ7ͣBҡ7Cҡ7A0XWʚ;|;ʧ;+<] 8B97~`A7"] DM!H7#HBB*[-S(8A67A7O!u: READY"PRESS RETURN TO CONTINUE" ERROR" IN LINE "0.+h+8/,/+.n,7-U-/r/U004]11{4532233B4q4436642662PkQ9OS(%7+--6LETFORPRINTNEXTIFREADINPUTDATAGOTOGOSUBRETURNDIMSTOPENDRESTOREREMFNDEF!ONOUTFILLEXITOPENCLOSEWRITECHAINLINEDESTROYCREATEERRSETRUNLISTMEMSETSCRAUTOLOADCONTAPPENDRENNSAVESAVEBYEEDITDELPSIZECATSTEPTOTHENSIZETABELSECHR$ASCVALSTR$NOENDMARKINCHAR$FILESIZEFILEPTRFILE([*+-/ANDOR>=<=<>=>=<<=>NOT^INTLENCALLRNDSGNSINSQRTATNFREEINPEXAMABSCOSLOGEXPTYPo; -= GH<H; I d;p;`C;O;=:::xa:::: Z;<<#<k;}`_E^<;w;w>Aw;w;w;w;w>; ;PYDMg 6;6;! 6;# +;$RA> PYRA J;J;BKJ;RA!_8UAA(DBŒ;(D!;DAá7AL?(Ñ;A͹Bҷ;L?(z(n&Ñ;A;Gx;O&;$ ;;$ ;%BK_8H+D>6ͩ]o&D͂A*\*]BD+Dn!\] D<M)Y(!\pAÔ;A͘U4S>w=>]UA]]I]]ͽH<]͵G]]H=ŷ͹B[>S(Aʐ>ʨ>>>C}>L?(z}>*]DMBA"]*]~ #zr>Ž>>B.>A(D͓AsA}>A(D{_–>:&P4Ö>A67A͂A͏B*]LX"][>*](>*]"]!9@B> ?*]z~+?! ͳA ?s#r#^#V#!ͱA## ?D ?##ñA͋@S(͡@һ?A>Br?@Ҵ?!ͱAô?> O@*?##(D@B(##N#Fxʪ?D+AÅ?A##B@ ?%?"]%?"]"]>B?(@4@!]@B?(*]+"]B@4@!]@B@("]A*]B(#"]"]7*]*]>=*]*]*](D("]"]"]B\ m@![S(ͽ3S@~?y@###"[A \![6AGCA?O͋@S(>$ByO͛@y@O;3S@A@µ@BA @\@B@͵@)=((AxA*?^#OT]HB|A~#A##!ͱA"]"] ?q###>2[7AA[?MAA0:?#"[!<~+ WA*] T]`ABK͓AUA<2[!\*] "]UA*]A"]*[*["["[*\A"\QB!\@BA!]@B)*C^+"]Y(,ABA)BS(B+"[*[~# B"[>,B+"[7 #B 0B"~G S(4G#0B#z+{~#fop#zQBAB6AoBCAB"["$*]"]*]"]*]"]*]"]!#"]A!\M"[!\pA¿B>""BB*["]G~#B S(B"[*]:[ ²6:[)Y(}o|gW>BBͭ@(@(%?A͓A6CL?CfCpA͓Ar+s+667ͅAB,nCCBڷC0C>>RC)S(C>)BڷC͓Ar+s+w:[!9͓Ai[S w +Cr+61j[>B•03C)Y("\"\*["[*\*\*7^";^*A^Ny7#"5^@B+?*9^*;^(";^ CC+(+(]wE> !\MpA67`A;͂A~(O #~D( bD~D( GDz67`ABK=:~D+D{Z*]`ApADI`A;`ApA+D`ABKD͵G`A DMͽH͂A+D{%`C"]bk)))*]_zW\UA;:xEz({YEXE|(}g(ByD!T)%E EA" ^N?D(N9E* ^+"[>B7#^#V#"[A *A^+E'C+(ɯ͜E͜E͜E͜E͜E>0"] ڟE*]BѰ>0:j[G ʴEʴE:&x*["[nG \!]6 ͮGO͞GO2 \2\ʹE F6 !] \~# E!EʐFʙFFFF_FFʦFF G@ G ڲFZF:[[FòF:\kF kFw#6 G4G ͞GO]! \w# €F6  *Y( ʲFcF͐F cFÜFʹE ·F4GªFcFG¼F ʲF%4GF:&G: \ʲF+6 :\4G 4G4G:\<2\4G>4G!] \#~ G@4G\G:1^E*2^.BE:j[  LG ͮG*.^4ͮG*.^6ͮG 4G 4G:&2[:[_4: *2.^:](K4>#B>ښG(DB{2j[!s[:j[O".^~!{[âG ¿G!^>6+=G!%^PH>!^ GOͭH>w GH$^OͭH H+=G^tH^͟HG~@GHAH>GHG(G怰^UAO+wTH+w!~ʊHP+>ÓH>'w+ >“H !T]OHշ'w+°H!(^w+ H(^ Ho`iH/< HUAV^+~ I!^IO+ I*I#T]PH~P+ԃHF+I7>'+ BIlIx'w+ ?^IT]#wrI#~‹I |I“I xwI6©IPH+WA'+´IIWA>~͊HxG(pOHM( ! "^!-^w+I6!%^PH!^w+J w+J6^!-^͂JG!$^͂J*^w#"^ ,JtH͟HgoAʀJyJ>JG(W{怲 7>'+ŒJڅJͭHy"^G!]6":]J+60(=ôJ+6." ^"^" ^J+6 J"^+6!*^~PKAK0ͺK JH KͺKKAKKK+~.K,K"7K1ͺK!]:]#bK:]zK~0nK6 +bK:]#zK#6"+~"^.›K+~ ʖK!›K##60ÛK>0ͺK*^~>-K*^/GK>0KîK:]@K!^5K6>,K* ^+W~!(" ^r*^#W~"K"^rz5PKK>W>0x=_*^~L0>2^>2^:]IʨL#xLEL:]ͧJ:] QL~>+K>$K*^:]#kL#~ cL+T]"oL!"]~ʨLILG+~›L~ʍLxALD:LD(2]:]<ͧJ>"2]@L~2^LAw:]ͧJ*^~.L#6E#:^+LAL-/"@L2^2^2^>2^+HMHMCM-IM>2^"^>+6=NM" ^" ^NڈM.mMNvM7!^5NoMMEMûMNʅMږM.sMÁM1N!^4NږM.MEM!^@mM!^*^w* ^:^GNM1NMEMíMNM+MM-MmM2^NmM_NNDN:^{ʮM/<îM* ^~2^#" ^:0?7G!^4~* ^QNINxw~w#" ^x͂H#6!^4p+*\*A^~ʇN#@B+ʜNڜN~OkN:\O*?^N6"?^F"^:\ ʵNʮNNNG:\xO*^O*?^"?^ON/<OO*^N6"?^*^:\\Ow# xNw+ xO:?^O:@^GɅo$*?^O4!C^@Bp+A>BOX#A(D͂Y7(>%B_OeD,YA>B>&BOZBʭO\Y67͂A!\~O6~ʹQ#OBbO\Y>ÊQ'>|##O\Y>ʹQ|ʹQO\Y>ʹQ}ʹQ*]"]zʜO~ʹQ+O\Y(D({ʹQÜO(D͂Y7(>%B!PeD,YA>&BҡPL?VP͈X(Xw#BPB$POP*]XsP(wPXWX_*]+BA*]zʝPXw+ËP>L?(Xo&DͅAOP#A(D͂Y7(~P!ͱA6# ?>%B>P(D{A͘UºT~ 7(>7(2]%?### ?%?~(~!]w,Q) ? ?r:]wBDL?(ÅA͂Y Y͹UĕS6TQ#A(D͂Y~ Y~w͹U•SX*=^~ w͛Qw~#%? NQ++~G ͊Q q*=^~怰 Y %? ?A(DUB>8 (Dz((!9wtu6wwww>J!9‡R!Y>J€R> J>J‡R‡R!Y>J€R!> J>J‡R‡R>J‡R>J2ZG>J!R\~# ( ( xŸR6)#6"\Y(HDOS (*=^Nfn V^UR(U(UV^RSUF N > J‡R>J‡RU*=^tu>J n&Ñ;‡R!_8pAÔ;!9fntufnUtu6pf n >J‡R!9*=^f n >J*=^6 ‡R!966wwwwtu>J‡Rfn!9+"[A "[7-(D!Y>J€RU> J€R>J‡R"[7-!Y>J€R>>(‡R͌/o&U>J€RѷR0 > J‡R!9u*A^tuww6>J!9>J‡R‡RU>J‡R*=^~ ݶ !ͱAt u www f n !]>J€R>(€R*=^6 >J€R*=^Utu~w@Q!Y>J€Rx>(€R*C^͓/o&U}nU%$ 8}!9w6wwrs>J€R!9>J‡R7&QQ25>J .>J!}(‡RAÛU*=^~ yOU(,-la#|(<#)(<\G:320^͉G+EV|(}A S(!_4"-*j[%>J‡R (A>J‡Rnf"Y2Y_W>J‡R͑VfG!R .\G.!W.B!YSW!W.Bh&͝W\G.\G~ )^Vz ^V*YR Y*YR .SWnf̓W~o>(- o&͝WWHSF AiWWN(AiWU~ AiWDV(AiWn͝W-}\G}nf WoW\G͏W\GWF#x  iW W:j[ 0ͶWͶWîW0xͶW)ßWW0ͶWßW0ͶWͶWͶW/"YڸW*YxW:iWGiWW iW ACCOUNT: "DRIVE: "A(DA͂Y7(%?DjAD͵G*=^ n&D`AH͂Aá7A(DA͂Y7(%?Dá7#A(D͂Y7(A(D~ 7( YS͈XͷQX*=^͛Q~͹UQS~O#%?%?%?@B((%?!X"yXzW{_>"!1("7(!1("1(6 #6 #=X*=^~@~@wÓX~@~G~p ÓX͂Y YY*=^~ @BOYxOY{_@B Y ?w͹UR*=^ ##F#~#N+ W\@B(z({( D[~"=^![hOB!7("-!1(" MDEL FMEOLCOPYRIGHT NORTH STAR COMPUTERS, INC., 1978, 1980, 1981TAb E_Q[U'Db4'PPPPPPPPd[\@bPwPBYE E FTR B (Hunk) size =",2^4," sectors" " ] FTR B (Hunk) size =",24," sectors" ,35,0) ADDRESS LEVEL " 80 ILL A9,0 BYE E FTR B (Hunk) size =",2^4," sectors" " w]PwPw##HuB]{[ Iu[wAbsb#{20!^fn1b!!>22bG>JF͍^# r^ ͍^ ͍^!{b> ^^^_]_s______+`?`J`r```` a@abatayaaa!a"a* &#"a!aKa[a*abkÈ^:a*""b!_"Ka[a*a"*"b"b^:5i^*aT]:aG>J ~ "a~!ˆ^!È^G>Ji^*a#"a|(Å^!a>Ji^Sa"ab^:aG*a>J*a" b!a>A`* b>JA>JÈ^* b>A`2$b* b!$b:a2)b*a"%b*a"'b>J>ͪ_i^"ab^>ͪ_i^:1b_!"ab^>ͪ_b^i^:aG*a>Ji^!a>Ji^*a" b!a>:aG*a>J!a>b_> Ji^b^!:aKa[a*aM2ax2ab^i^!:aG>Ji^!a>Ji^bk"a:aG>A`!a:a"ab^g^!a!a>Ji^*a!a>Ji^*anf"a*a[az> *aJ >A`>Ji^>ͪ_i^"ab^*aKaa"ab^x(a,ayA~(_#^#V*a[a~XazXa#Ga"aSab^Ka[a*abkÈ^>A`:aG*a>A`!a:aO:aG>A`:aG>A`*aSa*aSa*aSa*aSa26a͸'P0*6ͷ2982/8;'! aNbbÔd!Iq6298-'b!Q845%brg!#b>Nb- :O8/!Iq!:8  TAL RECOVER 102381  J$20) ( H616 \ NUMBER OF SECRS PER HUNK $( T972831 \ PTR WHAT WAS - p, L7,E7 2 S0VT) < S1S0,0) \ INIT F S11 TK1) P S2S18\S3S28\S4S38 Z V1S1) -d V2V12\V3V22\V4V32\V5V42\V6V535 n B1S2) \ BUFFER SPACE &s A9972824 \ ROLC DISABLE FLAG x I1 25 \\ 1 14),"TOTAL RECOVER FROM FLOPPY DISKETTES"  ( 19),"NORTH STAR COMPUTERS, INC."  25),"VERSION 1.0.0"  D "This program erases all files and accounts on the hard disk."  "Is this what you want?",  Q0)    "Hard disk drive # :",U8  U8100 U8105 5 7),"Unit number must be 101, 102, 103 or 104"  V11,U8  3 IN AN EMERGENZY, WE CAN ZERO BADSPOT SECR " E969 ^ !, B1,0\TS1,511,B1,B11,0) -6 S13,1,16640U8101,B1,2) @ J $@ "UNABLE TO WRITE IT"\ TK0) !J "ZEROED OUT BADSPOT TABLE" T ,^ "Reading badspot table from sector 2" +h S13,1,512U8101,B1,2) r  /r "ERROR ATTEMPTING TO READ BADSPOT TABLE" | X  TB12)  T2T2)  2 "DISK LABEL AREA MARKED AS BAD...proceed?",  Q0)0 TK0)  B12,T1  C0VB1) $ "Badspot count given =",C0  IB12 B1511  XI)  X0 &  J7 0 1  K2J  XK   CC1  XXK  J & I : CC0  #? "Count of bits in table =",C )D "They are not equal.....proceed?", N Q0)  2X "You may have to run the disk test program" 1b "if the badspot table has been clobbered." l TK0)  I1 500  B1I2)0   I  "IT'S ALL BAD??"\ TK0)  SH68I ' "Creating directory at sector",S  B12,B12)1 . B1I2,255 \ BLOT 8 HUNKS DIRECRY + TFB1,C9) \ ADD DIR,LABEL O COUNT   DISK ALLOI BIT LE - S13,1,16640U8101,B1,1)   , "ERROR ATTEMPTING TO WRITE BIT TABLE" E  DISK LABEL 5 DISK LABEL ZEROES DIR ADDR AULT PATHNAME ) \7) ,"Construct disk label for:" 0 \20),"1. 18 Mbyte disk with old format" 0 20),"2. 18 Mbyte disk with new format"  20),"3. 5 Mbyte disk" = \8) ,"Selection : ", \ A9,1 \Z1$0) \Z1$ \ A9,0  Z1$)3 K0) 9 Z1$"1"  \ Z1$"3"  \Z1Z1$) \  ) 7),"Enter 1,2 or 3 please" \   TLZ1) -> S13,1,16640U8101,B1,0) H R ,H "ERROR ATTEMPTING TO WRITE DISK LABEL" #R B1,0\ TS1,2047,B1,B11,0) \ IS S127 4 .f S13,4,16640U8101,B1,I) p z 4p "ERROR INITIALIZING DIRECTORY, REAL SECTOR",I z ".",  I ! \"Creating SYSTEM account" = TS0,21) \ INITIALIZE MANAGER IN CASE LABEL CHANGED " TS0,24) \ "POWER UP" UNIT  TWV5,"SYSTEM",15,0) 4 S0,14) "***TROUBLE CREATING ACCOUNT***"  "Initialization complete" & "COMREC,1")2 "COMREC,1" 9 "Can't continue as the file COMREC,1 is not there."  TK0)     FUNCTIS    F  FA,D) \ WD $ A1,D256) . A,DA1)256 8 0 B G Q L QD) \ YESNO QUEERY V ": ",J$ ` J$"YES" 1 j J$"NO" 0 t "YES or NO, please" ~ V   S & SN,D1,D2,D3,D4) \ SUBRINE  D1S1,D1)  D2S2,D2)  D3S3,D3)  D4S4,D4)  NS0,N)  N   V  VD)D1)256D)  W  WA,J$,N,F) \ STRING  I1 N 0 IJ$) AI1,F AI1,J$I,I))   I  0   K  KD)  D0  $ \ "Press RETURN to reboot",Z$  T59392)  D1  9  "Error initializing the assembly language routines"     "Undefined error"    p ROLC z E715 TK0) &X "Error number",E7," in line ",L7 b TK0) @ L )J LA1) \ SET UP DISK LABEL &O \"Constructing disk label as:" /P A11 (# \ OLD DISK LABEL 18 MBYTE #T B1,0 \TS1,511,B1,B11,0) =^ TFB1,65280) \ ILLEGAL DIRECRY ADDRESS FF00 65280 ,h TWB12,"TRANSIENT,SYSTEM,101",35,0) >r "Auto load and execute pathname = TRANSIENT,SYSTEM,101" 5| B137,1 \ MAJ DISK STRUCTURE REVISI LEVEL 0 "Major disk structure revision level = 1" 5 B138,0 \ MIN DISK STRUCTURE REVISI LEVEL 0 "Minor disk structure revision level = 0" ! A13 Z29776 Z235280  TFB139,Z2) ) "Disk size =",Z2," usable sectors"  A13 Z216 Z2504  TFB141,Z2) 6 "Sectors reserved for destructive testing =",Z2 - B143,4 \ HUNK AS A POWER OF TWO ) "DIB (Hunk) size =",24," sectors" % TFB144,128) \ DIRECRY % "Directory size = 128 sectors" ( TFB146,S) \ DIRECRY ADDRESS  "Directory address =",S  A1 \ UE IMPTANT " OLD DISK LABEL " /(# TFB1,S) \ OLD PLACE DIRECRY ADDRESS -# "Directory address =",S +2# TWB12,"TRANSIENT,SYSTEM,101",35,0) ><# "Auto load and execute pathname = TRANSIENT,SYSTEM,101" F# A1 \ UE IMPTANT P# 0oOoOYpOpOqOMrOpPG ~#" =+" =(=(>%t%E0ͷEàE.# %F.2B>t%* ~# .+" 0?:#.>$t%..-7!J.T].-* +" ͷ..ک.O)G.)G.)G.)G.oBK)80)8- 8*)8' 8y 8ͷ.Hڏ9ҏ0>i=¶üx8 {0ڏ4ҏ0>{0ڏ8ҏ0>i=¶ü. KQ{_d!#k ͧ(  Ò N#FQͼ_!k8w#{8 w{0#6 $%.A[?0:?A B C D E H L M SP PSWX Y ˉ! {ˁ' {W͗_! ,##!( ## !p!lAO##O!( ## !x!t!" z͟(MˆA(I(*6{*Q{I(*[{*@{CPPSXIYIFACBEDLHRIDRRWRRRDAFBCDEHLIRx='I(!Y!>A( 8 0N#F+Q{$x=I(!Y!>A(8~={ѷ7ˉ! {ˁ' {!͟(7CHNPSVZ@!#FA(!<!FI(~(>==xG{ѷ>2|:|(қ<2|!T]B:|ʘ=2|2&[#"9[";[>2,[!zX"XW>2X>2zX2Xң+*9[~ʀ+h+͛S!;[FP+*9[:,[u+*/[60.,"7[:,[ʝ+*/[#͵C*-[F,,0+!+6+/!X{X:+6# »++GG͂B> 2YW:&[*9[̪42zXWWWK>2X!<ͽFK*X!"/["1[2)[:XN,*XYJ> !Y͸F*X*X4"XY͊GLOYkJQ,eJK:Y 4,.s,:Y4R,4|,+!Y"X͍F !Y͸F+͡H*ZF:&[o&͡H*ZF2Z*X*X"Z*Z###"X5ARG"DIMENSION"FUNCTION DEF"OUT OF BOUNDS"TYPE"FORMAT"LINE NUMBER"FILE"HARD DISK"DIVIDE ZERO"SYNTAX"CONTINUE"TOO LARGE OR NO PROGRAM"DOUBLE DEF"CONTROL STACK"MISSING NEXT"READ"INTERNAL STACK OV"INPUT"MEMORY FULL"ARG MISMATCH"ILLEGAL DIRECT"LENGTH"NUMERIC OV"STOP" BLOCKS"!Y"XͺI"Y*XYͰ/~].6);.6,:.6\S=G/#.5//.~ ʧ/ #".~ ʧ/ #".#/x #/#/#/#/#/w/w/w/w/w/w/.Ͱ/"XͺI>D}*X.  x Ͱ/,.# w/> !Yq+ # ~ ʳ/#FJ##~// /!S=#/~/#//#FJ/*9[6"7[*;[6+"ZU*7[#"X!4@F2XͺIڠ,~4wʠ,0!XFڲ," +7+LͷH|²,}Ҳ, ڲ,L}*&[wͣFͷHz.w0.9*&[w*9[~ʜ0eH*7["/[>à0*9[2,[>2&[U͍F>ڠ,O͵C##~¸,~怱O#~,*;[)40| 0",73+͍F>Ҡ,"4o&*X#"X~ )1 1ͺIڠ,>2&[N1:([O:3[*9[""Xþ1!/2([b1xGyO! ҂1,W_:4y1,z!$;,ͰC"3[ͰC:&[!/w , w#è1"42Z͍F>ڠ,O͵C͵C~怱O~¸,#z:Z1 1=Ҳ,w 2*9[",͍F ,I,͍F ,Y;/+͈2>,vFͷHͣF>e2ͷHz²,,2&[!ZN1͈2>,+6 ~2! "Z!Z7pC> ! "/["1[ͺI2"/[ͣF2ͺIڠ,|ʲ,"1[͍F  ,eH*9[~3###"X͕F 2I2eH22*3[*X++ͰC2*1[DM*/[*9[~#ͰC͛S 3LͺI>13}!8"-*zX%L:+2([͍F *9[*7[p3IͣFp3͍F *7[p3I#"Z͍F  ,K͍3~ï3:zX:([=«3!<ͽFeJK:+=2([Y;/#͸FKK!ZFڀ3! "X"XͺI3"XͣF3ͺIڠ,|ʠ,"X ͅF>2X+2X"4o&YJ> ͸F!.ýF*9[*7[͊G#}34$|ͺIڠ,͗HvFͺIڠ,͗H"&[ ͅF!&[FҠ,0*&[~͛S*7[͊G#DM~S+:X.,2X2X"Z"X5!zX"XI,K0*9[~).,+"X"X6 2X2X2Z͂BUWEE 5ʬ,ͅF=E͉E4.,!@F~FͰC\E4###"X+GGK!9"X*Z"X45D59> 2X2X͍F"X]5,=͕Fo&FCͅF>pC;FGCʸ,ͅF;FͅF;>ͥFҨ5!GAEë5;"F*XDE;r+s+r+s+6"X"&[GEEM.*&[,555G2Z*Z#~E;#E6CFE;N#F:ZUM~F:6DM͑?G6"ZFD"X5Fʂ6;FͅF:X6>2XIs7=5*ZͷB͕F,,Ͳ<#F###*ZͷBx6z6~++ ʱ66z67!6!X6A>"Zf6<6͍F"7͕F͍F ,"7͕F6 \I6͕F666>2Xy6G*Z#~E;"ZI,G͗H###N6ͷHz²,ͅFI, s7vFa7G͗Hß7G"FI,͗HDDMp+q+6###S6G*Z#~E;77ì7#^#V"Z~N69#~Gz_>XWw#7"Z#~8ͷBD*8*Z͉S"Z$8+#;D*8E2X#^#V"X#~"Z#^#V"ZF*Z48G Z8\I͍F ȸ͕FZ8>Q8+Eڒ8͉EҦ,~FͷHʦ,̓F͢CͣFp8y O͉EҦ,~F!@FͷH!@FͰCͣF8ͷH͂Iì8̓FCË8GD9>2X*X*Z!9"X2zXK!.ͽF3-G2X+>#ͥF҉TG/FͣF(9EE/F[.,C/FH92G+9FM9>"pC/FͣF9I*9[ԗH+"XGLu9 EK Eq:%9Fʭ9;F*Z͞P,LGL9ͽFͣFu9K*ZͷB"Zzʤ9LG,L9FͲK+ù99K!X L+G͕FͺI%:D:!ZZ:@C: :$:#`:~w9G9|¾,}!Ҿ,2Z͕FI]:EE:F¾,ͺIھ,|¾,}!ZҾ,2Z2Z!ZF~wxGä9͕F~FͷH̓Fz²,,LҤ9 ͲKÂ:G*X>1ͥFL>"ͥF;?ͲKeJ2)[KYC:͠Q:ͣF:x,ʽ: :?ͲKé:OH> pC"X :x !$;ͽFK"XÑ:#"*[ͽF#"XvF>2)[î: INPUT ERROR-RETYPE "wG\EM8wG?.,ͷHͣFͷHz²,{>f;áZ!Zwz²,#s#6ͷHͣFͷHsG E>ʴ;I,͗H"ZvFCʸ,"ZvFCʸ,"Z>2Zɯ2&[U*9[͈2ï0! ?!9`.,2X:X4<E;Cʸ,E4 Ͳ<͕F;~EŽ<"Z DM!;#F͕F*X-,Ͳ<~F;̓F~<O!? READY"PRESS RETURN TO CONTINUE" ERROR" IN LINE "4=3$0/30}40201(2544%3]5x5f95Z69:M8@7}77p889W9k8B;9;f9S7K;u;,79UUS,;H0q2=2;LETFORPRINTNEXTIFREADINPUTDATAGOTOGOSUBRETURNDIMSTOPENDRESTOREREMFNDEF!ONOUTFILLEXITOPENCLOSEWRITECHAINLINEDESTROYCREATEERRSETRUNLISTMEMSETSCRAUTOLOADCONTAPPENDRENNSAVESAVEBYEEDITDELPSIZECATSTEPTOTHENSIZETABELSECHR$ASCVALSTR$NOENDMARKINCHAR$FILESIZEFILEPTRFILE([*+-/ANDOR>=<=<>=>=<<=>NOT^INTLENCALLRNDSGNSINSQRTATNFREEINPEXAMABSCOSLOGEXPTYP@ A 3LUMMA>MU@ cN ?@]??B??~?p^?h?x?n? ?@@@?u]\=[A͓?w͓?w>Aw͓?w͓?w͓?w͓?w>? ?PYDMg ??! ?# ¾?$E> PYE ??BK?E!f;͡Zo&áHF*X*Z͊GáHͺHná@{F!"Z!Z7pC!XZ @͠Qs.,!XE'@{F͈2>A!͎B>ZEZZcNZZ>MBAZ3LZZUM=tA!ZEwTB@TBA APY!GAEmIB=AB͑?BEͺHZEZ3LAE͊\!XF3L=[WB=BEBKB3LͺH+"ZZB:+W0!G#LB"ZF*Z}-fB?|g}o`B"Z#͡HEBKBcN!"ZeS`E"&[E3L*&["&[UM=ÙBŷHGB,͍F C8CRC>͑G CC¸,z C*ZDM͊GUF"Z*Z~ #zCC>ͥFҾB{FͷH"Fs̓F C{FͷH{_&C:+8&C{F;̓FFG*Z͞PX"ZB*Z͸B*Z"Z!9FڎC԰C*Zz~+×C! BFͰCs#r#^#V#!@F## ͰC͂IͰC##@FE,1EKD͍F>ͥFD͉EDD!@FDD> O͉EܺC##ͷHFҲ,##N#Fx:D͂I+vFD̓F#ͲF͉E ܢC͵C"Z͵C"Z"Z>ͥF?ҸDD!ZFځD²,*Z+"ZͣFڣDD!ZFڟD²,"Z̓F*Z͊G,#"Z"Z7*Z*Z>=*Z*Z*ZͷHʲ,"Z"Z"Z͕F\ D!X,P8D~? E###"X͍F \!XEGE?OE,>$ͥFyO+Ey@OQ8D͕F 7ȸȹEE͍F rE\rE͕F\EEE-,ʬ,ͅFxA*7[#͛ST]F|ʧE~#”E##!@F"Z"ZͰCq###>2X7͍FA[?E͍F0:?#"X!GA~+ E*Z T]EBK"FE<2X!X*Z "ZE*ZUF"Z*X*X"X"X*XUF"XF!XFiF!ZFy.*;[+"Z,,ÅF͕FÅF)͕F,͕F+"X*X~# ʘF"X>,͕F+"X7 ²F ÿF"~G ,ͲK#ÿF#z+{~#fop#zF͍F̕FEFEԕF"X"$*Z"Z*Z"Z*Z"Z*Z"Z!#"Z͍F!X͠Q"X!XENG>""WGͥF*X"ZG~#pG ,aG"X*Z:X E;:X.,}o|gW>ͥFG=E,͉Eڬ,͵C~F"F6OHCOHGE"Fr+s+6;F͕F,GOHͣFFHÿG>pCG),OH>)ͥFFH"Fr+s+w:X!9"FyXS w +,Hr+61zX>ͥF+5å7OH.,"X"X*X"X*X*X*/["3[*9[Ny7#"-[F+?*1[*3[ڲ,"3[ pHeH,,ZJ> !X͠QE;EU@F~,O #~SIڲ, H~SIڲ, Hz;EBKB͑? IͺH{Z*ZEERIcNEU@EEͺHEBKRI3LE DM>MFͺH{%`C"Zbk)))*Z_zWXEU@͑?xʣIz²,{YͨIXͨI|²,}gò,ByÎI!T)I ®I͍F"[͜R?SIڲ,͜RI*[+"X>ͥF7#^#V#"X͍F *9[ͺIڠ,eH,ɯ+J+J+J+J+J>0"Z .J*ZBѰ>0:zXG CJCJ:+x*X"XKY!Y6 ,LOLO2Y2YCJ —J6 !YY~# J!}JKKXKSKGK_XKXK$KxKʊK@ʊK 0K:YJ Jw#6 GͲK LOY!Yw# J6 ., 0KJK JKCJ 5KòK(KJG:K 0K%òK\K:+G:Y0K+6 :Y²K ʲKòK:Y<2Y²K>òK!YY#~ K@ͲKK:)[eJ**[ͽFeJ:zX  K ,L*&[4,L*&[6,L ͲK òK:+2X:X8:.2&[:Z-8>#ͥF>LͷHͣF{2zX!{X:zX͛S"&[~!X L =L![>6+=DL![L>![ sLO.M>w fLʌL[O.M ƒL+=XL[L[ MG~@LL>L.,G怰[EO+wL+w!~ MP+>M>'w+ >M !T]Lշ'w+1M! [w+ IM [ rMo`imM/< wMEV[+~ …M![ʟMO+ ˜MګM#T]L~P+MF+1N7>'+ MMx'w+ ?MT]#wM#~ N MN xw!N6*NL+E'+5NLNE>~ MxʼLpL, ! "Z!%[w+}N6![L![w+–N w+žN6[!%[OG![O*Zw#"Z ­NL MgoAON>OüLW{怲 7>'+ OO.My" [G!Z6":ZCO+60ʾ,=5O+6."["["[YO+6 OO"Z+6!* [~OA*P0;P yOH }P;P†OA}PcPÑO+~.ʛO,ʛO"ڸO1;P!Z:Z#O:ZO~0O6 +O:Z#O#6"+~"[.P+~ P!P##60P>0;P* [~>-SP*Z/GʐO>0cP/P:Z@RP! [5RP6>,SP*[+W~!ʾ,"[r*[#W~"sP"[rz5OÛO>W>0x=_* [~ڙP0>2 [>2Z:ZI)Q#PEBQ:Z(O:Z P~>+SP>$SP*Z:Z#P#~ P+T]"P!"Z~)QIBQG+~Q~QxABQmI»PmI¾,2Z:Z<(O>"2ZP~2ZNQAw:Z(O*[~.aQ#6E#:Z+wQAwQ-/"P2Z2Z2Z>2Z+QQQ-Q>2Z"Z>+6=Q"["[͜R R.Q͜RQ7!Z5͜RQORE]RͥFҦV#ͅFͷH͵W,>%ͥFSHgWvF>ͥF>&ͥFtTF.T͗W;F!X~T6~%V#TͣFS͗W>UͷB|##LT͗W>%V|%VTT͗W>%V}%V*Z"ZzT~%V+bT͗WͷH²,{%VTͷH͵W,>%ͥFڢTHgWvF>&ͥF"UCTVʸ,Vw#TͣFҥTT*ZVT¸,TVWV_*Z+͊GUF*ZzUVw+ UÂCCʸ,Vo&͡HFT#ͅFͷH͵W,~iU:!]U)@F6#ͰC>%ͥF>wUͷH{vF͈2>,2Z͵C###ͰC͵C~¸,~!ZwU)ͰCͰCr:ZwͣF͡HCʸ,F͵WEW6U#ͅFͷH͵WEW~w5W*5[~ w Vw~#͵C N"V++~G U q*5[~怰EW ͵CðC{FͷH̓F͵W,͵C͡HERI3L*5[ n&͡HEUMF4<{FͷH̓F͵W,͵C͡H4<#ͅFͷH͵W,vFͷH,V(V5W*5[ V~~O#͵C͵C͵CFڲ,ʲ,͵C!W"yWzW{_>"!,",!,",6 #6 #=*W*5[~@~@wV~@~G~p V͵WEWZW*5[~ FʊWxŠW{_FEWͰCw*5[ ##F#~#N+ W\FҲ,z²,{², ͂IX~"5[!XPF!,"-!,"COPYRIGHT NORTH STAR COMPUTERS, INC., 1978, 1980IfFI&L&LY(\5y,PPPPPPPPzXYGmPBYE ET 46591 Y 46591 BYE ET 46591 Y##BYXXmm!GAEa\͑?!FAE\\͑?ڲ,EEQ]3LEBAUMEU@EEEZEZEZU@Z>MZf\3LZZ>MZUMEk\3LE>MFZEZ3LZZ!z\>͎BZZ!\>͎BZ3LZ>MZcNBAUMBAcNE~wͺH{4\/<{P\p\cN3LO\<wPbCseQA)%FI=1b'vA$8C 2BDCA͕\LAcNʲ,,>@BKL]͑?ҵ\=ʲ,4ZEBA>MBA>MZGAUMZcNZEZ3L>Z!`]͎B>Z!t]͎BZ3LZcNQ]UMZ3Lo&͡HEG]>MEUMFdB1b'v@@)h1cIAg5`iBABKL^UM2ZEEQ^cNEBAUMEU@EEͺH{ʽ]:Z2ZEZEZEZU@Z>MZV^3LZZ>MZUME[^3LE>MFEE3LEZ!o^>͎BEZ3LZ3LZUMF:ZwpycA1AY&A1AAY&SX=ffW3Q>t&0;Aڙ^!GAZEZcN!ZEZEZ3L> ZZ!_͎BZ3L^Z ^L^UM!Z^~^wE@333#@'YE@w&g?D5u3"'C?q@IT>NE 4 S2A9402 \ ADDR OF SECR PULSE TIMING RINE ( B1A9512 \ ADDR OF BAD SPOT LE 2 B2A9178 \ ADDR OF BAD SPOT TESTING RINE 4 B3A9300 \ ADDR OF BAD SPOT LE VERY RINE 2 R1A9142 \ ADDR OF MULTIPLE SECR RINE 2 W1A9S>:dOd!h˽">VbXbXb! w# x > x>`!s,r-$$R>> bdbbdb!{2 ds#r# x ɷ,c=(=(Mb!#*R0Rbb!b)b:*c2*c)c*`#"`<<<<}<<<`F2*cF!`>0= # x *`R*`> >((  Pc!>W O(#}){ Pc!>(> #(:deG>Jd+d%d2 d<2 d14d(>f{2d>2 d!9"d2d* dw!Xffg5j5j:dO5j(x~Ĕg!efde:d=e( !ef!= !ffde=e!ffdex >. g y !wff=ex >. g y !ff!!T: dw#{ le fx(!6ff*d!*d!le>͖e(fx(>͖e!!*( (:dO>*G: d xxçb!ef|}g}}gg HUNK FOUND BAD = FORMAT ABORTED BY BAD TRACK 0 FORMAT AND VERIFY CYLINDER 0 FORMAT AND VERIFY LAST CYLINDER FORMAT ABORTED BY WRITE ERROR DRIVE INITIALIZATION ROUTINE DRIVE INITIALIZED, START VERIFICATION START WRITE INITIALIZATION END VERIFICATION >2d"Ij5j[lg(*Ij~# gf> g> G:d  : d8 !Igf(0 !hgf: d( HIT SPACE BAR TO CONTINUE - PROGRAM CONTINUING ͆g0: g g: d2dx!g (#!g> O ~#fof!Wjf !pjfig᯶#!gO!Th ~#fonoptuvy{lmhhhhh$h$h1h1hBhBhLhDATAHEADERPOSITIONTARGET SECTORVERIFYSYSTEMkhhiiibhg>2d* d~2l* d~2l* d~2lͲhf!kKl ~ig!ujflfi!j* d~2l* d~2l* d~2lf!j͸hg2l> 2l!0l6+=w+ * d=l * dLl ! kfl:l :lOG8ARj͆g}gg=lpiLlfARjRj}gg!Akf:l=i( 5> j50d8:l !pjfgig8i!`kf:Kj}gf:Mj}gf:Lj}g[Nji[Pjigfz}g{}gCl20 d8d x g 8 :x (y0 g gKl2KjCLjSNj"Pj* d> g ERROR - ERROR NUMBER = NONE ERROR OCCURRED WHEN REFERENCING: CYLINDER = , SURFACE = , PHYSICAL SECTOR = , LOGICAL SECTOR = DATA READ ON HEADER IN ERROR WAS: BYTE # EXPECTED READ NUMBER OF BYTES IN ERROR = REGISTER VALUES FOR CALL: NUMBER SECTORS (A) = , COMMAND (B) = , DRIVE (C) = RAM ADDRESS (DE) = , DRIVE ADDRESS (HL) = ' $!( %") & # x :d[Nj͂lxÔgn”g͂lnÔg:d(ļl lļl : do  ŸlʱlßlClͼlSlSl2l {0!Kl:lw}! "POWER DOWN? (Y/N)" \ T$0) \ T$"Y" FA9433,0) 8  \ "HIT TO REBOOT",T$ \ F314)256,0) Q C^xWCxB 1 x%E x%`E %BEx%EpEx%IEx$W`Ex%&`E%8Ex%#E%"@E% E FY E %#PExfByeBeB2  BN)   FR2,N)  F1 CTRLC  F0   AA9188) \  + C2C221\ND1D3)ND1D3))".",  \ 7 #O,"PATTERN READ/WRITE TEST PASS",I," COMPLETE"\  P40~ $ Z73 ) * SERVO HARMIC SECTI + . I1P4 8 ND1D22\J1\K1 ,B MND3\BM)V\FR,M)\H1\F0L G F1  CTRLC L MS91)256S9) V NNJK\JJ1\KK\C2C21 j ND1D2N0B 3t #O "SERVO HARMONIC TEST PASS",I," COMPLETE I1 24 \\  11544,1 0 "**** WARNING **** Level 2 test..." \\ N "PROCEEDING WITH THIS TEST WILL DESTROY ALL EXISTING DATA ON THE DISK"\ 1 "HIT TO PROCEED OR TO ABORT" 4 T$0) \ AT$) \ A27  \ A13  ( 1288,40 \ 40 RETRIES 2 Z70 \ ,Z8,Z9 < C10 \ COUNTER F C20 \ COUNTER .P D14 \ NUMBER OF HEADS PER CYLINDER %Z D2210 \ NUMBER OF CYLINDERS ,d D342 \ NUMBER OF SECRS PER TRACK n D424000 #x E50 \ SEEK ERR COUNTER $ E60 \ HDCOM ERR COUNTER  B$80),P4) + A925088 \ ADDR OF AUXILIARY RINES $ WA9 \ RINE 1 SECR $ RA934 \ RINE 1 SECR * S946592 \ ADDR OF 21SECR BUFFER * B7A9178 \ RINE TEST BAD SPOT ' B8A9188 \ RINE SET BAD SPOT ' B9A9512 \ ADDR OF BAD SPOT LE ) F9A9512 \ ADDR OF MATTING RINE & W1A9136 \ RINE 21 SECRS & R2A9142 \ RINE 21 SECRS 2 B1A9147 \ RINE BUFFER WITH PATTERN  3 B S 1 SECR M IS BAD SPOT BE TESTED  BM)  P6 0 B7,M) " , - PATTERNS &6 P1)170\P2)149\P3)1\P4)254 ; T IB9 B9511 \ I,0 \ $^ "HARD DISK UNIT (101-104): ",F $h F101 F104 ^ \ FF101 r F915,F \ A952,2552F #s 6,32 \ 0,255 \ 0,2552F Bt 0)99 | "HARD DISK DRIVE NOT READY - WAITING..." u 0)91 u &v \"...DRIVE READY - ", \  )| Q11 \ SIGNY DISK BE MATTED  FR,2) \ F0  % I0 511 \ B9I,S9I) \ * B9)256B91)A9300,0)  ,l P10 \ SIGNY NO HALT ERR DETECTED & P20 \ SIGNY NO INUOUS REPEAT ' P60 \ SIGNY TEST BAD SPOTS $ P34 \ 4 PASSES PATTERN ) P41 \ 1 PASS SERVO HARMIC TEST & P51 \ 1 PASS SERVO ROM TEST  O0 \ PUT CSOLE  F911,O  Q10   F99,0 3 "DISK NOW BEING FORMATTED"\FF93,F915))  F2    "TRACK 0 FAILED"\  "FORMATTING COMPLETE"  1288,0 * F99,1 \ P30 / 0 PATTERN SECTI 1 4 I1P3 > P9PI4I4))4) H FB1,P9P9256) R Z71 W X LOOP PATTERN Y \ N0D1D2D31D32 p BN)  z FW1,N)  F1 CTRLC  F0   AB8,N)   / C1C121 \ ND1D3)ND1D3)) ".",  \  Z72   LOOP PATTERN   N0 D1D2D31 D32  BN)   FR2,N)  F1 CTRLC  F0   AB8,N) \  0 C2C221 \ ND1D3)ND1D3)) ".",  \ 9 #O,"PATTERN READ/WRITE TEST PASS",I," COMPLETE" \  P40~ $ Z73 ) * SERVO HARMIC SECTI + . I1P4 8 ND1D22 \ J1 \ K1 4B MND3 \ BM) V \ FR,M) \ F0 L G F1  CTRLC "L MS91)256S9)  %V NNJK \ JJ1 \ KK \ C2C21 j ND1D2 N0 B 3t #O "SERVO HARMONIC TEST PASS",I," COMPLETE"\ ~ P50   Z74   SERVO ROM SECTI   I1 P5 \ N1 3000 ' M0)D1D2)D3 \ BM)   FR,M)\H1\F0  F1  CTRLC  C2C21 " MS91)256S9)   1 #O "SERVO RANDOM TEST PASS",I," COMPLETE"\  x  P20 P  "TEST CONTINUING..."\*  E6E61   P11n H#O"SEEK ERROR - SECTOR SOUGHT:",M,",SECTOR READ:",S9)S91)256  E5E51 ( P11n - . RINE GET Y N / 2 B$,\T$0)\" ",T$ < T$"Y"\T$"N"\2 F .P #O "WRITING BAD SPOT TABLE TO DISK"\ Z I0511\S9I,B9I)\ d FW4,2)\F0 n #O "TEST COMPLETE"\ x \#O "SUMMARY TOTALS:"\\ ' #O "SECTORS WRITTEN ",%10E4,C1 + #O "SECTORS READ ",%10E4,C2\#O ! #O "SEEK ERRORS ",E5 , #O "HDCOM ERRORS ",E6 \#O\#O\   ERR RINE   x * B$"CONTINUE TEST? "\2\T$"N"P  ,Z8,Z9  Z71,z,,j,    RINE BAD SPOT LE  . B9)B91)0\#O,"NO BAD SPOTS"\  I0D1D21 2 A9178,ID3)A9178,I1)D31)\\ ! C4ID1)\H4ID1)C4)D1 # #O,"CYLINDER",C4,",HEAD",H4\ ' E \"BAD SPOT TABLE INVALID - DIAGNOSTIC LEVEL 3 MUST BE RUN"\ = "POWER DOWN (Y/N)? " \ T$0) \ T$"Y" FA9433) 5 \"HIT TO REBOOT",T$\F314)256,0) _qpOp@bQ C  WqBpp pp@Ap!CpBB$EpwqPP /CCA%@C 1# Eq1# Eq1&`E FY Eq1AEq1BE q0rE q1t@E16E17@E17EA RECMAIN 111381  D90\ DEBUG LEVEL " S$20),F$34),A$14),J$31) $( T972831 \ PTR WHAT WAS 2 A9972824 < 2 , L7,E7 F S0VT) P S1S0,0) \ INIT Z S11 TQ1) d S2S18\S3S28\S4S38 n V1S1) -x V2V12\V3V22\V4V32\V5V42\V6V535  B1S2) \ BUFFER SPACE B2B1  B3B2512 \ SECR BUFFER  B4B3512 \ OFB  B5B4271 \ THE  LB51) % UB52) \ Floppy drive number % #2,",SYSTEM,101"  E9 2047  M$"Master"   U1 U5 @  M$, > " backup diskette is in drive # ", \ A9,1 \U$0) \U$ " A9,0 , U$)3 F 36 U$"1" ; \ U$"5" ; \UU$) \ @ 3; 7),"Drive number must be 1,2,3 or 4" \  2@ TD1,384U,B1,0,1) \ 1ST SECT OF DOSDIR J P10 T F$R$B116,8) ^ A$R$B1,8) h F$"BACKUP:C" P14 %r F$"BACKUP:M" P14VB142) | P1  9 "This is not a proper backup diskette : ",F$," ",A$  "Try it again" \U0 \   PACKET  TD1,384U,B2,P1,3)  EVB264) \ OLD ENTRY #  S9VB218) \ 1 WS98) \ NUMBER OF WDS OF THE BIT MAP 3 D91 "OPENING PACKET, P1=",P1," OLD E=",E  C0 ( E65535  \ MARK IS ALL ES  E2048  * "Bad packet at sector",P1 \ TQ2)   FIND OLD ENTRY #  M5R14E2) & M50 V \ Packet not wanted # FR14E) \ New entry number  F70 \ F$"" \ DST (& SEARCH HEADER SECRS TRANSFER 0 X1 222 : PX266B2 D SP1)256P) )N S65535 \ \ NO ME SECRS !X YS8) \ WD OF BIT MAP b BS8Y \ BIT OF WD l #2%M5Y, &V 8v V2B)2V2B1))0 R \ GOT IT ALY  F7 *   DST YET  D70 \ RESET WP FLAG  TS1,F) " TS0,3) \ LOOK UP DST  T2 S1)F  D "CAN'T FIND DST FILE",F," (OLD #",E,"), SKIPPING IT" \ R  P2S2) \ PTR ENTRY  AVP21) \ ACCT ID #  F$R$P23,14) / TS5,B4,A,WV5,F$,15,0),0) \ DST  T0  9 "CAN'T OPEN DST FILE ",F$,", SKIPPING IT" \ R  F71  A$A$A)   5* TD1,384U,B3,P1X,4) \ SECR FROM FLOPPY "4 S17,1,B3,S,0) TQ4) > CC1 H #2%M5Y, &V2B, R X )\ DE WITH PACKET. DE WITH ENTRY? :f #L,"Recovered",%6I,C2," blocks to file ",F$,",",A$, p P1P1X z S0  I0 W1  #2%M5I, &S  S   I  . ALL SECRS RECOVERED, OVE ENTRY FROM  TW14E2,0)  #L,64),"*COMPLETED*",  C9C91 % TB45) \ ATTRIBUTES FROM OFB # D7T2T2) \ GET D WP BIT   DST  #L * F70  \ NO, JUST GET PACKET ( S0,7) "Can't close file ",F$  D7 .  $ . PROT BIT ?8 S23,2,2553,0,0) "Failure to set write protect bit" B  L -V SWTLY COUNT SECRS IN UNWANTED PACKET ` C0 j PB268 B2510 2 t P)255  ~ CC1  P 8 D92 "SKIPPED OVER",C1," SECTOR PACKET AT",P1  P1P1C1   ! P1)255  ~   BACKUP DISKETTE 0 "You may remove the diskette from drive",U  U0 \M$"Next" 0 C90   \ More files to recover ' COUNT S THE  C90  I0 2047  TR14I2)  T0   C9C91  ".",   I  F L0 P C90 "No", C9, ;Z " file",\ C91 "s",\" found on the recover list" d C0 C5 n n x C9 8 "File recovery completed. Thank you for waiting."  #2 . ",SYSTEM,101")1  " ",SYSTEM,101"  T296)  R1  R1P)  #2%P ,&T1  #2%P1,&T2  T1T2256   W1  W1P,V)  T2V256)  T1VT2256  #2%P ,&T1,  #2%P1,&T2,  0  " A$ , A$A) 6 E10 E9 0@ TS1,E1) \TS0,3) \E1S1) \P2S2) J T2 h (T T1 E1E9 r TQ6) %^ VP217)A R$P23,14) h E1 2r "Can't find account number ",A \ "Unknown" |  B & BV,B)V2B)2V2B1))  F  FA,D) \ WD  A1,D256)  A,DA1)256  0   H$  H$D)  H$" "  T3 0 1  T0D16T)  DDT016T))  T09 T0T07  H$H$T048) & T 0 H$ : D S N SN,D1,D2,D3,D4) X T1S1,D1) b T2S2,D2) l T3S3,D3) v T4S4,D4)  NS0,N)  N   R$  FUNCTI A STRING  R$A,L)  J$""  I0 L1  TAI) ! T33  J$J$T)  I  J$   V   VA)A)256A1) " FUNCTI STRING IN MEMY   W * WA,J$,N,F) 4 I1 N 0> IJ$) AI1,F AI1,J$I,I)) H I R 0 \ f p D +z DN,C,R,D,Y) \ DCOM WITH RETRY)  TS1,N)  TS2,C)  TS3,R)  TS4,D)  S0,2)   0 \ ERR % "HARD DISKETTE ERROR ",64),D  N,"-SECTOR ", * C256) "READ:", "WRITE:",  Y ,,,  "DOS-DIR"\   "DIRFIL" \   "PACKET-HEADER"\   "DATA-SECTOR" & \20),"1. Retry command again" # 20),"2. Ignore the error" ;$ \8) ,"Selection : ", \ A9,1 \J$0) \J$ \ A9,0 ) J$)3 F . J$"1"  8 J$"2" L 'B 7),"Enter 1 or 2 please" \ $ L R,255 V TS1,512N1,R,R1,0) ` 1 j t Q ~ QD)  D0  D1 A "Bad initialization of the assembly level routines" \  D2 A "Data structure on the floppy found to be in error" \  D3 ; "Data structure in the recover list in error" \  D4 , "Can't write to the hard disk" \  D5 C "Can't lookup the account in the hard disk directory" \  D6 C "Data structure in the directory image file in error" \  "Undefined error" : "You will have to start over to recover the files." G "You should reboot the system and start the program over again." + "Press return to return to HDOS",Z$  T296) ( 2 ROL C RINE < E715 MF \"Aborting this recover. The table of files to recover is destroyed." 9P "You will have to start over to recover the files." KZ "If the file TRANSIENT,SYSTEM,101 is not there then you will have to" 3d "reboot the system from the system diskette." 7n "Press ESCAPE to exit to HDOS, RETURN to reboot", x A9,1 \Z$0) \ A9,0  Z$)3 F  Z$)13 T59392)  Z$)27 T296)  7), \ n ' "Error number ",E7," in line ",L7 F H *5x=(>0^x(^VN>0..-( 5"ð% >0ˁˁˀˉˈˉˑˑːSC5BU5RW5RO5DP5DE5.>$t%{怲>t%C#.> t%?N/yt%͊0(/L/ک.ͨ0/͊0+6  ( .-(w#%3L/Ҡ6z!633ͫ0"B͊02B.>$t%/N#F#E~(#<<0 *B<>t%PY> I1 24 \\  11544,1 / "**** WARNING **** Level 3 test..."\\ N "PROCEEDING WITH THIS TEST WILL DESTROY ALL EXISTING DATA ON THE DISK"\ 1 "HIT TO PROCEED OR TO ABORT" 4 T$0) \ AT$) \ A27  \ A13  ( 1288,40 \ 40 RETRIES 2 Z70 \ ,Z8,Z9 < C10 \ COUNTER F C20 \ COUNTER .P D14 \ NUMBER OF HEADS PER CYLINDER %Z D2210 \ NUMBER OF CYLINDERS ,d D342 \ NUMBER OF SECRS PER TRACK n D424000 #x E50 \ SEEK ERR COUNTER $ E60 \ HDCOM ERR COUNTER  B$80),P4) + A925088 \ ADDR OF AUXILIARY RINES $ WA9 \ RINE 1 SECR $ RA934 \ RINE 1 SECR * S946592 \ ADDR OF 21SECR BUFFER * B7A9178 \ RINE TEST BAD SPOT ' B8A9188 \ RINE SET BAD SPOT ' B9A9512 \ ADDR OF BAD SPOT LE ) F9A9512 \ ADDR OF MATTING RINE & W1A9136 \ RINE 21 SECRS & R2A9142 \ RINE 21 SECRS 2 B1A9147 \ RINE BUFFER WITH PATTERN  3 B S 1 SECR M IS BAD SPOT BE TESTED  BM)  P6 0 B7,M) " , - PATTERNS &6 P1)170\P2)149\P3)1\P4)254 ; T IB9 B9511 \ I,0 \ $^ "HARD DISK UNIT (101-104): ",F $h F101 F104 ^ \ FF101 r F915,F \ A952,2552F #s 6,32 \ 0,255 \ 0,2552F @t 0)99 | "HARD DISK DRIVE NOT READY - WAITING..." u 0)91 u %v \"...DRIVE READY - ", \  /| B$"DISK NEED TO BE FORMATTED? (Y/N)"\2  T$"Y" Q11 Q10  FR,2) \ F0  % I0 511 \ B9I,S9I) \  "CURRENT BAD SPOT TABLE", * B9)256B91)A9300,0)   " INVALID - ", " "STARTING WITH NO BAD SPOTS" % I0 511 \ B9I,0 \\   ":"\\ 7 "CANNOT READ BAD SPOT TABLE - WILL REFORMAT DISK"  Q11 0 B$"ENTER ADDITIONAL BAD SPOTS? (Y/N)"\2  T$"N"D 4 "CYLINDER : ",C$ \ C$)0 D C5C$) * C50 C5210  \ 7) \   "HEAD : ",H5 '& H50 H54 0 \ 7) \  0 MC5D1H5)D3 : AB8,M) \  BD "PRESS TO ACCEPT OR TO REJECT BAD SPOT TABLE" N T$0) \ FT$) *X F13 b \\ F27  \ D ,b B$"HALT IF ERROR DETECTED? (Y/N)"\2 l T$"Y"P11P10 .v B$"REPEAT TEST CONTINUOUSLY? (Y/N)"\2  T$"Y"P21P20 + B$"RUN TEST ON BAD SPOTS? (Y/N)"\2  T$"Y"P61P60 : \"ENTER NO. OF ITERATIONS FOR EACH TEST SECTION:"\ # " PATTERN READ/WRITE: ",P3 # " SERVO HARMONIC TEST: ",P4 % " SERVO RANDOM TEST: ",P5\ 7 "OUTPUT TO CONSOLE (0) OR PRINTER (1)? ",\T$0) % T$"1"O1O0\T$"1"T$"0"  F911,O % \"HIT RETURN TO START TEST",T$  Q10   F99,0 3 "DISK NOW BEING FORMATTED"\FF93,F915))  F2    "TRACK 0 FAILED"\  "FORMATTING COMPLETE"  1288,0 * F99,1 \ P30 / 0 PATTERN SECTI 1 4 I1P3 > P9PI4I4))4) H FB1,P9P9256) R Z71 W X LOOP PATTERN Y \ N0D1D2D31D32 p BN)  z FW1,N)  F1 CTRLC  F0   AB8,N)   0 C1C121 \ ND1D3)ND1D3)) ".",  \  Z72   LOOP PATTERN   N0 D1D2D31 D32  BN)   FR2,N)  F1 CTRLC  F0   AB8,N) \  0 C2C221 \ ND1D3)ND1D3)) ".",  \ 7 #O,"PATTERN READ/WRITE TEST PASS",I," COMPLETE"\  P40~ $ Z73 ) * SERVO HARMIC SECTI + . I1P4 8 ND1D22\J1\K1 4B MND3 \ BM) V \ FR,M) \ F0 L G F1  CTRLC "L MS91)256S9)  %V NNJK \ JJ1 \ KK \ C2C21 j ND1D2 N0 B 5t #O "SERVO HARMONIC TEST PASS",I," COMPLETE" \ ~ P50   Z74   SERVO ROM SECTI   I1 P5 \ N1 3000 ' M0)D1D2)D3 \ BM)   FR,M) \ F0   F1  CTRLC  C2C21 " MS91)256S9)   1 #O "SERVO RANDOM TEST PASS",I," COMPLETE"\  x  P20P  "TEST CONTINUING..."\*  E6E61   P11n H#O"SEEK ERROR - SECTOR SOUGHT:",M,",SECTOR READ:",S9)S91)256  E5E51 ( P11n - . RINE GET Y N / 2 B$,\T$0)\" ",T$ < T$"Y"\T$"N"\2 F .P #O "WRITING BAD SPOT TABLE TO DISK"\ Z I0511\S9I,B9I)\ d FW4,2)\F0 n #O "TEST COMPLETE"\ x \#O "SUMMARY TOTALS:"\\ ' #O "SECTORS WRITTEN ",%10E4,C1 + #O "SECTORS READ ",%10E4,C2\#O ! #O "SEEK ERRORS ",E5 , #O "HDCOM ERRORS ",E6 \#O\#O\   ERR RINE   x * B$"CONTINUE TEST? "\2\T$"N"P  ,Z8,Z9  Z71,z,,j,    RINE BAD SPOT LE  . B9)B91)0\#O,"NO BAD SPOTS"\  I0D1D21 2 A9178,ID3)A9178,I1)D31)\\ ! C4ID1)\H4ID1)C4)D1 # #O,"CYLINDER",C4,",HEAD",H4\ = "POWER DOWN (Y/N)? " \ T$0) \ T$"Y" FA9433) 5 \"HIT TO REBOOT",T$\F314)256,0) Fs@ANs!CVsBB$EfsAtPCONTINUE TEST? /CCA%@C1tRE-READIN6,0) ",(",M,")"\ 8' X,0\"PRESS RETURN TO REBOOT",T$\F314)256,0) ESS RETURN TO REBOOT",T$\F314)256,0) vwutvttOLu_`BBT@Ett tu@A u!CuBB$E$u,u4u,SYSTEM,101")1 " ",SYSTEM,101" ( ",SYSTEM,101",55,3 % #2,",SYSTEM,101"  TW18192,8194)  \7) ,"Listing to :"  20),"1. Console" & 20),"2. Printer (Device #1)"  20),"3. Other printer" : \8) ,"Selection : ", \ A9,1\L$0) \L$ \ A9,0  L$)3 d " L$"1" J , L$"2" T 6 L$"3" ^ +@ 7),"Select 1, 2 or 3 please" \  J L0 \  T L1 \  <^ 4),"Device number : ", \ A9,1 \L$0) \L$ \ A9,0 h L$)3 ( 3r L$"0" | \ L$"3" | \LL$) \  2| 7),"Device number must be between 0 and 7"  ^ G\"Recover directory from diskette in drive # : ", \ A9,1\U$0)  U$ \ A9,0  U$)3 ( 3 U$"1"  \ U$"4"  \UU$) \  > 7),"Diskette drive number must be 1, 2, 3 or 4" \  ! S2,1,384U,B1,0)0  ' "Can't read the floppy diskette."    F$R$B116,8)  A$R$B1,8)  F$"BACKUP:M"  3 "Not a proper backup master diskette" \  ( U8V11) \ U8100 U8105 : # "To hard disk drive # : ",U8  U8100 U8105 : =& 7),"Drive number must be 101, 102, 103 or 104" \  !0 "To hard disk unit #: ",U8 : V11,U8 D B5,U8 'N \20),"1. Recover all accounts" #X 20),"2. Specify accounts" %b 20),"3. Specify exceptions" =l \8) ,"Selection : ", \ A9,1 \N1$0) \N1$ \ A9,0 v N1$)3 (  N1$"1"   N1$"2"   N1$"3"  * 7),"Enter 1, 2 or 3 please" \ l  N1$"2" N11 N10  \ "How many of them? ",N  AN)  Z1 N / "Old account name : ",A$ \AZ)LA$,0)  AZ)2049  & "Can't find account ",A$ \   Z   D1VB142)3 #  S4 D1 \ LOOP ACCT SECRS % S2,1,384U,B1,S) TQ3) &  Q1 15 \ LOOP ACCT ENTRIES $* E2QB11)2562QB1) 4 E65535  > K32QB1 H IK2)256K1) R I  \ ACCT \ AVK17) f N0  p N10  z I1 N + AI)A  \ ACCT ALLOWED  I    I1 N . AI)A  \ ACCT DISALLOWED  I  A$R$K3,14)  A1 r # #L,"Creating account ",A$  TWV5,A$,15,0)  S0,14)0  , #L,"Failure to create account ",A$ , #L,"Will skip this account" \  $ A0S2) \ NEW ID NEEDED?? $ R4 D1 \ LOOP SECRS ) S2,1,384U,B3,R) TQ3) '$ P1 15 \ LOOP ENTRIES (. E2PB31)2562PB3) 8 E65535  B K32PB3 L IK2)256K1) 'V IA  \ IN ACCT ` F$R$K3,14) j GVK18) 2t A0G \ SIZE TO LATER CHECK IF ZERO ~  TK26) \ E  T127 TT128  V6,T $ TK17) \ ATTRIBUTES ' T2T2) T61 T60 # T4T4)2 TT1  V61,T ) V62,K22) \ NHUNK SIZE , JFV63,V5) \ PTR PATHNAME , JS1,3,K27,V65,0) \ T.D.D. 5 JS1,4,K18,V68,0) \ SIZE & B.I.L.S.  TWV5,F$,29,0)  TS1,B4)   S0,16)0 ( - #L,"Failure to create file ",F$ - #L,"Will skip this file" \  #( FS4) \ NEW ENTRY # 2 T60 Z 3< #L,"Creating scratch file ",F$,",",A$ ;F #L,"No data will be transfered to this file." P  Z A00 _ E[ #L,"Creating file ",F$,",",A$," : ",50),A0," sectors" @\ #L,"This file will not be put on the recover list" ]  %_ NOW PUT THIS THE 4d P5R14E2) \ Pointer to the bit map i P50  Hn #L,"File ",F$,",",A$," is already marked to be recovered." x  0 WG8) \ # of words of bit map / F5R18192) \ Free space pointer  I0 W2  #2%F5I, &255,  I + #2%WF51, &2G88W)1,  TW14E,F)  TW14E2,F5)  TW18192,F5W) K #L,"Allocated space for file ",F$,",",A$," : ",50),G2," blocks"  P  R  #L  Q  S  B51,L " B52,U , U1 J 46 "Put the system diskette into drive number 1." $@ "Press RETURN to continue",Z$ 'J "RECMAIN,1")2 "RECMAIN,1" AT "The file RECMAIN is not on the diskette in drive number 1" ^ 6 h r OLD SYS ACCT IS #1 ALWAYS 4| #L\#L,"Assuming SYSTEM account already there"  A01  S22,0,A0,0,0) TQ5)    R1  R1P)  #2%P, &T1  #2%P1,&T2  T1256T2   W1  W1P,V)  T2V256)  T1VT2256  #2%P ,&T1,  #2%P1,&T2,  0 & 0 F : FA,D) \ WD D A1,D256) N A,DA1)256 X 0 b l H$ v H$D)  H1$" "  T13 0 1  T2D16T1)\DDT216T1  T29 T2T27  H1$H1$T248)  T1  H1$\  S  SN,D1,D2,D3,D4)  T1S1,D1)  T2S2,D2)  T3S3,D3)  T4S4,D4)  NS0,N)   N    R$ &* FUNCTI A STRING FROM MEMY 4 R$A,L) > J$"" H I0 L1 R TAI) !\ T33 p J$J$T) f I p J$ z  V  VA)A)256A1) " FUNCTI STRING IN MEMY  W  WA,J$,N,F)  I1 N 0 IJ$) AI1,F AI1,J$I,I))  I  0   T\ H$T)  L  LF$,Z3)  D40 $ TS2,1,384U,B3,D4) \D4D41  P1 15 $ EVB32P) . E65535 8 KB332P B IVK1) L IZ3 j V N$R$K3,14) ` N$F$ ~ j P t  ~ Z30 VK17) E 9999   Q QD)  D0 (  D1 D "Bad initialization of the assembly language routines" \ (  D2 * "Can't read the floppy disk" \ (  D3 = "Can't read the DIRFIL file on the floppy disk" \ (  D4 C "Data structure of list of files to recover in error" \ (  D5  / "Cannot open the SYSTEM account." \ (  "Undefined error" 9( "You will have to start over to recover the files" A2 "You should reboot the system and start the program over." < T296) F P ROL C RINE Z E715 d U1 4n "Put the system diskette into drive number 1." $x "Press RETURN to continue",Z$ & "COMREC,1")2 "COMREC,1" F "Can't restart the program as the file COMREC,1 is not there." n % "Error number",E7," in line",L7 = "Press ESCAPE to restart the program, RETURN to reboot"  A9,1 \Z$0) \ A9,0  Z$)3 d  Z$)27 d  Z$)13 T296)  7), \ d !0Zè'!"BL/0A=͍0OESBE~怱2B7)~2B>2B: 2B2B#B=2BW_SB!B,Ͷ0x2BSBy2B~ 2Bnf)>&t%2B~2B8ð%TO&8SL8CR9L/0oSB>͍0./O: >t%ESBEy2B:Bwj8)!B*B|%3$9L/>t%."B/"B>[0!,p%N>t%:BG[B:BO>J!,p%!DͶ0*B|<> 02Bgo"B"Bnf)$9!$9"B.2[Bz8:BG:BB82B<0/ͨ'DM:B=C980!D:Dݦ<Zʨ'!HH6*B"B>J(1( 2(!,͏&Zͨ'>J!,ď&:BG*B>J!,p%L/"B9ð%CR9TO9YN9.>0>?2B."B*B~.8\>[0!,p%nf>0:!< *B#~.- " ~H^Vy <,U "E-!J !~ (ͤ!PFxP> #( HDOS Initial Boot Procedure This diskette supplied from North Star contains two different HDOS operating systems -- one for the HD5 hard disk and one for the HD18 hard disk. The names of these files are HD5DOS and HD18DOS, respectively. To manually boot into the correct operating system for your disk, type: GO HD5DOS,1 (If you have a 5 Mbyte disk) or GO HD18DOS,1 (If you have an 18 Mbyte disk) After you have done this, you can follow the instructions in the Hard Disk Operating System User Manual, under the heading Initial System Startup to prepare the hard disk and an automatic bootstrap diskette. NTO CP/M WORK FILE FAILED$CONNECTION TABLE CURRENTLY EMPTY$----- ENTER A CONNECTION or S=SAVE or X=EXIT?$UNRECOGNIZED INPUT - EXPECT UNIT:PATHNAME$ATTEMPT TO CONNECT UNIT X: FAILED BECAUSE$ERROR TRYING TO READ CP/M DIRECTORY AREA$WRITE ERROR INITIALIZING CP/M DIRECTORY$ERROR ATT PROGNAME"SYSGEN"  W80 \ screen width $ C23 \ clear screen line count 2 text line, blank line, file name, legal keys  L$80),B$W),F$34),P$6)  (# \ clear screen >$ M$"INTERACTIVE SYSTEM SOFTWARE CONFIGURATION PROGRAM") . '8 M$"NORTH STAR COMPUTERS, INC.") B M$"VERSION 1.0.0") L O B4 V OQ M$"Put the non-write-protected diskette to be configured in drive #1.") =S M$"Do not remove this diskette until so instructed!") OT M$"(note: NEVER remove the write-protect tab from a master diskette!)") V X B41 #[ M$"Configuration options:") \ ` M$"D)os ") j M$"B)asic ") ~ M$"E)nd configuration")  I M$"(ALL responses in this program must terminate with )")   #1 $  \ do DOS, BASIC, or exit   < E D B 9 P"Select [ D, B, or E ]: ","EDB") ,,   (# * M$"End of System Configuration")   F M$"All changes are complete and the diskette may be removed.")  M$"Thank you.")   (#  M$"DOS Configuration")   N M$" DOS can be configured to manage various hardware combinations") J M$"and made to automatically execute a program upon system boot.")   0 M$"Which DOS do you wish to configure:")     M$"H)ard disk HDOS ")  M$"F)loppy disk DOS")   M$"E)xit to main menu")   % =* M$"(remember to follow each response with a !)") + #1 =/ P"Select [ H, F, or E ]: ", "EHF" ) 4,9, 4 9 (# 1> M$"Which HDOS do you wish to configure?") C H M M$"A) 5 MB hard disk") R M$"B) 18 MB hard disk") W \ Ga P"Select [ A, B ]: ","AB" )1F1$"HD5DOS,1" F1$"HD18DOS,1" f H11 \ HDOS on k F0 \ no fold p F$F1$ u #1 z   F$"DOS,1"  H10 \ HDOS off  F1 \ fold on  p \ Correct name?  E1  T1  $ Q7  \ used default name  F1$F$ ' 20),"Are you sure this is a ", / F "floppy DOS?" "hard disk HDOS?" / P"Select [ Y, N ]: ","YN" ) , D \\\"Unless you are sure, it is impossible to continue." C "We recommend that you use standard North Star software." ; "Press any key to return to the main menu...",0)  $ H1 V \ H10 floppy DOS  #1  (# 5 M$"When you boot from this diskette, do you") ; M$"want "F1$" to automatically begin execution?")  I F1 P"Select [ Y, N ]: ","YN" )1 \ F10 autostart, F11 do not  F$"DOS,1"  @ \ attempt to open  E1  T1  = M$"The diskette in drive #1, should contain 'DOS'!")   ! F1 . \ no autostart  #1%0,&P ) #1 %3161,&L,&H \ cmd bufr ptr ( D1 H256L 256P 1256 \ disp $ L$"GO "F1$ ) X \ fill bufr &. #1 %316,&F1, \ turnkey flag 3 H11 \ HDOS on 8 F0 \ no fold = F$F1$ B #1 (G @ \ open the file they wanted L E1 Q T1  +V now file #1 F$ with type T is open [ )` PAGESterminal page length for LI e j (# Lo M$" You can control the number of lines that appear on the video") Gt M$"screen before "34)"PRESS RETURN TO CONTINUE"34)".") y #1 %3163,&L ~  0 M$"The current line count is"L)".")  ; M$"a) Press to retain current value ")  M$"or") ; M$"b) Enter new value followed by ")  D M$"(use 0 for continuous scrolling or hard copy terminal)")   M$"New line count: "),  1 "", V$ " V$)0 \ leave it # ,L1,E1 \ trap bad input 2 V$)1 V$)0 \ want continuous , V$) 10V$)1) \ garbage  LV$) \ new lines + 7)," <--Please type a number! "  $ #1 %3163,&L, \ set count   drive CFIG   #1 %4,&X \ C3single & X12163  \ not single " F0 \ yes, single no fold  C10 \ must 0 ! \ only single drives  (# D M$"North Star currently offers two types of floppy drives:") ( <- M$"Q) double sided (quad capacity), fast stepping") <2 M$"D) single sided (double density) ") 7 >< M$"What type of floppy disk drive is on your system?") A (F NP"[ Q, D, or M)ixed ]: ","QDM") K N3 Z &P C1 N1)255 \ assume all alike U \ set drives Z _ Bd M$"How many floppy drives are installed on your system?") %i NP"[ 1, 2, 3, 4 ]: ","1234") n s x I1 N ?} DI)P"Drive #"I)" is which type [ Q, D ]: ","QD")   C10 \ initlz config byte  I1 N + DI)1 C1C1 28I) 2I1)   " Quad 2 sides, fast step  7 6 5 4 3 2 1 0 bit  " 1 2 3 4 4 3 2 1 drive #  # of sides stepping  0 single 0normal  " #1 %484,&C1, \ set CFIG   DOS HIGH mem  $ 58,56,48,32 \ RAM boundaries  H  MH10241 \ high cell + VM) \ old contents need later)  M,"N") \ test value > M)"N") \ if different, try lower memory ' M,"S") \ be sure, try again  M)"S") & M,V \ restore original value  H48 H64  (# < M$"Your system has"H)"k of RAM. The highest") - M$"BASIC MEMSET would be"M)".") " ' 0, M$"Press any key to continue..."),0) 1 #1%31612,&M1)256, 6 ; ERRUPT flag @ E (# G #1 %21611,&S #H S127 J$" en" J$" dis" 1J M$F$" currently"J$"ables interrupts.") O HQ M$"Warning: enter 'D' for use with multi-user HORIZON systems.") R JT M$"Note: enter 'E' to USE the RAM PARITY ERROR trapping feature.") =Y M$"See Software manual for hardware considerations.") c 9h M$"Run with interrupts E)nabled or D)isabled --") :m S 2P"Select [ E, D ]: ","ED" ) \ S 1\E, 0\D r #1 %21611,&S1281, w | DOS autostart  (# D M$F$" can be configured to automatically start a program.")   8 #1%316,&A,&L,&H \ get autostart byte, bufr ptr  A1 J$"NOT " J$"" 2 M$"It is "J$"currently set to do this.")   DOS origin logic ; If single, use page byte at PROM entry point 0A jmp)  If HDOS , assume 0100H I If DQ , use normal page load byte displacement 0 of disk image)   DOS type logic - flags F H1 2FH11 * single density DOS 0 0 1 * HDOS 0 1 2 * DQ DOS 1 0 3   L$"" \ possible cmd # GL HDOS DQDOS  2FH11 , ,  #1 %12,&P  P1   #1 %0,&P G relative disp to cmd bufr ram bufr addr DOS origin fold ! D1H256L) P256 F256 ( #1 %D1, \ pt to start of buffer 4 A1 : \ autostart off, no print command ! #1,&X & X13 5 + L$L$X) 0 ! 15 M$"Current auto-start command is: "L$) : ? (D M$"Do you wish to change this?") +I P"Select [ Y, N ]: ","YN")2 !N A q \ want autostart S X 8] M$"Do you want "F$" to auto-start a command?") -b P"Select [ Y, N ]: ","YN" )1 q g #1 %3160,&1, \ off l q #1 %3160,&0, \ on v { A M$"Enter new auto-start command followed by a :")  M$"?"), "",L$  X \ insert cmd (# 5 M$"This ends the DOS configuration process.") #1 ? M$"Press any key to return to the main menu..."),0)   (# " M$"BASIC Configuration")  C M$" BASIC can be made to automatically start a program") " M$"('turn-key' start-up)")   M$" or ") G M$"made smaller in size by eliminating certain math functions") < M$"(i.e., provide a larger program and data area).")  " 2, M$"Which BASIC do you wish to configure:") 6 @ @J M$"B) Standard floppy BASIC ") @T M$"F) Basic for the floating point board ") @^ M$"H) Basic for the hard disk ") @h M$"P) Basic for the floating point board and hard disk") r #| M$"E)xit to the main menu")  @ M$"(remember to follow each response with a !)")  #1 3 TP"Select [ B, F, H, P, or E ]: ","EBFHP")  T ,,,,   F$"BASIC,1"    F$"FPBASIC,1"    F$"HBASIC,SYSTEM,101"    F$"FPHBASIC,SYSTEM,101"  p \ good name?  E1  T1   (# 2 M$"Which option do you wish to exercise:")     M$"A)uto-start BASIC")   M$"S)hrink BASIC ") * #4 M$"E)xit to main menu ") > H @R M$"(remember to follow each response with a !)") ;\ P"Select [ A, S, or E ]: ", "EAS" ) f,p,J f p (# Dz M$F$" can be configured to automatically start a program.")    #1 %15,&A \ current flag  A J$"NOT " J$"" 2 M$"It is "J$"currently set to do this.")  L$"" \ cmd  #1 %3,&P \ default page  #1 %6,&L,&H \ BAS 5 relative disp to prog BAS1 BASIC origin  D1256HL1 256P  #1 %D1,&C2 \ line count , #1 %D1C21,&X,&Y \ should be 0D 01 ' X13 Y1 j \ good there  \\ C M$"It is not possible to auto-start "F$" using SYSGEN!")  #1 %15,&1, \ off  #1 H M$"(missing imbedded CHAIN"34)"progname"34)" command)") $ . G8 M$"You must use the procedure outlined in the system manual.") B L >V M$"Press any key to return to the main menu..."),0) ` 'j #1 %D13, \ first char of line t #1,&X ,~ X13  \ make sure still in line  X91611 t \ ? ) #1,&X \ X34  \ find quote ! Q81) \ start of filename  #1,&X 5 X34  \ look for endquote, save all else  L$L$X)    C5L$) 7 A M$"Current auto-start program is: "L$)   ( M$"Do you wish to change this?") / P"Select [ Y, N ]: ","YN" ) 2     - A F \ must want to set autostart 8 M$"Do you want "F$" to auto-start a program?") .( P"Select [ Y, N ]: ","YN") 1 F ,2 #1 %15,&1, \ reset autostart flag <  )F #1 %15,&0, \ set autostart flag P Z Fd M$"Enter new auto-start program name followed by a :") n M$"?"), x "",L$  L$)C5   7)  8 "Maximum of",C5," characters currently possible!"  P  #1 %Q8, \ start of bufr  I1 L$)  #1,&L$I,I)),   IL$)1 C5 # #1,&32, \ blank old name   (#  #1 7 M$"This ends the BASIC configuration process.") = M$"Press any key to return to the main menu..."),0) " , 6 shrink BASIC @ J (# =T M$"Applications which do not use ATN, SIN/COS, LOG,") =^ M$"or EXP, but which require as much FREE memory as") =h M$"possible, benefit by shrinking BASIC. However, ") =r M$"it is extremely important that a 'shrunk' BASIC ") =| M$"NOT be used with programs using the above math ") = M$"functions because the system will CRASH!!! ")  = M$" There is a hierarchy to the functions--e.g., ") = M$"you cannot eliminate SIN/COS and retain ATN. In") = M$"the following table, to eliminate a function, ") = M$"you must also eliminate all functions ABOVE it. ")  I M$"Which function (and the ones ABOVE it) should be eliminated?")   M$"A)tn ")  M$"S)in & Cos ")  M$"L)og ")  M$"E)xp & ^ ") " M$"X) exit to BASIC menu")  3 XP"Select [ A, S, L, E, or X ]: ","ASLEX") & X5  0 #1 %24 2X 1,&L,&H #: #1 %6,&L1,&H1 \ get old end !D #1 %6,&L,&H, \ shrink it %N #1 %15,&1, \ off autostart X (# ;b M$256H1H)L1L)" bytes have been recovered.") l v  ; M$"You CANNOT now auto-start "F$" using SYSGEN!")   > M$"You should rename "F$" to avoid accidental use!")   = M$"Press any key to return to the main menu..."),0)  $o verify default name, open file p (# 9z M$"Is "F$" the desired file to be configured?")    ) M$" Y)es, use this name ") ) M$" N)o, fetch alternate name")   M$"E)xit to main menu")     Q71 \ used default < P"Select [ Y, N, or E ]: ", "EYN" ) ,B,      >$ M$"Enter desired file name (including drive number)") .. M$"followed by a CARRIAGE RETURN: "), 8 "",F$ = Q70 \ typed own name B @ V "W write to DOS command buffer "X #1 %D1, \ start of buffer b I1 L$) l #1,&L$I,I)) v  #1,&13, \ trailing CR  : +; open file F$ with imbedded drive #) < Ok, E10, Ttype of file )= No, E10 no want menu exit), T1 0> E11 want to menu exit), Tundefined ? '@ h,L1,E1 \ trap floppy errors J T F$) \ file type T \ good access Y E10 \ clear exit to menu ^  h (# 1m 7),"There has been a disk drive error!" ,r "Re-mount the diskette, THEN" \\\ A P"Type R)e-try, or E)xit to main menu ","RE")1 @  E11 \ set menu exit  \ to main menu  T1  \ exists?  (# $ 7),F$," does not exist!" $ \ with cleared menu exit   #1 %T, F$   (# Clear the screen <# I1 C F# P# Z# # $# Center text line L$ in width W # M$L$) 2# L$)W L$ B$1, WL$))2 )L$ # # $ C$ Get char CR, convert to upper case, return position in string $ PL$,P$) $ M$L$), $ 1"",K$ 7$ K$)1 K$)0 % \ accept exactly 1 key $ P9K$) B$ K$ P9 32P9"a") P9"z")) ) \ upper case only .$ P91 P$) \ see if legal response $ K$P$P9,P9) % %  % 7),13), % $ % % P9 % &% ' c O|B#BPSelect [ D, B, or E ]: rogram must terminate with .SBTTL "********* EQUATES FOR HDOS *********" .PAGE 132,60 ; ; ; EQUS ; NOVEMBER 13, 1981 ; ; This file contains the equates for use in all modules of the ; North Star Hard Disk Operating System. ; RLEAS == 2*16+0 ; Release 2.0.0 MAJORRV == 1 ; Major disk revision level MINORRV == 0 ; Minor disk revision level DSPCH == 100H ; SYSTEM ORIGIN BADDR == 0E800H ; Micro Disk Controller address PADDR == 0 ; Motherboard I/O ports NTRAC == 35 ; Number of tracks per side on a Micro Disk ZTRAC == 18+35+35+1 ; Initial track counter value for Micro Disks MAXIO == 7 ; Maximum legal I/O device number NLINE == 80 ; Length of input line for Command Processor DFSTP == 26 ; Default processor speed constant (Z80A) ; ; SYSTEM DISPATCH TABLE ADDRESSES ; TRAKT == DSPCH ; Micro Disk track table REVN == DSPCH+4 ; Sequential revision number CNFG2 == DSPCH+5 ; Secondary configuration byte SUNIT == DSPCH+6 ; Last used Micro Disk drive OFTEN == DSPCH+7 ; Poling vector CBOOT == DSPCH+10 ; Entry point from boot PROM CHO == DSPCH+0DH ; Character output routine CHI == DSPCH+10H ; Character input routine INIT == DSPCH+13H ; Terminal initialization routine CON == DSPCH+16H ; Control-C check HDERR == DSPCH+19H ; Nonrecoverable Micro Disk error vector DLOOK == DSPCH+1CH ; Micro Disk file lookup routine DWRIT == DSPCH+1FH ; Micro Disk directory update DCOM == DSPCH+22H ; Lowest level Micro Disk driver DLIST == DSPCH+25H ; Micro Disk directory lister RSTRT == DSPCH+28H ; System restart address RWCHK == DSPCH+2BH ; Read after write and interrupt flags DOSER == DSPCH+2CH ; Micro Disk argument error vector DEN == DSPCH+2FH ; Micro Disk density flag AUTOS == DSPCH+30H ; Command processor autostart flag PAGES == DSPCH+33H ; Personalization byte, number of console display lines CONFG == DSPCH+34H ; Personalization byte, Micro Disk drive combination RESLT == DSPCH+35H ; Storage for result of last disk operation HDEMC == DSPCH+36H ; Type of last HDCOM error HDEDA == DSPCH+37H ; Sector address of last HDCOM error HDEDN == DSPCH+39H ; Drive number of last HDCOM error MDCB == DSPCH+3AH ; Personalization byte, address of Micro Disk Controller FTPTM == DSPCH+3BH ; Storage for processor speed indicator HMEM == DSPCH+3CH ; Memory limit indicator ADEV == DSPCH+3DH ; Additional output device number AOUT == DSPCH+3EH ; Character output bypassing additional device feature ISTAT == DSPCH+41H ; Input device status check OSTAT == DSPCH+44H ; Output device status check LINED == DSPCH+47H ; Line input editor FMNGR == DSPCH+4AH ; Hard disk file manager entry point HDCOM == DSPCH+4DH ; Lowest level hard disk driver entry point ; ; ORIGINS OF SYSTEM MODULES ; LINE == DSPCH+100H-NLINE ; Space for a line of text TSTAK == LINE ; Space for small argument stack for overlays BUFF == DSPCH+100H ; Shared sector buffer UIOB == BUFF+200H ; Users' I/O block HDCORG == 0500H ; Hard Disk driver FMGORG == 0D00H ; File manager origin TSSORG == 01F00H ; Transient system border CMPORG == 02600H ; Command Processor ; ; ; ; MFDOS result codes ; ; ; MFSNF == 1 ; sync not found MFCRC == 2 ; CRC error MFVFY == 3 ; verify compare error MFNIP == 4 ; no index pulse found MFDMM == 5 ; density mismatch on read or verify MFWRP == 6 ; attempt to write on protected diskette MFCCX == 7 ; control C detected from console MFIDW == 8 ; illegal call to DWRIT MFIDN == 9 ; illegal drive number MFIDA == 10 ; illegal disk address MFITL == 11 ; illegal transfer length MFIDC == 12 ; illegal command to DCOM MFTDM == 13 ; track density mismatch error ; ; ; ; ; File Manager Definitions ; ; ; ; ; File Manager Operation Codes ; FMCRE == 00H ; create file FMDEL == FMCRE+1 ; delete file FMOPN == FMDEL+1 ; open file FMCLO == FMOPN+1 ; close file FMTFR == FMCLO+1 ; transfer sectors to/from file FMLOK == FMTFR+1 ; lookup file information FMLAC == FMLOK+1 ; lookup account information FMCTY == FMLAC+1 ; change file type FMCAT == FMCTY+1 ; change file attributes FMCFS == FMCAT+1 ; change file size FMCAP == FMCFS+1 ; change the auto-load-and-go pathname FMABT == FMCAP+1 ; abort the calling program FMRST == FMABT+1 ; reset the File Manager FMLX == FMRST+1 ; load and execute a file of type FTMI FMFSZ == FMLX+1 ; return a file's size to the caller FMCA == FMFSZ+1 ; create account FMDA == FMCA+1 ; delete account FMSDV == FMDA+1 ; set/return default values FMCM == FMSDV+1 ; compose a standard message code message FMFIN == FMCM+1 ; finish executing the calling program FMRDS == FMFIN+1 ; return disk statistics to the calling prog FMADE == FMRDS+1 ; access directory entry FMRDV == FMADE+1 ; return default values to the calling prog FMCAN == FMRDV+1 ; change account name FMPD == FMCAN+1 ; power down a specific unit FMPU == FMPD+1 ; power up a specific unit FMFBU == FMPU+1 ; flag buffer used FMINI == FMFBU+1 ; initialize after bootstrap FMEOL == FMINI ; end of FM list ; ; ; Message Codes ; MOK == 00H ; ok, must be zero! MANE == 20 ; account not empty MDDUP == MANE+1 ; directory: attempt to add duplicate symbol MDFUL == MDDUP+1 ; directory: directory is full MDFND == MDFUL+1 ; directory: matching symbol found MDBAD == MDFND+1 ; directory: bad directory structure MDFNF == MDBAD+1 ; directory: file name not found MDANF == MDFNF+1 ; directory: account name not found MCADS == MDANF+1 ; cant allocate disk space, disk possibly full MOFUL == MCADS+1 ; cant open file, Open File Table full MOAVL == MOFUL+1 ; OFT entry available MILDN == MOAVL+1 ; illegal decimal number MILFN == MILDN+1 ; illegal file name MILAN == MILFN+1 ; illegal account name MILUN == MILAN+1 ; illegal unit number MILID == MILUN+1 ; illegal account ID MWRP == MILID+1 ; write protect MDEP == MWRP+1 ; delete protect MADEP == MDEP+1 ; account delete protected MCCPF == MADEP+1 ; can't change protected field MPARA == MCCPF+1 ; pramater in error or out of range MFRT == MPARA+1 ; file of wrong type specified MFNO == MFRT+1 ; file not open MFOPN == MFNO+1 ; file is open MFAIL == MFOPN+1 ; general failur MEOLA == MFAIL+1 ; end of list with available space MEOL == MEOLA+1 ; end of list with no available space MIFMR == MEOL+1 ; illegal File Manager request MFZNZ == MIFMR+1 ; file size not zero MIFZ == MFZNZ+1 ; illegal file size MEOF == MIFZ+1 ; end of file reached during transfer MPEOF == MEOF+1 ; transfer attempted past EOF MMEMP == MPEOF+1 ; memory protect violation MUNPU == MMEMP+1 ; unit not powered up MNYI == MUNPU+1 ; function not yet implimented MFMO == MNYI+1 ; file is multiply opened MDLRE == MFMO+1 ; Disk level revision error MDNSL == MDLRE+1 ; Drive label mismatch error MDNSS == MDNSL+1 ; Drive size mismatch error MDNRDY == 127 ; drive not ready-out of speed MDNACC == 126 ; drive not ready for command MCNPR == 125 ; controller not there MDWNR == 124 ; drive went not ready after command started MCNFTS == 123 ; can not find target sector MDRDFL == 122 ; failure in drive read electronics MTSHDR == 121 ; targ sec has crc error in header MBADRV == 120 ; drive number too big MDERDS == 119 ; drive error during seek MHSLER == 118 ; head select error MCYLER == 117 ; drive on wrong cylinder MHDCRC == 116 ; crc error in header during position verify MILLDA == 115 ; illegal disk address used MCNTFL == 114 ; read/write ff will not set in controller MDWRTE == 113 ; write unsafe or attempt to wrt on prot cyl MFWSOR == 112 ; found wrong sector during read or verify MRDSHE == 111 ; crc error on read sector header MDCRCE == 110 ; data crc error MVDATE == 109 ; compare error in data during verify MVCRCE == 108 ; crc error on data during verify MRCER == 107 ; drive error during command execution MRDFL == 106 ; failure to be able to format drive MSHDR == 105 ; Pll sync error on read MMIPLS == 104 ; Missing index pulse MBUFRD == 103 ; Buffer error ; ; ; ; Unit Structure ; SPD == 128 ; sectors per directory SPH == 4 ; sectors per hunk as a power of 2 HPM == 153*4 ; hunks per unit DLDA == 0 ; disk label disk address HTDA == 1 ; hunk table disk address BHTDA == 2 ; bad hunk table disk address BPS == 512 ; bytes per sector ; ; ; ; File Attributes ; ATBAK == 1 ; backupable flag, bit 0, backupable when 0 ATDRT == 128 ; file dirty flag, bit 7, dirty when 1 ATWRT == 2 ; write protect flag, bit 1, protected when 1 ATDEL == 4 ; deleteable file flag, bit 2, not deleteable when 1 ; ; ; Directory Entry Type Codes ; ENTNU == 0 ; never used entry ENTIU == 1 ; entry in use (account or file) ENTDE == 2 ; deleted entry ; ; ; File Types ; FTMI == 1 ; memory image file FTBP == 2 ; BASIC program file FTBD == 3 ; BASIC data file FTRD == 4 ; BACKUP/RECOVERY compressed directory FTRP == 5 ; BACKUP/RECOVERY packets FTCC == 6 ; CP/M work file FTCU == 7 ; CP/M unit FTPC == 10 ; PASCAL connection table FTPV == 11 ; PASCAL volume FTAS == 18 ; ASP sequential file FTAR == 19 ; ASP random file FTAI == 20 ; ASP index file ; ; ; FMLX Option Codes ; LXRLE == 0 ; return load errors, execute loaded code LXALE == 1 ; use FMABT for load errors, execute code LXRET == 2 ; return on load errors, donot execute LXXPO == 080H ; extended path option bit ; ; ; FMTFR Operation Codes ; TCORD == 1 ; read TCOWR == 0 ; write TCOVF == 2 ; verify TCOWC == 3 ; write 'clean' ; ; ; Disk Label Structure ; DLILL == 0 ; illegal directory address DLALX == DLILL+2 ; auto-load-and-execute path name DLASZ == 35 ; auto load&execute pathname length DLMAJOR == DLALX+DLASZ ; major disk structure revision level DLMINOR == DLMAJOR+1 ; minor disk structure revision level DLDSZE == DLMINOR+1 ; disk size DLNSRT == DLDSZE+2 ; number of sectors reserved for testing DLNHSZ == DLNSRT+2 ; hunk size as a power of two DLDRSZ == DLNHSZ+1 ; directory size (sectors) DLDIR == DLDRSZ+2 ; base disk address for the unit's directory DLXXX == DLDIR+2 ; reserved space DLSIZ == BPS-DLXXX ; structure size ; ; ; Hunk Table Structure ; HTALC == 0 ; the count of allocated hunks HTMAP == HTALC+2 ; the bit map of hunks, a 1 bit means inuse ; ; ; Directory Entry Structure ; DETYP == 0 ; entry type DESYM == DETYP+1 ; The entry's symbol DEACN == DESYM ; the account number DENAM == DEACN+2 ; the name protion of the symbol DENMZ == 14 ; name length in symbol DESYZ == DENAM+DENMZ-DESYM ; symbol length DEBAS == DESYM+DESYZ ; base for account and file data DESIZ == 32 ; the size of an entry DESZ2 == 5 ; the size of an entry as a power of 2 DEPS == 4 ; directory entries per sector (2^DEPS) EPD == 2048 ; entries per directory DIRM == 07H ; entry number upper mask DEOSM == 0FH ; entry-of-sector lower mask ; ; ; File Structure Discriptor ; FSDAT == 0 ; attributes FSDFZ == FSDAT+1 ; file size in sectors FSDLB == FSDFZ+2 ; bytes in use in last sector FSDHS == FSDLB+2 ; nHunk size as a power of 2 FSDMU == FSDHS+1 ; unit number FSDH0 == FSDMU+1 ; hunk 0 address divided by SPH FSDSZ == FSDH0+2 ; structure descriptor size ; ; ; File Directory Entry ; FDESD == DEBAS ; structure descriptor FDEAT == FDESD+FSDAT ; attributes FDEFZ == FDESD+FSDFZ ; file size in sectors FDELB == FDESD+FSDLB ; bytes in use in the last sector FDEHS == FDESD+FSDHS ; sectors per nHunk as a power of 2 FDEX1 == FDESD+FSDMU ; reserved space FDEH0 == FDESD+FSDH0 ; hunk 0 disk addr divided by SPH FDEFT == FDEH0+2 ; file type FDETD == FDEFT+1 ; type dependant data FDEXX == FDETD+3 ; reserved space, 2 bytes ; ; ; Account Directory Entry ; ADEAN == DESYM+DESYZ ; account number ADEXX == ADEAN+2 ; reserved space, 13 bytes ; ; ; Index block ; IXSIZ == BPS/2 ; one half sector long EPI == 129 ; entries per index ; ; ; Open FIle Block (OFB) ; OFBDE == 0 ; directory entry number OFBDB == OFBDE+2 ; base disk address for directory OFBIL == OFBDB+2 ; index length (1..EPI) OFBSD == OFBIL+1 ; the file's structure descriptor OFBAT == OFBSD+FSDAT ; attributes OFBFZ == OFBSD+FSDFZ ; file size in sectors OFBLB == OFBSD+FSDLB ; bytes in last sector OFBHS == OFBSD+FSDHS ; nHunk size OFBMU == OFBSD+FSDMU ; unit number OFBH0 == OFBSD+FSDH0 ; hunk 0 address divided by SPH OFBI == OFBSD+FSDSZ ; index block OFBCB == OFBI+IXSIZ ; OFB check byte OFBSZ == OFBCB+1 ; OFB size OFBUM == 0FH ; unit mask in OFBMU ; ; ; Create Information Block ; CBTYP == 0 ; file type CBATR == CBTYP+1 ; attributes CBNHZ == CBATR+1 ; nHunk size as a power of 2 CBPNA == CBNHZ+1 ; pathname address CBTDD == CBPNA+2 ; type dependant data CBSIZ == CBTDD+3 ; create block size ; ; ; Transfer Command Block ; TCOP == 0 ; operation code TCMEM == TCOP+1 ; begining memory address TCSEC == TCMEM+2 ; begining sector number TCLEN == TCSEC+2 ; transfer length in sectors TCEMA == TCLEN+1 ; ending memory address TCESN == TCEMA+2 ; ending sector number TCSNT == TCESN+2 ; sectors not transfered TCBLB == TCSNT+1 ; bytes in use in the last sector TCDRT == TCBLB+2 ; the 'or' of all dirty bits seen TCSIZ == TCDRT+1 ; TC size ; und MDANF == MDFNF+1 ; directory: account name not found MCADS == MDANF+1 ; cant allocate disk space, disk possibly full MOFUL == MCADS+1 ; cant open file, Open File Table full MOAVL == MOFUL+1 ; OFT entry available MILDN == MOAVL+1 ; illegal decimal number MILFN == MILDN+1 ; illegal file name MILAN == MILFN+1 ; illegal account name MILUN == MILAN+1 ; illegal unit number MILID == MILUN+1 ; illegal account ID MWRP == MILID+1 ; write protect MDEP == MWRP+1 ; delete protect MADEP == MDEP