ÃFÃÿGET :ó<È*ñë*ïÍôø*í.n6Ãè.t6ÃÉ ÃLýÃL!¸páå:¼Ú~yþ ÊÝþÊÝ!ê6þÊÝþ ÊÝþ<ÊŠþÂ~ë"§ëx!ëÍ=F#fhé!íþ€È:·Â~þ‚!ÈþŒÂ«!©>�–wþ�Â~:©·ÈÍÍ×Í×!5ë*í.´~æ¿w:ºÀ;à :·Â~!9"¹1AÅÕÍ#þÊu.Èt.´~ö@wæ :&Ê/·Â3åÍ–!¸~·6ÿ» Ì á:·Êø~æw÷ÂuÍcÑÁÅÕy!†åþ ÊŽþÊBþ Êd{<Ê‘<Êd!ê6<Ê–Ã Íü·ÈáͰÿÍ Í#+~æþwÑÁ*¹ùÃ~þÿÊu*¹ùoÉÍd·È¯!$4üÕ·ÿ®:$!'Í=FxþÿÅ̰Á!%~þ pÀxþ Ì–xÖ<2&Ì–> Éà Å'ÍÐ*íªÁåÕÍ2.àÍ2+6.àwÍ áÑõ{ëõÊÍÒÍGñ=ÊÕYPÁÃøñáÉÿÃÇÂÿÍÇÄÿÉÇÇÿéÇÇÆÏç"ÇÀ÷Ó*�##F+N+~þÒaå/…o>ÿŒg{¹Â\z�Â\á<É33Ã=¯É>!y$¾Ú‡ *y$&>'èd É!y$4Âd SYMBOLS NEXT MSZE PC END 6É!z$q!h#6?! h record(s) written. Ÿõh#ÖÖŸH±Å!:#ÖA{$O¹Ò !:h#þ Â!ÍÍ2h#Ã!@¥ ÃÂ!:h#ÖSÖŸõ:h#ÖQÖŸÁH±ÒP!:ö#<2|$ÍÍ2h#ÖÖŸõ:h#Ö ÖŸÁH±ÚG!Ã)!ÍÍ2h#Ô!ÍÍ2h#Ö02|$O> ¹Òj!!|$6Ô!ÍÍ2h#Ö02w$O> �@!’!BH @@A‚BH B! "ˆBHI$$’BI$BI „$„’ ’HI ‚D$��„‘H��„„D$$ H „ B’!$D$ˆ"$’B$�’DA!AB�’I$„�$SUBDisk Write Error$Random Read $.$Invalid ASCII Character$Parameter Error$ERROR: Directory Full$Requires CP/M 3.0 $1ß1ßÍG"’*’}Ö0Ÿõ|ÖÖŸÁH±Ò¤bÍÍPÍä2èÍIÍK ÍÓ1ßÍ"”>ÿ”ÍdµÊã*”++"”~ÒãÍ"”èÅ!\Í.žÍ ûv!¢q*¢&ëÍÉýÍÉ!¤p+q*£ë ÍÉ!§s+p+q*¥:§w#6*¥ë Í*¥#"¥N#FyÉ ÍÉ!©p+q*¨ëÍÉ!«p+q*ªëÍ2 É!­p+q*¬ëÍÉ!¯p+q*®ëÍÉ!±p+q*°ëÍÉ!³p+q*²ë!ÍÉ!µp+q*´ëÍ2 É!·p+q*¶ëÍÉ!¸q*¸ë-ÍÉ!¹q:¹2–!—6–1ÍÉ!»s : þÊ ͪõÉ!Ûqÿ!ÔÍrÒ- "ÍÍw *ÔÔ :Ûw:ÛþÿÂC Íw *Ô#"ÔÉ Í"á*á#~2àæþ2à_! Í8!0ë!îs*à&ëÍ:0ë!ïsÿÍÖ!6èͳ: þÿÂÆ èÍsÍÖèͳ: þÿÂÆ LÍÍÍÖÉ!åå`i^#V#~#foÍ ÍÇ Âí y·Âo wà Gþ: xÖAÚo þÒo ÈþaØþ{Ò ‡ŸgÑñw!Ú0>1xÍy :B12!1É!A14ì*ô0Û0>€Íc*ô0"D1!D1Í·Í~É^#Vë"F1*F1^#Vë> Í�!H1 Í*!H1> ÍXÍÓæ1~# Âs !9"2!ì1"í1!ï16€*è1¯w#w*æ1ngïÿ |·ò£ É*æ1KÍLëG!ã1>Íyº ÉÍü !ì1Í**í1~o‡ŸgQ1~o‡Ÿg)Ñ1^#Vëé*è1^#Vë#ër+sÍH !ð1ì1>ÍcÍü !ì1Í*>22*í1~o‡ŸgQ1~ÖúY !ä1ì1xÍyÊK !24ÍH :2ÖòK !ì1å!ð1Ñ>ÍÁÍü !ì1Í*à *ê1ïÿå*è1^#VëͯÑð1>Í_ÃÅ *í1~o‡ŸgQ1~Öú› Íü !ì1Í*Ã{ ÃÅ Íü !ì1Í*!å1ì1xÍyÊÆ Íü !ì1Í*é Íü !ì1Í**í1~o‡ŸgQ1~Öúñ Íü !ì1Í*ÃÑ ÃÅ *2ùÍÆÉ:ï1·+3:,3·ò1!Q3:-3åo‡ŸgͯÑ3>GÍt*+3ÍO"+3ÃM!Q3:-3åo‡ŸgͯÑ3>GÍt!�3ÍA !/3Í*!/3>ÍSå!L3õ:-3åo‡ŸgͯÑÁÑ>Ít*%3å*)3))Ñ^#Vë")3øÍŸÃûÃö!.34*3~!.3–òµ!ÿ¯Ít:-3o‡Ÿgͯ}!;3w!;3~Æw*93:;3=_ÍL3Ít*93ë!�3>€Í_!›3ÍúÉÍÉ^#Vë"‡<:F4·ò±!F46*‡<KÍLëG!H<>ÍyÂ+!E46€Ã°!E46!4"Œ<Írå*Œ<Ñ>$GÍt!'4I<>GÍt!*46!>46Íz"ŒÍ!4Íß*‡<€Í@*‡<"™ÍrÖŸ2Ž<:E4·òÝ:Ž<·òØÉ>2Š<>2‹<*‡œ`G>0 Ò<à Á DMþ0Àþ À> É<Áë!øÿ9ùÅ<·Ow#È Â4·>™úE¯w#ÈÃE~#ÃX~#W“ –À#Ã�ë!9åO…o>ŒgãëyÍÁáÑùëéåõ~õ#…o>ŒgxÁ�Gñ¸ÒÖGÍtá†wÉF#ëá"Ë<ëõxÍÍñ*Ë<é!9G…_>ŒW€Obk++Ê~+ áÑyé~#·ÈÁë/€‘æw!/x·Â�"y·Êž"å >€‘O6# Âx"áÅå€ ãÕëÍÑÕÍÑáÁ·Êh"ͯ=É¯É ~#fo++Ã"!=~#¶ÊÊ"*!=Í"²"ë"ÃÍ"ý" Íà Insufficient Memory$ Invalid I/O List Eò !ï16!"Ý1*æ1n&"ß1*æ1"á1Ã' *Ý1#"Ý1*ß1ë*Ý1ÍWò7 Ãô *á1å*Ý1Ñ>ÍÓ*í1~o‡ŸgŸÿ |·úc !ì1>ߦw !ì1~Ö?Ât !ì16_ !ì1~Ö@‚ !ì16`ÉY2 ~# ˆ *_2^#Vë"e2*c2^#Vë"g2!"ê2*[2^#Vë"ñ2*ñ2ë*ê2ÍWúô *]2ïÿå*ê2ͯÑ"ó2!ó2Íõ :ð2·òê *e2å*ì2)))Ñ~#¶Â *g2^#Vë#å*e2å*ì2)))ÑÑs#rÃc *e2å*ì2)))Ñ^#Vë"î2*g2å*î2))Ñ~#¶ÊK *g2å*î2))Ñ^#Vë"î2Ã% *g2^#Vë#å*g2å*î2))ÑÑs#r*g2^#Vë#ër+s*a2^#Vëå*g2^#VëÑÍWò› !i272>€!Íc!ù2Í·Í~*ê2+|µÂ´ *Y2^#VëÍO"î2þ *Y2^#Vë"î2*î2å*g2++å*g2^#Vë))ÑÑs#r*g2å*g2^#Vë))ѯw#w*ê2#"ê2ô Éû2~# Â:‹<åo‡ŸgÑë!‰<>GÍt!^<‰<xÍyÂ;!Š<¯–ò8!Š<5!œ<Í›Ã#ÃE!ž<Í›!Š<5:Š<·ÂQ>2Š<Ãj*Œ<:‹<åo‡ŸgÑ" 2‹Í%Í^}2¢<:¢Í!4Íß*‡<€Í@*‡<"«Í!4Íß*‡<€Í@*‡<"»2À<*¾Ít!Â<͆!À<4ÃÍ!Å<͆ )Ò )Ò  )Ò Éz¬õ|·ôODMë|·üOÍ)ñüOÉëx±>Ê~!>ë)Ò<ëå ÒDãá=ÊM)Ã6ëɯ•o>œgÉ{•ozœgÉ!dÄlmnpr Conversion2�!‡Ä��‘“åõ*%=|µÊÃå^#Vë"%=ë###^#V#N#Fx±Ê¿ #~òáÍÆñáÉ*%=|µÊíå^#V#N#F!9y•xœáÒíë"%=ëÍÆÃÆ:L#·Ê !9ë!�#{–z#žÚ Íå Ãí!Ã!9ë:]#·ÈO!^# {–#zžØ!]#5Ã#}æþOD*#=~Òr##~#fo´Â9!NÄVWXZ\ Free Space Exhaustedå##^#V#{•_zœWÚ;{‘_z˜WáÚ>4z·Â˜{þÚÁå##^#V# ëãå##s#rëÑs#r#ëãës#r+++ë~æs¶w#rá####É}´Èë*#=}“|šÒ5*{•zœÒ5ë+F+N+V+5^{Ú;{•zœÒ;}‘|˜Ò;{²Ênd of Execution$#dd(Copyright (c) 1980 Digital Research V1.3€MXList €SYMú *ý26*û2ÍLëG!X2>ÍyÂC *û2"3*3#~õ>Á !3w:3o‡Ÿg2~·òC É:2·ò¬ !26*e2^#Vë#"3!3"3¯23!3>–ú¬ *3++|·ò€ !"3Ñ *3>åo‡ŸgÑÍ"3*3:3åo‡Ÿg)2Ñs#r!34Ãd !" 3*e2^#Vë" 3¯23*2"3!3"3* 3ë* 3ÍWò_!34:3o‡Ÿg)2^#Vë" 3*e2úÿå*3)))Ñ^#Vë"3*û2å*3ÑÍjÒ/*3+" 3* 3ë* 3"3!36€Ã\*3å*û2ÑÍjÒY*3#" 3* 3ë* 3ÍW"3!36Ã\ÛÃÌ :3·òo* 3"3Ãu* 3"3*e2úÿå*3)))Ñ^#Vë"3*û2å*3ÑÍjÊ›É*ý26€*3å*ÿ2Ñs#rÉ3 ~# ±*3^#Vë"#3*!3^#Vë"%3!ÿ¯Í ÷>2.3*3~·ÊŸ*34*3~o‡Ÿg"•3!“3ÍA !/3Í*É^#Vë^ÉÍ#VÉå ÍáÉÍ þÐÃ$Í þ"Ð/ Íà Later CP/M or MP/M Version Required$*#=É*ë*#={•ozœgÉÍY|·g}oÉ!\É!lÉ!€ÉÃÃ�Ã�Íáõ3>éÃ�ÍÃ!¯å*éáõ3>éÍK* é!ïå*éÃÍÃÍ ÃÍ Ã Í·È>ÿÉ Ã ÃÍÃÍÃÍÃÍÃÃÍÃÍÃÍÃÍÃÍÃÃÃÍÃÃÍÃÍÃÍÍÃÍÃÍÿ ÃÍÍ ÃÍÍ!ÃÍÍ"ÃÍÍ#ÃÍÍ$ÃÍÍ%ÃÍÍ(Ã^#Vë^ÉÍÜ#VÉÍâ‡ÃÍâ‰ÃÍâŠÃÚi`~æs¶w#rë##q#p Øi`N#F#^#Vë~Ò;q4#p+ëi`##s#rÉAÃÍ"]ÃÍ" FREE Request Out-of-Range$ Free Space Overwrite$GKþÒœMbkÜÍiFÍhNÅÍhN#FÅÍh^#VáÁ"­#y2¬#ÅÕåxþÒ¯i&Í© ÊæºÕéáÑÁxþÂÆ>ÿÉþÚéë!J#{–À#z–À*‹#å*�#åÍå áÑùëéáÑÁxÖÈy·xòõ·ÈÕåÅõÍMñ_!…^#VëͤÍG>(ÍIÁyÍ€>)ÍIá|µÊ*Í<Íá|µÊ6Í<ͤͶò"å>,ÍIÍGáÉ> _ÃO! ÍO! ÃO!æÆ0þ:ÚIÆÃIõÍWñÃWåÍGáå|Íeá}Ãeþ Ú�d¹Ô’ Í’¹Ú�‘ÔõxÍWñÉN È#~·ÈÅåÍIáÁæ!wͤ*=ë!9{•_zœÂ×{·Ú×þ ÚëÍéÍG>#ÍI*=øÿ>·È=^#V#åõëÍqñáÃëÍ******************* * * * COLD-BOOT SIGN-ON MESSAGE * * * ************************************************************* PROMPT: IF LDRBIOS DB ACR,ALF,ALF DB 'LOADER FOR MORROW DESIGNS DJ2D CONTROLLER.' DB ACR,ALF,0 ENDIF ; IF NOT LDRBIOS DB ACR,ALF,ALF DB 'CP/M 3.0 (V' ;CP/M VERSION NUMBER DB CPMREV/10+'0' DB '.' DB (CPMREV MOD 10)+'0' DB '), BIOS REV ' DB REVNUM/10+'0','.' ;REVISION * * * ************************************************************* IF LDRBIOS ;PERFORM ANY INITIALIZATIONS TINIT: MVI C,CLEAR ; THAT YOUR SYSTEM REQUIRES CALL COUT ;CLEAR THE CONSOLE SCREEN RET ENDIF ************************************************************* * * * COLD BOOT ROUTINES * * * *****************************************************D DISK BUFF EQU 80H ;DEFAULT BUFFER ADDRESS TPA EQU 100H ;TRANSIENT MEMORY ENTRY EQU 5 ;BDOS ENTRY JUMP ADDRESS RETRIES EQU 10 ;MAX RETRIES ON DISK I/O BEFORE ERROR ACR EQU 0DH ;CARRIAGE RETURN ALF EQU 0AH ;A LINE FEED MAXDISK EQU 4 ;MAX OF DISK DRIVES CLEAR EQU 1AH ;CLEAR SCREEN CODE FOR LDRBIOS ************************************************************* * * * PUBLIC AND EXTERNAL DECLARATIONS REQUIRED FOR CP/M PLUS. * * EAD SECTOR ?WRITE: JMP WRITE ;WRITE SECTOR ?LISTS: JMP LISTST ;RETURN LIST STATUS A=FF=READY ?SCTRN: JMP SECTRAN ;SECTOR TRANSLATE SECTOR IN BC ?CONOS: JMP CONOST ; OUTPUT STATUS OF CONSOLE ?AUXIS: JMP AUXIST ; INPUT STATUS OF AUX. PORT ?AUXOS: JMP AUXOST ; OUTPUT STATUS OF AUX. PORT ?DVTAB: JMP DEVTBL ; ADDRESS OF CHAR. I/O TABLE ?DEVIN: JMP DEVINI ;INITIALIZE CHAR. I/O DEVICES ?DRTBL: JMP DRVTBL ; ADDRESS OF DISK DRIVE TABLE ?MLTIO: JMP MULTIO ;SET NUMBER OF LOGICALLY CONSECUITIVE is finish address X{f}{r} (Examine) Examine/alter CPU state. f is flag bit C,Z,M,E or I. r is register A,B,D,H,S or P. ///2Examples A>SID CP/M 3 loads SID from drive A into memory. SID displays the # prompt when it is ready to accept commands. A>B:SID SAMPLE.HEX CP/M 3 loads SID and the program file SAMPLE.HEX into memory from drive B. ///2Utilities SID uer on the disk Number of free directory entries for the disk Drive characteristics ///2Examples A>SHOW A>SHOW [SPACE] Instructs the system to display access mode and amount of space left on logged-in drives. A>SHOW B: Show access mode for drive B and amount of space left on drive B. A>SHOW B:[LABEL] Displays label information for drive B. A>SHOW [USERS] Displays the current user number and all the u (Load) Load program and symbol table {,sym-filespec} for execution E*sym-filespec (Load) Load a symbol table file Fs,f,d (Fill) Fill memory with constant value s is the start address f is the finish address d is an eight-bit data item G{p}{,a{,b}} (Go) Begin Execution p is a st