* * * * NOSYSTEM source file - entered 7 Aug 83 * * This program is from MicroSystems August 1983 issue, * page 106. Its function is to prevent CP/M from crashing if * a warm boot is attempted on a disc which does not have the * system tracks initialized. This code is placed in the BIOS * at or near the beginning of the warm boot routine, just as * the system is about to be rebooted. TESTDISK: mvi c,0 ;Select the default (A) drive call SELDSK ;for the reboot operation lxi b,0 call SETTRK ;Select track 0 lxi b,2 call SETSEC ;Select sector 2 lxi b,CCP call SETDMA ;Set dma to start of CCP call READ ;Get first sector of CCP * Test for system disc lxi h,NOSYS ;Get address of error message, lda CCP ;just in case. cpi 0C3H ;Test for start with JUMP jnz DSKERR ;Nope, snitch. lda CCP+3 cpi 0C3H ;One here, too? jnz DSKERR ;No, go. * System disc verified; test for config match lhld CCP+1 ;Get jump address xchg ;and put it in DE regs lxi b,CCP+35CH ;Correct destination address- lxi h,SIZERR ;error address just in case. mov a,b cmp d ;Do the testing for match jnz DSKERR mov a,c cmp e jz DISKOKAY * Error routines * Display message and wait for keyboard entry (any key). * Then retry warm boot. DSKERR: call PRMSG ;Display error message call CONIN ;Wait for key press jmp TESTDISK ;then try again. * Error messages NOSYS: db cr,lf db 'No system on tracks 0&1' db cr,lf,0 SIZERR: db cr,lf db 'CP/M size conflict: wrong system.' db cr,lf,0 * If we made it to here the correct system is on the A drive * and the system will complete booting as normal. DISKOKAY: *2%*b0}!,~ +*#+> *>#**> **b0~>+*#2+> *> *> *}2%!%*O*:/ :O0:%y*:%!O0•+:e0!]0+~,:/ ,!/~ +:f0,:/++:_0,+:/#,:/ ,:_0=+!/~ +!0s!%~!%*4:0!/,G~Y+#x=+> Y+> Y+20!/>x6 #=,G!/~ pͳ'*&}?,>*/,`&%͈':^0*+,!&6S#6Y#6M#w!&w:%2%!"&ͳ'*2%`&%͛'͠'+,:%ʶ,:%.*P0"%.*>&}ʶ,>͕*æ,+,:%,l&&͈'!-x&CP/M MACRO ASSEM 2.0 NO SOURCE FILE PRESENT NO DIRECTORY SPACE SOURCE FILE NAME ERROR INVALID PARAMETER: SOURCE FILE READ ERROR OUTPUT FILE WRITE ERROR CANNOT CLOSE FILES UNBALANCED MACRO LIB END OF ASSEMBLY G:%x-!%~--.-*P0*%O {-z-.*P0"%!%^4!%w..WƐ'@'Õ*>:͕*!%^Ww*%{-|-}--{?.!%~#-6.-> ͕*> ͕*͞*> ͞*+.GCx=AK>wGh=D?>@>;GC;B=FnG@%=F!7ä'>26Ͳ0H/ ͫ!͘!:6/!/~F/EF/6w`3^ͫ! ͘!*(:6b/1=!60:68^ͤ'W :6!6ͬo:6†/:6o:6I TITLE &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&x5TITLE 2OS - NORTH STAR DD CP/M 2.2 OF002/20/!8CN:C_)f/4CR6225R22222222222222222222222222222222222222222222OS - NORTH STAR DD CP/M 2.2 OF 02/21/82' ; PAGE 44 ; ; T0ese routines copyright (c) 1980, 1981, 1982 by Steve Bogolub, ; 2338 S. Scoville Ave., Berwyn, IL 60402. Jade Double D (tm) ; disk handlers contributed to the public domain for use on Jade ; equipment by special permission of Jade 0omputer Projj^i55his software may be used freely for non-commercial purposes ; only, and may not be sold. ; ; THIS BIOS CONTAINS ROUTINES TO SUPPORT THE ; FOLLOWING HARDWARE: ; ; DISK: NORTH STAR MDS-AD2 DOUBLE DENSITY 5.25" ; FLOPPY DISK UNITS 1 AND 2 AS CP/M DR0VES ; A: AND B: ; ; JADE DOUBLE D REV C 8" FLOPPY DISK UNITS ; 0 AND 1 AS CP/M DRIVES C: AND D: ; ; SERIAL I/O: HORIZON LEFT (LOW) SERIAL I/O PORT AS ; CP/M DEVICE CRT: ; ; QT IO+ BLOCK D (RIGHT) USART AS CP/M DEVICE ; UC1:, INIT'ED TO 19.2K BAUD RATE ; ; QT IO+ BLOCK C (LEFT) USART AS CP/M DEVICE ; TTY:, INIT'ED TO 300 BAUD RATE ; ; HORIZON RIGHT (HIGH) SERIAL I/O PORT AS ; CP/M DEVICE LPT:, WHICH IS SUPPORTED AS ; A M1A TRAN8 D4AE TRCOM DB44 TRN124 D4BB TRNONE 00A8 TTY D06E TTYCHK D573 TTYIN D576 TTYOT D57C TTYOTC D580 TTYOTS 00AC UC1 D59E UC1CHK D5A UC1IN D5A6 UC1OT DBD5 UNACNT DBD6 UNADSK DBD8 UNASEC DBD7 UNATRK DBD9 UNAVAL DDAF WAIT1S DC4F WAITRE D9B4 WARM E900 WDATA DA44 WECHK DA5F WPEMSG D834 WPERR 0000 WALL 0001 WRDIR DA08 WREAD D801 WRIT10 D809 WRIT15 D813 WRIT17 D81A WRIT20 D7FE WRIT5 D7BF WRITEHST D9C6 WRMOK DA41 WRMRD DC32 WRTYPE 0002 WRUAL DA3B WSETUP a0&e0C212DD05C2F0DC3E043206DC2174DACD49 :10DD0500C3DDCD9DD93E593207DCC3BCDC3A03DC0B :10DD15004F0600212EDC097EE5EE59CC5FDDE13AA8 :10DD250004DCF5CD5FDDF1FE15DA41DD3A2DDCB71A :10DD3500C241DD3A07DCF62026EA6F7EAF3206DC0B :10DD4500C93A05DC4F3209DC061ECDAFDD3A35EBAD :10DD5500E60F91C805C24FDD04C9479670C8213040 :10DD6500EA4FF275DD2F3C4F3A20EBE601C02E104D :10DD75003A07DCB56F56F6106F56EE106F563E1427 :10DD8500163815C287DD3DC285DD1601CDB1DD3AF8 :10DD950025EBE601C2AFDD0DC275DDCDAFDD0405B6 :10DDA500C03A25EBE601C0C375DD16013A11EB3A21 :10DDB50010EBB7F2B4DD3A11EB15C2B4DDC93A0880 :10DDC500DCB7C200E8E521AEDACD50DAE1CD50DAB4 :10DDD5003A03DCC641328EDA2189DACD50DA3A04CB :10DDE500DCCD28D52195DACD50DA3A09DCC328D522 :0000000000 *BIOS - NORTH STAR DD CP/M 2.2 OF 02/21/824=LDAIW'ENKSYS8KBYTE-=CPMSZ?CPMBS^=CCPm;BDOSv;BIOS@BIOSRQmEIOBYTE?DEFDSK+>SECSZ?HSTSIZENDRVS;WRALLEWRDIRl?WRUALENSROMEWDATAR;CORDER\;CCMND<DPORTCL<DBASE@DSHLT8<DCSIN.<DCMB0<DCMB1<DCSOT<DCINT<DCBGN<DDCBTp<DDDRVq;DDTRKr~<DDSECsj<DDSTSwV<DDBBFt<DDFBF6>FMTSZ`<DDDPB <DDDDF1$<DCLOG<DCRDS<DCWRS<DCFMTB<DCIDLEMOTHR>CRTQTIO<QTCTRL=QTBAUD?TTY"?UC1FCR @LF MGSPACE BLPDE=LPCBLPIO2CCHAINCFF ;WARMٍ=BCNSCKҘ=CNSCKԢ=BCNSIN ҭ=CNSINd;BCNSOT ҹ>CNSOT= >LISTNPUNCH= @READER|AHOMEGSELDSK9DSETTRK=SETSEC=SETDMA>DISKRD֝ADISKWRց@LISTSTK0GSECTRNFORMAT >DIRBF6U>D0ALLҟ?D0CHKi>D1ALLҭDD1CHK}>D2ALL(FD2CHK+ӑ>D3ALLKICHK25AUC1CHK>ICHK15MSGSO%8?MSGOTPڠ;HSTSEC<DADDRۮ>HSTADRWSETUP!BWRMRDA@CPMLD>DEL5ӔCSEKDSK_>D0DPHDTPTR۪@LOGFLG۪CNOLOGe=HFLUSH ٳ?LOGERRK@LOGJAD L?HSTDSKqAHSTTRK@INTDI0֪EREADHST7BINTEN$EERFLAG;NSDENS,RATRAN5S@DPBNSS ^BLOGNSD5@TRAN5Dl@DPBNSD@@DPBNSLDDSKEXM?LOGCK!CDSKERBJADEIDڥ>IDSZE?LOGID->LG3740=TRNONEa@DPBAD;DPBSZFBLOCK@TR1024V@TR3740H;CPMSPTUNAVALBNOSHF;CALCSHԖ;SECSHF)ASECMSKDDSKOK@DPB84\ATRAN8fATRCOMԿ@TRN124DAHSTWRTa?HSTACT=SEKTRKۇASEKSECIADMAADR3JTRAN;CONS4BROUTE^ղACONINBTTYINs BCRTINBUC1INAHXBOT(HXNOT1?BTTYOTvՋECRTOTՠBLPTOT=CUC1OTTTYOTSsCROUTE5h)BTTYOTC|M=LOUT7JBLOUT5tBLOUT10ՕBLOUT20iBLOUT15CGPNTRDYTBLOUT35ՊBLOUT30LWAIT U=LPIL 1EDSKWRaֳBDSKRD?@ENTPSW5܀;INTEN5.FENOTZ80=CJADERD|(CNOTJRV;WRTYPE2ܴFREADOP1EALLOCEJADEWRCNOTJWxփ=CHKUNAHCUNACNTSCUNADSK^CUNASEC AUNATRKANOOVF֪FRSFLAG0܉CRWOPERRWOPSH֒ASEKHSTEFILHST&iCNOMATCH<MATCHkYEWRITEHST;ENOTNSRcGNSDEN: FSDEMSGfw@DSKERR$DJHREADT4;NJBUF~CRWMOVE׽BDSKOUTDJHWRITO*@NSCNT-0MDSETUP܂FPOSECFESNFERRܵ;WPERR4CWRIT5wDWRIT10؂DWRIT15 ؍DWRIT17bDWRIT20XDWPEMSG_CGNSDAGs>D1DPHCJHOPVnFBTDSKBTTRKFFBTSECDBTCMD?ADSKEXRdٷDJFLUSHبAJIOMSGERSEC DJAERRݜ<FMTERؾ?NOJFL0?DSKWTzBNOTRDYNENRD/DNRDMSGw?WRMOKA>DFIMGIOIMGPFBSIMGNSTRK.CURDSKlDWREADژDWECHKDCREADNSDܿEMSGLEB?MSGLQFRERMSGmSYEMSGpDNIPMSGt;=SNFMSGy EERRMSGASCDSK4ASECMSG<CRLFڇ>D2DPHFD2DPBW?D3DPH2FD3DPB dFBTSP0DBTCHRDBTMODDBTSTSxFBTLADZFBTLNG=PRVCHKۗFBOOTAܠFBOOT wEBOOTLDRTCNT+EREADRTEBOOT+;LAST߼7NJ*7`GzGý0OGGGͷG©G D  *7*7͠!7!7Hx͒HzjHIG>ͬ&>26!7YH**6͠H"6!7YHHHd*6͠6H"6*6͠DH"6*=7*=dH`i)\fH!7#͠+HͶHͩHnH!7͠H++++ÂH!7H ͩHҚH####7͠H++͉s#r+##s#r++H͉#r+s +r+s!7͉m.II>܇I I:6GO I+I IbI͎I>eI1I!64F!6II=O:6=G͎IbI WI*7+:V7!W~zI6!-kwC*7#iI*6*7d*7͠**6͠ҸIͽIͦ*6#"6"7*7JI:@7W~zCJI*6*7͠J*6HH͠J:J*6HH͠7-Jͽ:Jͦ*6+"6J"7:G+~# OJ> XJJ͒H.I?K*6!72KÒJJ`J!7K*7ͫJJڡJ2@7"7 •JbI}77:73~J#J7>J>:!77:7`JI!7K*7}:bI"7 JbI.I*6͒H͠DK*6)$$EK=KO>ͬ&gH͒H͠TK)|Lɯ2 'M:WnKwC}K*72 /2 *7ڇK*7m:WʭK:­K*|ʰKPY͠ڬKDMɯ2WH*72 ͷKxK~# ! ~6K2 *7*7mx‚LcJ\Kx7*7ɯ2 'M*7L*7m>2 *7LLx4L+~ ! ~6RL=2 !7͉mx‚LJLx7͵L͟LͫLyLnL    7L?L L ɯo>g>_:mCW o g _ Wz}|{ L*7͠*7͠>ͬ&LLL M*7M*7}o|g_P}!\M͵L0M{fM>Ĭ&zʅM*7*7d͠[M̓JBM*7>ÎM<>Ĭ&*7*7d҃͠MJlM*7z7>2 }:2!uCڢM~=26=26ڳM~26=26``i"R "T͏F>26Ç-N*6<͠N:6N!6~6̭N /c N:6*6*67LN2626^N'* .4NyN!fx N*6"6"6"6y26x26:6!6[N26-ʂ͵LL-k:=5ڥNͤ'9%:6> 0Ͳ026W %͂0͉͹$:626ɯ2626:=5͉!$88'L KwCKʻNNN! |  7N!6~6ʐO͞P+O`i+~+++O6! ^#V{\Oʹ`?G1G:6EO>JOx=`͍RckL7>~͌`P̓QҜO*R~~O͞_PlO` ʜO_wQ~O͞P+O~QPͰP+OP΂P{<[g҂P{[gւP{gW 2l:K5!‚-kͯEO!|k*TDM͵kwC|k2K5:l~QÜO͵L :6``i"P͵L̓V:%26*&" "":(2:|6@P̓1 W :`b^:W!|k2WLP2$!6~6/W |Pͫ! ͘!:6=ʋP͗PڒP7ԗPH)!65mmͣRoR7ȷ͂^P͞P:ͪ`P!6s^wQðP>P:6`2&:W!tC)Q! 45P͙RP=6++++!tCP/Q! ~Q͙R!tC)Q Q QLP͵LcUlQ̓V͆L_QI`ͺ_yR:Qzbg 整yR͍RzWLI`L:6=ÀQ>`! ʖQ~wçQ ʡQ~§QͶQêQ͍RoRQLP͵LoR̓V ͍RoRiRz9R iR iR͆LSQI` R̓V͆LRͩ^yR͍RSQoRiRQyRQ hR͆L.RiR͎^SQRI` IRiR TR WL͍RoRIRiRLùQ:6!͵LzWL:<2I`:=ÕRRLP*pC!&####:S~ʰR°R###~R+++Rzͪ`R~ʰRR+~G+++Rx:S~:S~:S~Sz!tC:S++++~:S:SDMz!sC:S!uC:S226LP7JS>2? T mS> GSbX:hYS‰S: 'TSBS:!I5”SSGS| S: S>^BSSS@BS^VʯS@GSôS*h#"h*E+"E*h+"h!TSS'T>T>͂ST> }T>~!kU: 1T: 1Tɯ2 :Wz2%*h:?JT+"&:k2(>2=:>T:U+zT*7M*7wT*7M*7*-wTzU*7:wTzU*0͠UU*h͠UUjVM*7+++++{TTU}~+TU!H5! F6BSOx2 y>2VL*LԌU2VLL͢Ux̿U+~  U#x̿U+~ # +åU>*L#:hG:?!:US#~\V*0}=V#6{="V=2>2;!k:22[\V:=2;2VW*-p#"-w#>2@[\V#54+U:i\V*0*h͠UGxG"026=2/*+ ÃV!"h9"+!W~ʚV6>2VLz2]>2\:22!:#:% 2jW:D=&XOy@X @X@X -XxgêWWxAX!X*h|}/<7:EjX=rZ:A:%2E-[:ͨXY=͓XY:;ʠX:2 2j͓X:\2\#̀\X:͓X:Y:͓XỲ\> #WGSͫX üX:X:͓XK Y Y Ỳ\YY#:ͨX@+:@[> O2?:]'TX:\LwN\AY͊\:%OY:AtY:kGYYw#WY:jwW 2VX͵L:COY:<«Y*0"h|}ªY!GڪY>2CS!YZbX:E=W:kGS]Yw#·YjXîY:`<2a=YYY*hZj73ZL͍ZWO$%Z.}Z.Ey=!G1Zx.Zw:%0y#QZ!CFZQZw!45!w~[>>HU:F:B3ZZ2`2F=2E=2_:]¿Z \zZ!_4:% [ZZ:Z>2k:]̆L`X?ԆL[[:%[:G<[:H<[2Aɯ:`=ZZZ:I/!ꂦ!Z*hM|D!G~®[\[=2D>2k:Cg[ڝ[:Hڪ[ʢ[O:`‰[:_=ڪ[ʪ[y!Bp!E2BGy/? ]͓X\`i{=)]~)]# ]w#]!k!H5:ÓX:ÓX\:":#7 ^l8\LH7]PL7]MT7]MB7]HM\FM\PC\PO\SR\UJ\BP\CW\PA\CP\PN\OP\HE\FO\IG\PF+]OJ+]IJ+]LS+]CS+]DM+]SV+]AV+]RP+]DF+]RV+]FI+]IF+]EF+]EX+]IA1]IB1]IC1]ID1]IE1]II1]IL1]IM1]IN1]IO1]IP1]IR1]IT1]!L*Lk%^*Lv\^`W P^ \^͍R!6:^LPý0\^LP͵L̓V *1V`$__S`͞_1^h``!6_ͪ`1$__S``͡_!6^V`^W:G5^:^^z`^^n"!^j&͘!Ò":6WJ#!*7m*7ͣ ͩm;!WN`:G5u_:W|_>E_z`:&?_:6!6]_:6?_26)H)Ϳ"> Ͷh`ͅ_ͅ_!W^:6WJ#Ñ ͕_||g}o&PY!>m! pý0`i&_&_PY!>m!ö__=_L`DM͵L`a`ý0ͣRa``*:oCW 8`8`͆LB`I`%`7 I` ::6`a` ~&!rCÇ`:qC`!vC/Ö`W:pC&_ʦ` Ø`G1Ox1!6/<12og))B DM!BS ͒_}!77Fwx# `͂$:$a>!J5FO:6a *6|a:&6!6O! #~ :a 2a:3'Pam(!4(̀\ta͸(C*#]b(C*#]bÝa͸(C:_*͟L Ҍa'b(C*#'b(C*"#$%aS>-z(]b:$z(*6|a>+G((*7*6de."6:J5!6m(~a>͸(C:pb>͸(#Cb>%͸(!C:$&b>0͸('C0z(3bb:b+|:bx]b`i3bz(~v :6:6WV)O*7:3=G:!“b:&:I5b:1b:0ʥbҾbb{!K5zҶb!I5w# b“b6+b> bw#b6 ͗,z26>26{!M5bcbͪ`:6` V^:&!6)*R++++~ e:6!6d͂^͇e:^!G5`V^*R~0_~Q eÇe!~6ʮeq1 K+!J5ð:K5:ӂ=[gͫg*7++wC>2ӂ2K5 f.(oN /*D526264(͘! fÁf!fh!m626-Ef!645Cfk!45Ef>́f!045]f#Mf:;́f̈́ ~*:6/!m!6^NR26!fLgLlGggxԳhڟf!ͶxZD h!65 g͘lhf26Kf hgg:J5h~ hC*P~###g~gw+w+w###A͠f gg!Ƃ-khق|k'L 7g*L7g#>g!q4HgD*"+""|k*ӂ-Wg!z!"p"6:p:J57:ӂ=ȷ[ggmҏg!6~6H)!65:$=ͣg=g!J545ʻgh> ZD> ZDfͷKKgg+G_w#¾gwCwC `îg:M5!K5wH).(!6h͞_=gP͇e j0.(!6h_~Q`  h͞_P e!hʹ`g?<:ς[g'LcDyh*P~~whKͳeOh!ӂ~yyh4 :p!q~ʍh5!Ƃ-k!΂|k> ZD-k:ɂ|kK'LͷKkd̍d[gCj*P:!h: h~~w++++~~w>2m[g i:p!"Ԃ$"҂L*Li i#΂L͏i6i!""͑gz:J5iiͷK*"mwCKfi+fi#!"@iwC `> Ll:> ʟf*"mf> ZDÀi*":§i{_izʽii} 7 Öi{үiiʕi2p31i*O5mүi*M5mڕi 7ȷ{!54w~io&" *P~j++++j~dj"PDM#^#V###N#fid>2VXKQj2W2VwC!")* |dj{K+zʕj#!)#:!j]j+: ]j+wC'Lj9k0j*&Z~###Dk6_/k_j!w+1k:H5͵Lz> >͆L>:%#$k=w<6j6#w#w#wd}))~wj~~wjYk*9kKk>̍&>+1WDM͵kzI'wC26Ãk!vkKI'+1!]0MwCÞkW ͵L{k{kk|k!kZD 7> ijԶ€lO31!"ym3l>2m2r$mljm `l*~*O5d"+|lNp:po `[gͧn `l}wC26*"*K5m*O5*"mz!m7?{kͷK*smKͿ7Mm+oSm~w#(l*mwC*s*K5"sdEp÷K}ނ>L!u@ mʄm> 2}:y:|ʣm!:8",6m!}5m*z"~*"*"oo mͳe7Ϳ7m>+w#_+nW*s(l*O5*sn#m$n:z$n"z+>L:z{joBnzjo>Mn{Fn2|z>G}!u~p#wzxdnO#~q#wz2*sxn#"~!y4+x>L=¢n: L*Lw2 }L*LW¹n6XK2onoWʿnͿ7+wC:$=_}>ZD> ZDnI'*K5"sEp÷K:rLڂ͆L7K(o(o+wCͷKKLo/o `Hoͳe/o+RoCK zjo+6 -:vG:!64~o!xҎowOҞo!4ʞo<552x!x2ނXK}Koo}!v5o:o!x5o!5o!5o=<ʳooͷKóo:wC!p~G~w(p}xp>OxG͢G p>p p :/!r:v!!]1 oͷKóo:wC! /c N:6*6*67LN2626^N'* .4NyN!fx N*6"6"6"6y26x26:6!6[N26-ʂ͵LL-k:=5ڥis program#2+Are the modifications now complete (Y/N) ? #CalcStar Installation:# Terminal is ##3Printer is accessed through normal CP/M LST: device#channel.# ǂ}ǃUT \ `T.*RDd*CONSOLE:P``CRT:P`PrrT