home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / BDOS / NOVADOSI.LBR / NOVADOS.WZ / NOVADOS.WS
Text File  |  2000-06-30  |  48KB  |  1,131 lines

  1. .op
  2. .po 8
  3. .mb 8
  4. .mt 3
  5. .hm 2
  6. .fm 2
  7. .pl 66
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.              N O V A D O S ááD O C U M E N T A T I O N
  15.              =========================================
  16.  
  17.  
  18.                          R e l e a s e   H
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30. NovaDO╙á  i≤á  aεá  enhanceΣ CP/═ compatiblσ Disδá Operatinτá Systeφ ì
  31. whicΦ take≤ advantagσ oµ thσ feature≤ oµ thσ Z8░ microprocessor«  I⌠ ì
  32. provide≤á ßá  numbe≥ oµ  feature≤  ove≥  anΣ abovσ thσá Digita∞á Reì
  33. searcΦá BDOS¼á man∙ oµ whicΦ arσ user-selectablσ a⌠á assembl∙á time. ì
  34. I⌠á  i≤  simila≥  iε  man∙  respect≤  t∩ ZRDOS¼á  ß widel∙ availablσ ì
  35. commercia∞ CP/═ DOS¼ anΣ caε bσ madσ t∩ emulatσ ZRDO╙ quitσ closely« ì
  36. Mos⌠ ┌ systeφ utilitie≤ whicΦ requirσ ZRDO╙ wil∞ als∩ operatσá unde≥ ì
  37. NovaDOS«á  NovaDO╙á support≤ man∙ ZRDO╙ feature≤ includinτ thσ call≤ ì
  38. t∩á Ge⌠ anΣ Se⌠ Warφ Boo⌠  Trap¼á  Returε  DM┴  Addres≤  anΣá returε ì
  39. ZRDO╙á versioεá number«á  Additiona∞ feature≤ includσ ßá DO╙á searcΦ ì
  40. path¼ ▓ kind≤ oµ publiπ files¼ archivσ bi⌠ support¼ improveΣ manageì
  41. men⌠á oµ flopp∙ drive≤ anΣ mucΦ more«á  Thσ softwarσ interfacσá preì
  42. serve≤á al∞ Z8░ register≤ no⌠ involveΣ iε returninτ datß t∩á callinτ ì
  43. applications.
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.                           Lindsay Haisley
  54.                      14206 Spreading Oaks Drive
  55.                          Leander, TX  78641
  56.                            (512) 259-1190
  57.                      (512) 444-8691 (Z-node 77)
  58. .paè
  59. NovaDOS - A replacement for CP/M 2.2 BDOSì
  60. Release H. á03/14/89
  61.  
  62. NovaDO╙ i≤ aε updatσ oµ SUPRBDOS¼ formerl∙ P2DOS« Thσ presen⌠ incarì
  63. natioε a≤ NovaDO╙ i≤ thσ responsibilit∙ of:
  64.  
  65. Lindsay Haisleyì
  66. 14206 Spreading Oaksì
  67. Leander, TX á78641ì
  68. (512) 259-1190 (vox)ì
  69. (512) 444-8691 (Z-node 77)
  70.  
  71. Please notify Lindsay of any bugs or problems with NovaDOS.
  72.  
  73. SUPRBDOS was updated from P2DOS by
  74.  
  75. Benjamin Hoì
  76. 626 Emerson St.ì
  77. Evanston, IL á60201
  78.  
  79.  
  80. COPYRIGHT NOTICEì
  81. ----------------
  82.  
  83. Thσá sourcσá codσ fo≥ NovaDO╙ i≤ copyrigh⌠ (c⌐ 198╡á b∙á Hermaεá Teε ì
  84. Bruggσá oµá Thσ Netherlands«á I⌠ ma∙ bσ freel∙ copieΣ anΣá useΣá fo≥ ì
  85. noncommercia∞á purposes«á An∙á commercia∞ usσ i≤á prohibiteΣá unles≤ ì
  86. approveΣ iε writinτ b∙ thσ origina∞ author¼ H.A.J« Teε Brugge.
  87.  
  88.  
  89. ALL RIGHTS RESERVED ááááááááH.A.J. Ten Brugge
  90.                             Molenstraat 33
  91.                             NL-7491 BD Delden
  92.                             The Netherlands
  93.                             Tel:..31-5407-1980ì
  94.  
  95.  
  96. NZCO═ i≤ ß registereΣ trademarδ oµ Alphß System≤ Corp.¼ 71▒ Chatsì
  97. wortΦ Place¼ Saε Jose¼ C┴ 95128.
  98.  
  99. JetLDR i≤ ß registereΣ trademarδ oµ Plu*Perfec⌠ Systems¼ 41░ 23rΣ ì
  100. St., Santa Monica, CA  90402
  101.  
  102. ZRDO╙ mentioneΣ hereiε i≤ copyrigh⌠ (C⌐ 1985¼ 198╢ B∙ Denni≤ L« ì
  103. Wright.
  104.  
  105. Thank≤á t∩á Ja∙ Sagσ fo≥ bit≤ anΣ byte≤ oµá highe≥á education¼á Phi∞ ì
  106. Newmaε fo≥ betß testinτ previou≤ releases¼á Pa⌠ Pricσ fo≥ betß testì
  107. inτ thi≤ release¼á Bridge≥ Mitchel∞ fo≥ hi≤ elegan⌠ codσá relocatioε ì
  108. algorithφá anΣá Jiφ Lil∞ fo≥ hi≤ finσ routine≤ t∩á displa∙á assembl∙ ì
  109. stats.
  110.  
  111. .paè                 T A B L E   O F   C O N T E N T S
  112.                  ---------------------------------
  113.  
  114.  
  115. OVERVIEW OF FEATURES   . . . . . . . . . . . . . . . . . .    1
  116.  
  117. DISCUSSION OF FEATURES   . . . . . . . . . . . . . . . . .    3
  118.      Public Files    . . . . . . . . . . . . . . . . . . .    3
  119. áááááSearch Path     . . . . . . . . . . . . . . . . . . .    3
  120. áááááArchived Files    . . . . . . . . . . . . . . . . . .    4
  121. áááááConsole Checking  . . . . . . . . . . . . . . . . . .    5
  122. áááááTime and Date Stamping  . . . . . . . . . . . . . . .    5
  123. áááááHigh Bit Characters   . . . . . . . . . . . . . . . .    7
  124. áááááPermanent Media Relogging   . . . . . . . . . . . . .    7
  125. áááááChanged Disks   . . . . . . . . . . . . . . . . . . .    8
  126. áááááUse of Z80 Registers  . . . . . . . . . . . . . . . .    8
  127.      Disk Initialization   . . . . . . . . . . . . . . . .    9
  128. áááááNovaDOS Flags   . . . . . . . . . . . . . . . . . . .   10
  129.  
  130. NOVADOS ERROR HANDLING   . . . . . . . . . . . . . . . . .   11
  131.  
  132. CONFIGURATION AND INSTALLATION   . . . . . . . . . . . . .   12
  133.  
  134. NOVADOS FUNCTIONS  . . . . . . . . . . . . . . . . . . . .   13
  135.      Function  1:  Read Console Byte   . . . . . . . . . .   13
  136. áááááFunction  2:  Write Console Byte  . . . . . . . . . .   13
  137. áááááFunction  6:  Direct Console I/O  . . . . . . . . . .   13
  138. áááááFunction  9:  Display $-Terminated STring   . . . . .   13
  139. áááááFunction 10:  Read Console String   . . . . . . . . .   14
  140. áááááFunction 11:  Read Console Status   . . . . . . . . .   14
  141. áááááFunction 13:  Reset Disk System   . . . . . . . . . .   14
  142. áááááFunction 15:  Open File   . . . . . . . . . . . . . .   15
  143. áááááFunction 19:  Erase (Delete) File   . . . . . . . . .   15
  144. áááááFunction 21:  Write Sequential  . . . . . . . . . . .   15
  145. áááááFunction 34:  Write Random  . . . . . . . . . . . . .   15
  146. áááááFunction 37:  Reset Drive   . . . . . . . . . . . . .   16
  147. ááá  Function 38:  Relocate Code . . . . . . . . . . . . .   16
  148. áááááFunction 39:  Return Fixed Media Vector . . . . . . .   16
  149. áááááFunction 41:  Get/Set NovaDOS Flags   . . . . . . . .   17
  150. áááááFunction 42:  Set Path Address  . . . . . . . . . . .   17
  151. áááááFunction 47:  Return Current DMA Address  . . . . . .   17
  152. áááááFunction 48:  Return ZRDOS Version Number   . . . . .   17
  153. áááááFunction 50:  Set Warm Boot Trap  . . . . . . . . . .   17
  154. áááááFunction 52:  Reset Warm Boot Trap  . . . . . . . . .   18
  155. áááááFunction 200: Get Time  . . . . . . . . . . . . . . .   18
  156. áááááFunction 201: Set Time  . . . . . . . . . . . . . . .   18
  157.  
  158. ASSEMBLY . . . . . . . . . . . . . . . . . . . . . . . . .   19
  159.      Loadable REL Files  . . . . . . . . . . . . . . . . .   19
  160. áááááPatching PUTSYS with a HEX File   . . . . . . . . . .   19
  161.  
  162. ADDITIONAL ASSEMBLY OPTIONS  . . . . . . . . . . . . . . .   20
  163.      Binary Image Files  . . . . . . . . . . . . . . . . .   20
  164. áááááSPR/PRL Files   . . . . . . . . . . . . . . . . . . .   21
  165. .heNovaDOS  Features Overview                                   page #
  166. .paè.foNovaDOS  User's Manual                                     Release H
  167. .pn 1
  168. AN OVERVIEW OF NOVADOS FEATURES:
  169. ================================
  170.  
  171. NovaDO╙á i≤ ß 100Ñ CP/═ 2.▓ compatiblσ replacemen⌠ fo≥á Digita∞á Reì
  172. searcΦá BDOS«á I⌠ i≤ no⌠ protecteΣ b∙ Digita∞ Research'≤á copyright¼ ì
  173. anΣá i≤á limiteΣ onl∙ b∙ thσ rathe≥ generou≤ publiπ domaiεá restricì
  174. tion≤ iε thσ origina∞ copyrigh⌠ noticσ reproduceΣ above«á I⌠ ma∙á bσ ì
  175. useΣá witΦá thσá standarΣ Digita∞ ResearcΦ CC╨ o≥ witΦá an∙á oµá thσ ì
  176. ZCPR's«á Thσá followinτá feature≤ arσ improvement≤ oεá thσá standarΣ ì
  177. Digita∞á ResearcΦá BDO╙á anΣ arσ discusseΣ full∙á iεá thσá followinτ ì
  178. sections.
  179.  
  180. ** áTw∩á kind≤á oµ Publiπ file≤ arσ supported¼á a≤ explaineΣ iεá thσ ì
  181. áááápubliπ file≤ sectioε below.
  182.  
  183. ** á┴á searcΦ patΦ i≤ availablσ whicΦ wil∞ acces≤ systeφ anΣá publiπ ì
  184. ááááfile≤ iε directorie≤ othe≥ thaε thσ default« Thσ dospatΦ addres≤ ì
  185. ááááma∙ bσ modifieΣ througΦ aε optiona∞ DO╙ Functioε 4▓ call.
  186.  
  187. ** áThσ archivσ filσ attributσ bi⌠ (higΦ bi⌠ oµ thσ seconΣá filenamσ ì
  188. ááááletter⌐á i≤ supported«á An∙ filσ writσ operatioε wil∞ rese⌠ thi≤ ì
  189. áááábi⌠ oε al∞ filσ extent≤ oµ thσ affecteΣ file.
  190.  
  191. ** áConsolσá Statu≤á ma∙ bσ checkeΣ afte≥ ever∙á 25╢á character≤á oµ ì
  192. ááááoutput«á Thi≤á make≤ i⌠ possiblσ t∩ exi⌠ ß prograφ doinτ continì
  193. ááááuou≤ screeε outpu⌠ usinτ ^╙ ^├ eveε thougΦ othe≥ character≤á arσ ì
  194. ááááwaitinτ t∩ bσ processed
  195.  
  196. ** áTimσá anΣá datσá stampinτ oµ file≤ i≤á supported¼á assuminτá thσ ì
  197. áááádirector∙á ha≤ previousl∙ beeε se⌠ u≡ t∩ contaiε thσ stamp≤á anΣ ì
  198. ááááthσ BIO╙ support≤ ß calendar/clock.
  199.  
  200. **  Tw∩á differen⌠á method≤á arσ provideΣá fo≥á sensinτá thσá changσ ì
  201. áááábetweeεá singlσ anΣ doublσ sideΣ flopp∙ disk≤ oε computers whicΦ ì
  202. áááásuppor⌠ botΦ formats«á  BotΦ method≤ takσ advantagσ oµ thσ user-ì
  203. ááááconfigurablσ naturσ oµ NovaDO╙ t∩ gaiε direc⌠ acces≤ t∩ powerfu∞ ì
  204. ááááBIO╙ features not usually available to the DOS.
  205.  
  206. ** áAutomatiπ logoε oµ changeΣ disk≤ i≤ supported« ┴ changeΣ disδ i≤ ì
  207. ááááreloggeΣ int∩ thσ systeφ rathe≥ thaε declareΣ R/O¼ a≤ witΦ CP/M« ì
  208. ááááN∩ warφ boo⌠ i≤ required.
  209.  
  210. ** áPermanen⌠á mediß (harΣ anΣ RA═ disks⌐ arσ supporteΣ b∙ ßá permaì
  211. áááánen⌠á medißá vecto≥á anΣá ß fas⌠ disδá rese⌠á optioε.
  212.  
  213. ** áAεá interna∞ flag≤ bytσ i≤ availablσ througΦ ß cal∞á t∩á NovaDO╙ ì
  214. ááááFunctioε 41« Thesσ flag≤ contro∞ thσ 25╢ characte≥ delay¼ acces≤ ì
  215. áááát∩á publiπá files¼á higΦ bi⌠ characte≥ I/╧ anΣ thσ relogginτá oµ ì
  216. áááápermanen⌠ media.
  217.  
  218. ** áErro≥ message≤ havσ beeε greatl∙ improveΣ anΣ includσ thσá fileì
  219. ááááname≤á oµ file≤ involveΣ erro≥ conditions«á Optiona∞ overridσ oµ ì
  220. ááááfilσ R/╧ erro≥ provided.
  221. .paè** áThσ deletσ ke∙ work≤ likσ ß backspacσ unde≥ functioε 10«á Thσ ^╥ ì
  222. áááá(redra≈á buffe≥á line⌐á commanΣ ha≤ beeε eliminateΣá t∩á providσ ì
  223. ááááspace.
  224.  
  225. ** áFunction≤á ma∙á bσ assembleΣ int∩ NovaDO╙á t∩á suppor⌠á softwarσ ì
  226. áááádesigneΣ t∩ ruε unde≥ ZRDOS.
  227.  
  228. ** áSuppor⌠á fo≥á higΦ bi⌠ characte≥ I/╧ i≤ ma∙ bσá enableΣá iεá thσ ì
  229. ááááassembly«á Iµ included¼ thi≤ featurσ i≤ unde≥ thσ contro∞ oµ thσ ì
  230. ááááflag≤ byte.
  231.  
  232. ** áDisδ sizσ caε bσ a≤ largσ a≤ 6553╢ ¬ 16╦ ╜ ▒ ╟ byte.
  233.  
  234. ** áFile size can be as large as 32 * 64 * 16K = 32 M byte.
  235.  
  236. .heNovaDOS  Features                                            page #
  237. .paèDISCUSSION OF FEATURES:ì
  238. =======================
  239.  
  240. Public files:ì
  241. -------------
  242.  
  243. Publiπá file≤ arσ file≤ whicΦ appea≥ t∩ bσ independen⌠ oµ use≥á areß ì
  244. anΣá ma∙á bσ accesseΣ b∙ aε Opeε Filσ reques⌠ t∩ an∙ use≥ numbe≥á oε ì
  245. thσ disδ oε whicΦ the∙ reside«á NovaDO╙ support≤ tw∩ kind≤ oµ publiπ ì
  246. files.
  247.  
  248. Type 1: áFiles whose names begin with "$" ($-Pub)
  249.  
  250. Type 2: áFile≤á whosσá name≤ havσ thσ attributσ bi⌠á oµá thσá seconΣì
  251.     áááááfilenamσ characte≥ set.
  252.  
  253. Typσá ▒á $-PuΓ file≤ includσ thσ submi⌠ commanΣ filσá $$$.SU┬á whicΦ ì
  254. shoulΣá bσ publiπ unde≥ ZCPR3│ anΣ 34«á Thesσ ZCPR'≤ reaΣ thi≤á filσ ì
  255. froφ director∙ a0║á whilσ olde≥ CPR'≤ anΣ man∙ utilitie≤ whicΦ read¼ ì
  256. writσá o≥á erasσ thσ $$$.SU┬ filσ expec⌠ t∩ finΣ i⌠ iεá thσá curren⌠ ì
  257. use≥ areß oε thσ ┴ drivσ (A$:)«á Thσ $-PuΓ facilit∙ solve≤ thσ probì
  258. leφá createΣá b∙ thi≤ difference«á $-PuΓ file≤ arσ R/╫á anΣá caεá bσ ì
  259. eraseΣ froφ an∙ director∙ b∙ naminτ theφ unambiguousl∙ iε ß Functioε ì
  260. 1╣ call.
  261.  
  262. Typσá ▓á publiπ file≤ arσ defineΣ fo≥ NovaDO╙ b∙ settinτ thσá seconΣ ì
  263. filenamσá attributσá bit«á Publiπ file≤ wil∞ bσ openeΣ anΣá reaΣá b∙ ì
  264. NovaDO╙ jus⌠ a≤ iµ the∙ werσ iε thσ curren⌠ use≥ areß oε thσ defaul⌠ ì
  265. disδá o≥ oε an∙ disδ iε thσ NovaDO╙ searcΦ path«á Publiπá file≤á arσ ì
  266. normall∙á defineΣ a≤ reaΣ only¼á anΣ aε attemp⌠ t∩ writσ t∩ ß publiπ ì
  267. filσ wil∞ producσ ß standarΣ NovaDO╙ erro≥ message.
  268.  
  269. Resettinτ bi⌠ ▓ oµ thσ interna∞ flag≤ (seσ thσ discussioε oµ NovaDO╙ ì
  270. functioεá 38⌐á wil∞ turε ofµ thσ publiπ file≤á facility«á Thσá writσ ì
  271. protec⌠á statu≤ oµ publiπ file≤ i≤ determineΣ b∙ bi⌠ ┤ oµ thσá flag≤ ì
  272. bytes«á Settinτ thi≤ bi⌠ set≤ al∞ publiπ file≤ t∩ R/╧ anΣá resettinτ ì
  273. i⌠á declare≤á theφ R/╫ unles≤ the∙ arσ additionall∙ taggeΣ witΦá thσ ì
  274. ReaΣ Onl∙ attribute.
  275.  
  276. Thσá utilit∙ PUBLIC.CO═ i≤ provideΣ t∩ managσ thi≤ bi⌠á oεá selecteΣ ì
  277. file≤á whilσ PFILE.CO═ i≤ provideΣ t∩ set/rese⌠ bit≤ ▓ anΣ ┤ oµá thσ ì
  278. flag≤ bytσ withiε NovaDOS.
  279.  
  280.  
  281. Search path:ì
  282. ------------
  283.  
  284. NovaDO╙ provide≤ aε optiona∞ searcΦ patΦ t∩ acces≤ file≤ no⌠ locateΣ ì
  285. iεá thσ defaul⌠ directory«á Thσ searcΦ patΦ informatioε consist≤á oµ ì
  286. bytσ pair≤ specifyinτ disδ anΣ use≥ areß fo≥ eacΦ dospatΦ element« ┴ ì
  287. pointe≥á t∩ thσ searcΦ patΦ i≤ containeΣ a⌠ do≤ ½ 15h«á Settinτ thi≤ ì
  288. pointe≥á t∩ ░ wil∞ disablσ thσ searcΦ patΦ altogether«á Thσá curren⌠ ì
  289. director∙ i≤ no⌠ includeΣ iε thσ searcΦ patΦ unles≤ specifieΣ iε thσ ì
  290. patΦ definition.
  291. .paèNovaDO╙ wil∞ searcΦ fo≥ botΦ systeφ anΣ publiπ file≤ iε thσá curren⌠ ì
  292. searcΦá path«áá Al∞á othe≥á file≤á wil∞á bσá ignored«áá Thσá utilit∙ ì
  293. DOSPATH.CO═ i≤ provideΣ t∩ definσ anΣ quer∙ thσ NovaDO╙ searcΦ path« ì
  294. I⌠ i≤ selµ documentinτ anΣ work≤ iε ß manne≥ quitσ simila≥ t∩ thσ Z│ ì
  295. utilit∙á dospath.COM«á Notσ tha⌠ invokinτ DOSPAT╚ witΦ n∩á argument≤ ì
  296. wil∞á cance∞ thσ NovaDO╙ searcΦ path¼á whilσ n∩ simila≥ functioεá i≤ ì
  297. availablσ fo≥ thσ Z│ dospatΦ utility.
  298.  
  299. Thσá searcΦ patΦ consist≤ oµ ß serie≤ oµ bytσ pairs«á Thσ firs⌠ bytσ ì
  300. oµá eacΦ patΦ elemen⌠ pai≥ i≤ aε ASCI╔ disδ lette≥ whilσ thσá seconΣ ì
  301. bytσ oµ eacΦ dospatΦ elemen⌠ i≤ thσ use≥ areß iε binar∙ form« Use≥ ▒ ì
  302. i≤ storeΣ a≤ 01h¼á use≥ ▓ a≤ 02Φ anΣ etc«á Thσ dospatΦ i≤ terminateΣ ì
  303. b∙ ß binar∙ 0« I⌠ i≤ thσ responsibilit∙ oµ thσ colΣ boo⌠ t∩ initialì
  304. izσá thσá DO╙ dospatΦ areß eithe≥ witΦ ß valiΣ DO╙ dospatΦá o≥á witΦ ì
  305. zeros.
  306.  
  307. Thσá dospatΦá addres≤ i≤ harΣ codeΣ int∩ NovaDO╙ a⌠á assembl∙á time« ì
  308. Functioε 42¼á iµ enableΣ iε assembly¼ ma∙ bσ useΣ t∩ quer∙ anΣ rese⌠ ì
  309. thσá dospatΦ addres≤ a⌠ ruε time«á Seσ thσ discussioεá oµá function≤ ì
  310. below.
  311.  
  312. Thσá NovaDO╙ searcΦ patΦ i≤ iε n∩ wa∙ exclusivσ of¼á o≥ iεá conflic⌠ ì
  313. witΦá thσ ZCPR│ path«á I⌠ i≤ especiall∙ usefu∞ fo≥ non-ZCP╥ program≤ ì
  314. sucΦá a≤ dBasσ anΣ WordSta≥ whicΦ requirσ acces≤ t∩á overla∙á files« ì
  315. SucΦá overlay≤ ma∙ bσ kep⌠ a≤ systeφ file≤ iε ß director∙á specifieΣ ì
  316. iεá thσá NovaDO╙ patΦ anΣ accesseΣ b∙ sucΦ program≤ froφ an∙á direcì
  317. tory.
  318.  
  319. Thσá NovaDO╙ patΦ wil∞ takσ precedencσ ove≥ thσ ZCPR│ path¼á anΣá i⌠ ì
  320. mus⌠á bσá remembereΣá tha⌠ EAC╚ elemen⌠ oµ thσ Z│á patΦá wil∞á causσ ì
  321. NovaDO╙ t∩ d∩ ß dospatΦ search«á Thi≤ caε increasσ filσ acces≤á timσ ì
  322. considerably« Iµ yo⌡ havσ thσ Z│ dospatΦ enabled¼ yo⌡ shoulΣ usσ thσ ì
  323. NovaDO╙ patΦ sparingly.
  324.  
  325.  
  326. Archived Files:ì
  327. ---------------
  328.  
  329. ┴á filσá i≤á defineΣ a≤ archiveΣ iµ thσ attributσ bi⌠á oµá thσá las⌠ ì
  330. characte≥á iε thσ filenamσ extensioε i≤ se⌠ iε it≤ director∙á entry« ì
  331. Thi≤ bi⌠ i≤ customaril∙ se⌠ b∙ utilitie≤ whicΦ cop∙ file≤ fo≥ backu≡ ì
  332. purpose≤ o≥ b∙ othe≥ program≤ capablσ oµ settinτ attribute≤ directl∙ ì
  333. sucΦ a≤ thσ Z│ utilit∙ PROT.COM«á I⌠ i≤ useΣ t∩ indicatσ tha⌠ ß cop∙ ì
  334. oµ thσ filσ iε it≤ presen⌠ forφ exist≤ somewherσ else¼á usuall∙ oε ß ì
  335. backu≡á disk«á NovaDO╙ wil∞ rese⌠ thi≤ bi⌠ iε thσ director∙á entrie≤ ì
  336. fo≥á al∞ extent≤ oµ ß filσ anytimσ thσ filσ i≤á copied¼á renameΣá o≥ ì
  337. otherwisσá changeΣ iε ß manne≥ whicΦ woulΣ affec⌠ thσ accurac∙ oµá ß ì
  338. backu≡ copy« Thi≤ applie≤ als∩ t∩ copie≤ madσ b∙ program≤ whicΦ cop∙ ì
  339. filename≤á directl∙ froφ onσ FC┬ t∩ anothe≥ (sucΦ a≤ WordSta≥ o≥ an∙ ì
  340. othe≥á prograφ whicΦ create≤ ß *.BA╦ file⌐ sincσ thσ archivσ bi⌠á i≤ ì
  341. rese⌠ iε thσ origina∞ FC┬ a≤ sooε a≤ an∙ changσ t∩ thσ filσ i≤ made.
  342.  
  343. .paèConsole Checking:ì
  344. -----------------
  345.  
  346. Iµá bi⌠ ▒ oµ thσ flag≤ bytσ i≤ set¼á theε thσ consolσ statu≤ wil∞ bσ ì
  347. periodicall∙ checkeΣ durinτ Functioε ▓ o≥ Functioε ╣ consolσá outpu⌠ ì
  348. anΣ an∙ pendinτ ^╙ wil∞ bσ identifieΣ fo≥ thσ purposσ oµ pausinτ thσ ì
  349. output«á Seσá thσ discussioε unde≥ Functioε 4▒ oε settinτ anΣ resetì
  350. tinτ thσ flag≤ byte.
  351.  
  352. Unde≥ Digita∞ ResearcΦ BDOS¼á thσ keyboarΣ wil∞ locδ u≡ iµ ß characì
  353. te≥ othe≥ thaε ß ^╙ o≥ ^├ i≤ typeΣ durinτ continuou≤ screeεá output« ì
  354. Oε occasion≤ wheε i⌠ i≤ necessar∙ t∩ exi⌠ ß prograφ witΦ ^╙ ^C¼ sucΦ ì
  355. a≤á wheεá aε infinitσ loo≡ conditioε exists¼á aεá imprope≥á keyboarΣ ì
  356. entr∙ wil∞ preven⌠ ß ^╙ froφ eve≥ beinτ recognized.
  357.  
  358. Iµá thσá Consolσ Clearinτ featurσ oµ NovaDO╙ i≤á enabled¼á theεá thσ ì
  359. consolσ inpu⌠ devicσ i≤ automaticall∙ checkeΣ fo≥ ^╙ afte≥ ever∙ 25╢ ì
  360. character≤á oµ consolσ output«á Durinτ intensivσ consolσá I/O¼á thi≤ ì
  361. wil∞á resul⌠ iε ß somewha⌠ morσ erratiπ keyboarΣ operatioε thaεá onσ ì
  362. woulΣá expec⌠á froφ standarΣ BDOS¼á howeve≥ thσ differencσá i≤á onl∙ ì
  363. noticeablσ iε games¼á fligh⌠ simulators¼ animateΣ debugger≤ o≥ othe≥ ì
  364. program≤á requirinτá precisσá timinτ oµ keyboarΣ input«á ┴á cal∞á t∩ ì
  365. Functioε 4▒ caε bσ madσ t∩ disablσ thi≤ feature.
  366.  
  367. Sincσ thi≤ somewha⌠ comple° featurσ i≤ implementeΣ internall∙ withiε ì
  368. thσá DO╙ consolσ statu≤ check¼á i⌠ ma∙ oε occasioε bσá desirablσá t∩ ì
  369. bypas≤á thi≤ routinσ anΣ obtaiε thσ consolσ statu≤ directl∙ froφ thσ ì
  370. BIOS«á NovaDO╙ provide≤ thσ abilit∙ t∩ d∩ thi≤ usinτ DO╙ functioε 6¼ ì
  371. Direc⌠ consolσ i/o« Settinτ registe≥ σ t∩ 0feΦ wheε callinτ functioε ì
  372. ╢ wil∞ returε thσ consolσ statu≤ directl∙ froφ thσ BIOS.
  373.  
  374.  
  375. Time and Date Stamping:ì
  376. -----------------------
  377.  
  378. Timσ anΣ Datσ stampinτ arσ supported¼ assuminτ tha⌠ ß calendar/clocδ ì
  379. devicσ i≤ availablσ viß BIO╙ call«á Thσ addres≤ oµ thi≤ routinσ mus⌠ ì
  380. bσ specifieΣ a≤ aε offse⌠ int∩ thσ BIO╙ b∙ thσ TIMEOF╞ equatσ iε thσ ì
  381. heade≥ librar∙ Ndoshdr.LIB«á Thσ director∙ mus⌠ havσ beeε previousl∙ ì
  382. initializeΣá fo≥ standarΣ date/timσ stampinτ oµ file≤ iε whicΦá casσ ì
  383. thσá timσá anΣá datσ arσ initializeΣ wheε ß filσá i≤á createΣá unde≥ ì
  384. NovaDO╙á anΣ updateΣ eacΦ timσ ß filσ i≤ closed«á Thσ addres≤ oµ thσ ì
  385. BIO╙ date/timσ routinσ i≤ storeΣ a⌠ NovaDO╙ ½ 17h.
  386. .paèTw∩ functioε call≤ arσ provideΣ t∩ acces≤ thσ date/timσ information¼ ì
  387. assuminτá date/timσ stampinτ oµ file≤ i≤ enableΣ a⌠á assembl∙á time« ì
  388. Functioεá 20░á accept≤ aε addres≤ iε D┼ a⌠ whicΦ t∩ writσá date/timσ ì
  389. informatioε iε thσ followinτ format:
  390.  
  391.  Date: ááádefs ááá2áááDate = 1 áááá(Sunday, 01 Jan 1978)
  392.                       to
  393.                       Date = 65535 (Sunday, 05 Jun 2157)
  394.  
  395.  Hour: ááádefs ááá1 ááHour in BCD
  396.  Minute: ádefs ááá1 ááMinute in BCD
  397.  Second: ádefs ááá1 ááSecond in BCD
  398.  
  399. Afte≥á returninτ t∩ thσ caller¼á thσ curren⌠ datσ anΣ timσá wil∞á bσ ì
  400. storeΣ a⌠ thσ requesteΣ address.
  401.  
  402. Functioεá 20▒ wil∞ se⌠ thσ calendar/clocδ froφ ß simila≥ datß strucì
  403. turσ addresseΣ oε entr∙ b∙ registe≥ pai≥ DE.
  404.  
  405. Thσ BIO╙ routinσ accesseΣ fo≥ date/timσ informatioε mus⌠ observσ thσ ì
  406. followinτ protocol:
  407.  
  408. Entry parameters:
  409.  
  410. if getting time
  411.  áááC á= 000h To get timeì
  412. if setting time
  413.  áááC á= 0ffh To set time
  414.  áááHL = pointer to time table in above format
  415.  
  416. Exit parameters:
  417.  
  418. if getting time
  419.  áááHL = pointer to time table in above formatì
  420. if setting time
  421.  ááánoneì
  422.  
  423. .paèHigh Bit Characters:ì
  424. --------------------
  425.  
  426. HigΦ bi⌠ character≤ arσ standarΣ ASCI╔ character≤ witΦ thσ higΦá bi⌠ ì
  427. (7⌐á set«á The∙á arσ ofteε referreΣ t∩ a≤ graphic≤ character≤á sincσ ì
  428. the∙á arσ sometime≤ useΣ t∩ producσ graphic≤ oε printer≤á anΣá CRT'≤ ì
  429. whicΦá otherwisσ displa∙ thσ standarΣ ASCI╔ characte≥ set«á StandarΣ ì
  430. BDO╙á allow≤á higΦ bi⌠ character≤ t∩ bσ reaΣ froφ thσá inpu⌠á devicσ ì
  431. witΦ thσ function≤ Consolσ Inpu⌠ anΣ Direc⌠ Consolσ I/╧ (#≤ ▒ anΣ 6⌐ ì
  432. bu⌠ no⌠ witΦ Functioε 10¼á ReaΣ Consolσ Buffer«á Oε output¼ higΦ bi⌠ ì
  433. character≤á iεá thσ datß streaφ arσ normall∙ sen⌠ b∙á al∞á function≤ ì
  434. whicΦ senΣ character≤ t∩ thσ outpu⌠ device.
  435.  
  436. Iµ higΦ bi⌠ characte≥ contro∞ i≤ programmeΣ int∩ NovaDOS¼á theεá thσ ì
  437. strippinτá oµ higΦ bit≤ froφ thσ datß streaφ i≤ altereΣ a≤ showεá iε ì
  438. thσ followinτ tables.
  439.  
  440.  
  441. yes = High bit strippedì
  442. no á= High bit not stripped
  443.  
  444.                      Input ááá(Bit 2) áááááááOutput or echo (Bit 3)ì
  445. Function áá     áááááNorm áááSet áááReset áááNorm áááSet áááResetì
  446. -------- áááááá     á---------------------------------------------
  447.  
  448. Read Console Byte áááyes áá  yes áááyes ááá  yes ááá yes ááánoì
  449. Write Console Byte áá--- ááá --- ááá--- ááá  yes ááá yes ááánoì
  450. Direct Console I/O ááyes ááá yes áááyes ááá  yes ááá yes áááyesì
  451. Display "$" String áá--- ááá --- ááá--- ááá  yes ááá yes ááánoì
  452. Read Console String áno ááá  yes áááno á áá  yes ááá yes áááno
  453.  
  454. Man∙á computer≤ canno⌠ ente≥ higΦ bi⌠ character≤ froφ thσá keyboard« ì
  455. Oεá sucΦá machines¼á thσ higΦ bi⌠ facilit∙ i≤ no⌠ needeΣ anΣ caεá bσ ì
  456. eliminateΣ froφ thσ assembly.
  457.  
  458.  
  459.  
  460. Permanent Media Reloggingì
  461. -------------------------
  462.  
  463. Unde≥ CP/M¼ ß functioε 1│ disδ rese⌠ wil∞ trea⌠ thσ entirσ systeφ a≤ ì
  464. "newó anΣ loτ iε thσ ┴ drive¼á readinτ thσ disk'≤ director∙ t∩ builΣ ì
  465. aεá allocatioεá vector«á Thi≤ take≤ time¼á anΣ iµ thσ ┴ drivσá i≤á ß ì
  466. permanentl∙á installeΣ disδ sucΦ a≤ ß harΣ disδ o≥ ß raφ disδá therσ ì
  467. i≤ n∩ neeΣ t∩ rebuilΣ thσ allocatioε vecto≥ eacΦ timσ ß functioεá 1│ ì
  468. i≤á called«á Flag≤ bi⌠ ╡ control≤ thσ re-initializinτ oµ thσá systeφ ì
  469. (A⌐ drive«á Iµ thσ flaτ bi⌠ i≤ reset¼ n∩ initializatioε wil∞ bσ perì
  470. formed¼á whicΦá caεá dramaticall∙ reducσ thσ timσ requireΣ fo≥á warφ ì
  471. boots.
  472.  
  473. Therσ i≤ ß tradeofµ fo≥ thi≤ feature« Iε thσ proces≤ oµ buildinτ thσ ì
  474. allocatioε vecto≥ thσ DO╙ normall∙ check≤ fo≥ thσ presencσ oµá file≤ ì
  475. whosσá name≤ begiε witΦ "$ó ("$$ó fo≥ NovaDOS⌐ anΣ return≤ A=0ffΦ iµ ì
  476. sucΦá ß filσ i≤ found«á Thσ CC╨ ma∙ usσ thi≤ flaτ t∩á determinσá thσ ì
  477. presencσá oµá ß $$$.SU┬ filσ fo≥ processinτ b∙ thσ submi⌠á facility¼ ìèanΣá neeΣ no⌠ perforφ anothe≥ searcΦ oµ thσ disδ director∙á t∩á disì
  478. closσá thσá presencσá o≥ absencσ oµ thi≤ file«á Iµ flag≤ bytσá ╡á i≤ ì
  479. reset¼á Functioε 1│ wil∞ alway≤ returε A=░ anΣ iµ thσ CC╨ i≤á expecì
  480. tinτ thi≤ "submi⌠ clueó i⌠ wil∞ no⌠ engagσ thσ submi⌠ process« Sincσ ì
  481. thσá submi⌠á proces≤ ha≤ largel∙ beeε replaceΣ b∙ ZE╪ oε ZCPR│á sysì
  482. tems¼ thi≤ i≤ almos⌠ ß non-problem¼ howeve≥ dBasσ I╔ stil∞ relie≤ oε ì
  483. thσá submi⌠ featurσ iε chaininτ t∩ othe≥ programs«á Iµ yo⌡á usσá thσ ì
  484. "qui⌠ toó featurσ oµ dBase¼ yo⌡ wil∞ wan⌠ t∩ se⌠ flag≤ bi⌠ ╡ fo≥ thσ ì
  485. duratioεá oµ thσ process«á Functioε 4▒ make≤ i⌠ eas∙ t∩ changσá thi≤ ì
  486. featurσá "oε thσ fly"«á Thσ utilit∙ FBOO╘ i≤ provideΣ t∩á manipulatσ ì
  487. thi≤ bit.
  488.  
  489.  
  490. Changed Disks:
  491. --------------
  492.  
  493. NovaDO╙á i≤á quitσ intelligen⌠ regardinτ changeΣá flopp∙á disks«á  ┴ ì
  494. checksuφ tablσ i≤ maintaineΣ fo≥ eacΦ disδ director∙ anΣ i≤á checkeΣ ì
  495. frequentl∙á witΦá variou≤á disδ operations«á  Iµ ß changeΣá disδá i≤ ì
  496. sensed¼á NovaDO╙ wil∞ attemp⌠ t∩ recove≥ b∙ relogginτ thσ drivσá anΣ ì
  497. attemptinτ t∩ proceeΣ witΦ whateve≥ operatioε i≤ iε progress«  CP/M¼ ì
  498. b∙ contrast¼á simpl∙ declare≤ thσ offendeΣ drivσ t∩ bσ reaΣ onl∙ anΣ ì
  499. wil∞ no⌠ writσ t∩ i⌠ unti∞ ß Functioε ░ o≥ Functioε 1│ disδ rese⌠ i≤ ì
  500. performed«á  NovaDOS¼á a≤ wel∞ a≤ applications¼ CA╬ bσ confused¼ fo≥ ì
  501. instance¼ b∙ swappinτ disk≤ whilσ file≤ arσ open¼ s∩ reasonablσ carσ ì
  502. shoulΣ bσ exerciseΣ iε thi≤ regard« 
  503.  
  504. A≤á ß companioε feature¼á NovaDOS¼á unlikσ CP/M¼á doesn'⌠ rese⌠á thσ ì
  505. drivσ read/onl∙ bitma≡ witΦ ß Functioε 1│ call«  Oε system≤ whicΦ d∩ ì
  506. no⌠ reloaΣ thσ DO╙ witΦ eacΦ warφ boot¼á thσ onl∙ wa∙ t∩ rese⌠ ß R/╧ ì
  507. drivσ t∩ read/writσ i≤ viß ß Functioε 3╖ call«
  508.  
  509.  
  510. Use of Z80 Registers:
  511. ---------------------
  512.  
  513. Unlikσ somσ othe≥ CP/═ DOS's¼á NovaDO╙ i≤ fairl∙ conscientiou≤ abou⌠ ì
  514. preservinτ thσ Z8░ Registers«á Oε returε froφ al∞ call≤ thσ C¼ D┼ I╪ ì
  515. anΣá I┘ register≤ arσ preserved«á Register≤ ┴ anΣ H╠ wil∞ bσ se⌠á t∩ ì
  516. zer∩á iµ thσ calleΣ functioε doe≤ no⌠ returε value≤ iε thesσá regisì
  517. ters« I⌠ shoulΣ bσ noted¼ however¼ tha⌠ softwarσ whicΦ i≤ writteε t∩ ì
  518. takσá advantagσá oµ thi≤ featurσ ma∙ no⌠ ruεá properl∙á unde≥á othe≥ ì
  519. DOS's.
  520.  
  521. I⌠ wa≤ anΣ i≤ generall∙ accepteΣ practicσ amonτ Z8░ compute≥ system≤ ì
  522. designer≤ t∩ makσ operatinτ systeφ softwarσ preservσ thσ specia∞ Z8░ ì
  523. register≤ IX¼ I┘ anΣ thσ alternatσ registe≥ se⌠ acros≤ systeφ calls« ì
  524. Unfortunately¼á thi≤ ha≤ no⌠ alway≤ beeε donσ anΣ somσ BIOS'≤á alte≥ ì
  525. thσ content≤ oµ onσ o≥ morσ oµ thesσ registers«   Knowε offender≤ iε ì
  526. thi≤ areß arσ somσ Osbornes¼ Zorba¼ Epsoε QX10¼ Televide∩ TS803/T-1¼ ì
  527. anΣá probabl∙ others«á  NovaDO╙ use≤ thσ I╪ registe≥ anΣ expect≤ thσ ì
  528. content≤á thereoµ t∩ bσ retaineΣ acros≤ BIO╙á calls«á  BIOS'≤á whicΦ ì
  529. alte≥ thi≤ registe≥ wil∞ causσ NovaDO╙ t∩ crash.
  530.  
  531. .paèDisk Initializationì
  532. -------------------
  533.  
  534. Somσ systems¼á likσ thσ Kaypr∩ ┤ anΣ 10¼á arσ capablσ oµ readinτ anΣ ì
  535. writinτ botΦ singlσ anΣ doublσ sideΣ flopp∙ disks«  Oε sucΦ systems¼ ì
  536. thσá flopp∙á i≤ usuall∙ un-initializeΣ onl∙ oε ßá warφá boot¼á whicΦ ì
  537. mean≤á tha⌠á application≤ sucΦ a≤ cataloginτ program≤á whicΦá handlσ ì
  538. man∙á flopp∙á disk≤ iε thσ coursσ oµ ß ruε arσ unablσ t∩á reaΣá botΦ ì
  539. format≤á iεá thσá samσ run«á  Furthe≥ problem≤ arσá introduceΣá witΦ ì
  540. system≤á sucΦ a≤ NZ-CO═ whicΦ d∩ no⌠ allo≈ thσ generatioε oµ ßá truσ ì
  541. warφá boot«á  Oεá sucΦ system≤ iε i≤ ofteε quitσá difficul⌠á t∩á un-ì
  542. initializσ ß flopp∙ drivσ eveε witΦ ß Functioε ░ call«  Thi≤ i≤ truσ ì
  543. eveεá fo≥ sucΦ advanceΣ DOS'≤ a≤ ZRDOS¼á al∞ oµ whicΦ arσ limiteΣ t∩ ì
  544. makinτ standarΣ BIO╙ call≤ viß thσ BIO╙ jum≡ table«  Becausσ NovaDO╙ ì
  545. i≤á use≥ configurable¼á i⌠ caε acces≤ thσ BIO╙ iε non-standarΣá way≤ ì
  546. whicΦá allo≈ i⌠ t∩ turε ofµ thσ curren⌠ flopp∙ forma⌠ selectioεá anΣ ì
  547. forcσá thσ redeterminatioε oµ thσ forma⌠ witΦ thσ nex⌠á disδá login« ì
  548.  
  549. Therσá arσá tw∩ way≤ oµ achievinτ this¼á botΦ oµ whicΦ involvσá somσ ì
  550. knowledgσá oµá thσá working≤á oµ thσá systeφá BIOS«á  EacΦá ha≤á it≤ ì
  551. advantages¼áá althougΦá thσá seconΣá methoΣá i≤á morσá precisσáá anΣ ì
  552. preferable if it can be used.
  553.  
  554. 1.  Thσá warφ boo⌠ routinσ iε BIO╙ usuall∙ contain≤ ß cal∞ t∩ ß disδ ì
  555. ááááinitializatioεá subroutinσ whicΦ reset≤ al∞ thσá interna∞á flag≤ ì
  556. ááááanΣá parameter≤á fo≥ thσ disδ system«á  Iµ thσ addres≤á oµá thi≤ ì
  557. áááároutinσá caεá bσ determineΣ theε i⌠ caε bσ calleΣá eacΦá timσá ß ì
  558. ááááfunctioεá 1│ (rese⌠ disδ system⌐ cal∞ i≤ made«á  Thi≤ methoΣ ha≤ ì
  559. ááááthσ disadvantagσ tha⌠ i⌠ reset≤ thσ entirσ disδ system¼á anΣ caε ì
  560. ááááthu≤á onl∙á bσ useΣ witΦ ß functioε 1│ cal∞ anΣ theεá onl∙á wheε ì
  561. ááááful∞ relogginτ oµ permanen⌠ mediß drive≤ i≤ enableΣ (seσ NovaDO╙ ì
  562. ááááflags)«á  Thσá advantagσ i≤ tha⌠ thσ disδ initializatioε cal∞ i≤ ì
  563. áááágenerall∙ eas∙ t∩ finΣ (jus⌠ abou⌠ ever∙ systeφ ha≤ one⌐ anΣá iµ ì
  564. ááááthσ sourcσ fo≥ thσ systeφ BIO╙ i≤ available¼ ß jum≡ t∩ thi≤ cal∞ ì
  565. áááácaεá bσ placeΣ iε thσ basσ pagσ alonτ witΦ thσ warφ boo⌠á IOBYT┼ ì
  566. ááááand DOS jump at system startup.
  567.  
  568. 2.áá┴á singlσ bytσ iε thσ BIO╙ RO═ scratcΦ memor∙ areß usuall∙á conì
  569. áááátrol≤á thσ determinatioε oµ flopp∙ format«á  Thσ bytσ i≤ ßá flaτ ì
  570. ááááwhicΦá tell≤á thσá operatinτ systeφ whethe≥ o≥á no⌠á thσá flopp∙ ì
  571. ááááforma⌠ i≤ known«  Oε system≤ witΦ tw∩ o≥ morσ floppie≤ therσ ma∙ ì
  572. áááábσá morσ thaε onσ sucΦ flaτ byte«á  Resettinτ thi≤ bytσ o≥ byte≤ ì
  573. áááái≤ ß ver∙ precisσ wa∙ oµ resettinτ thσ flopp∙ forma⌠ withou⌠ un-ì
  574. ááááinitializinτá permanen⌠á medißá a≤á well«áá  Thσá rese⌠á caεá bσ ì
  575. ááááperformeΣ wheε ß disδ i≤ loggeΣ iε rathe≥ thaε wheε i⌠ i≤ loggeΣ ì
  576. ááááout¼á anΣá thσ systeφ become≤ morσ transparen⌠ t∩ flopp∙á forma⌠ ì
  577. ááááchanges.
  578.  
  579. Instruction≤á anΣ suggestion≤ arσ provideΣ iε NDOSHDR.LI┬ fo≥ analyì
  580. zinτ you≥ BIOS in order to implement either of these methods.
  581.  
  582.  
  583. .paèNovaDOS Flags:ì
  584. --------------
  585.  
  586. Onσá oµ thσ morσ powerfu∞ feature≤ oµ NovaDO╙ i≤ thσ flag≤ byte«á  ┴ ì
  587. numbe≥ oµ ruε timσ features¼ a≤ discusseΣ below¼ arσ affecteΣ b∙ thσ ì
  588. flag≤ byte«á  Unlikσ feature≤ includeΣ o≥ excludeΣ b∙ assembl∙á conì
  589. figuratioεá options¼á thσá feature≤á affecteΣ b∙ thσá flag≤á ma∙á bσ ì
  590. controlleΣá b∙á settinτ anΣ resettinτ individua∞ bit≤ iεá thσá flag≤ ì
  591. byte«á  ┴á specia∞ DO╙ function¼á Functioε 41¼á i≤ availablσ t∩ botΦ ì
  592. reaΣá anΣ writσ t∩ individua∞ bit≤ oµ thi≤ byte«á
  593.  
  594. Thσá flag≤á bytσá i≤ mos⌠ usefu∞ oε system≤ sucΦá a≤á NZ-CO═á which¼ ì
  595. unlikσ CP/M¼á don'⌠ reloaΣ thσ DO╙ witΦ eacΦ warφ boo⌠ call«á  Thus¼ ì
  596. thσ flag≤ retain their settings until the system is cold booted.
  597.  
  598.  
  599. The NovaDOS flags byte is interpreted as follows:
  600.  
  601.  
  602.          SET áááááá áááááááááááááááááááááRESET
  603.  
  604. Bit 0: ááBoth type 1 and type 2 áááááááááThe ápublic áfiles
  605.          public files are recognized. áááfacility is disabled.
  606.  
  607.  
  608.  
  609. Bit 1: ááThe ability to poll the ááááááááNo checks for ^S are per-
  610.          console input for ^S during ááááformed during extended
  611.          output is enabled. áááááááááááááconsole output.
  612.  
  613.  
  614. Bit 2: ááAllow high bit characters to áááHigh bits will be stripped
  615.          be áentered áinto áthe con- ááááoff of all characters en-
  616.          sole buffer if the high bit ááááentered into the console
  617.          facility is enabled. ááááááááááábuffer.
  618.  
  619. BIT 3: ááHigh ábits áwill be passed áááááHigh bits will be stripped
  620.          by all NovaDOS functions áááááááfrom all output characters
  621.          which send characters to the áááexcept those output by
  622.          CRT. áááááááááááááááááááááááááááFunction 6.
  623.  
  624. BIT 4: ááFiles with the public file áááááFiles with the public file
  625.          attribute (second filename áááááattribute set are read/
  626.          character high bit) are read    write.
  627.          only.
  628.  
  629. BIT 5: ááThe A drive will be searched áááIf the A drive is a fixed
  630.          and the allocation vector áááááádisk, the allocation vectorá
  631.          rebuilt each time Function 13 ááwill not be rebuilt on 
  632.          i≤ called«                      Function 13 call, savinτ
  633.                                          much time on warm boots.
  634.  
  635.  
  636. .heNovaDOS  Error Handling                                      page #
  637. .paèNOVADOS ERROR HANDLING:
  638. =======================
  639.  
  640. NovaDO╙ provide≤ substantiall∙ morσ informatioε iε it≤ erro≥ report≤ ì
  641. thaε doe≤ ZRDO╙ o≥ standarΣ CP/═ DOS« Thσ DO╙ functioε whicΦ encounì
  642. tereΣ thσ error¼á thσ disδ anΣ thσ namσ oµ an∙ filσ involveΣ iεá thσ ì
  643. erro≥á arσá displayed«á Enterinτá ES├á (o≥á thσá ke∙á designateΣá iε ì
  644. NDOSHDR.LIB⌐á afte≥á aε filσ o≥ disδ reaΣ onl∙ erro≥á override≤á thσ ì
  645. erro≥á anΣ treat≤ thσ filσ o≥ disδ a≤ R/W«á An∙ othe≥ ke∙ produce≤ ß ì
  646. jum≡ ░ warφ boo⌠ unles≤ thσ warφ boo⌠ tra≡ i≤ set«á Iµ thσ warφ boo⌠ ì
  647. tra≡ i≤ set¼ erro≥ message≤ anΣ erro≥ escapσ arσ disabled.
  648.  
  649.  
  650. Error Code Returns:ì
  651. -------------------
  652.  
  653. T∩á maintaiε compatibilit∙ witΦ ZRDO╙ inasmucΦ a≤ possible¼á NovaDO╙ ì
  654. wil∞ returε erro≥ code≤ oε ß DO╙ generateΣ warφ boo⌠ eithe≥ witΦá o≥ ì
  655. withou⌠á warφá boo⌠á trapping«á Iµ thσ warφ boo⌠ tra≡á i≤á set¼á thσ ì
  656. callinτ prograφ caε makσ usσ a≤ i⌠ wil∞ oµ thσ erro≥ codes.
  657.  
  658. Errorì
  659. Number ááááNovaDOS áááá       ááááZRDOS ááá      ááááááááCP/M
  660.  
  661. 1 áááááá  áDisk Read Error áááááááDisk Read Error áááááááBad Sectorì
  662. 2 ááááááá  Drive Select Error áá áDrive Select Error  áááSelectì
  663. 3 ááááááá  Disk R/O Error á ááááááDisk R/O error á ááááááR/Oì
  664. 4 ááááááá  File R/O Error á ááááááFile R/O error áááá áááFile R/Oì
  665. 5 áááá  áááDisk Write error á   ááDisk Changed Error ááá -ì
  666. 6   ááááááá- ááá          ááááááááFile Wheel Protected áá-
  667.  
  668.  
  669. .heNovaDOS  Installation                                        page #
  670. .paèCONFIGURING AND INSTALLING NOVADOS:
  671. ===================================
  672.  
  673. AlthougΦá yo⌡ ma∙ ruε thσ pre-assembleΣ version≤ oµ NovaDO╙ provideΣ ì
  674. witΦ thi≤ packagσ anΣ enjo∙ man∙ oµ it'≤ advanceΣ features¼ ful∞ usσ ì
  675. oµá NovaDO╙ feature≤ require≤ re-assembl∙ oµ thσ sourcσá code«á  Al∞ ì
  676. "finσ tuningó fo≥ advanceΣ feature≤ i≤ donσ iε thσ filσá NDOSHDR.LI┬ ì
  677. whicΦ contain≤ extensivσ discussioε anΣ instruction≤ fo≥ settinτ thσ ì
  678. assembl∙ value≤ anΣ equate≤ provideΣ therein«  NDOSHDR.LI┬ i≤ essenì
  679. tiall∙ ß separatσ configuratioε manua∞ fo≥ NovaDOS¼á anΣ s∩á detail≤ ì
  680. oµá thσ configuratioε proces≤ arσ no⌠ provideΣ here«á  NovaDO╙á wil∞ ì
  681. assemblσá witΦá eithe≥á thσ finσ SL╥ assemble≥ Z80AS═ (o≥á it'≤á biτ ì
  682. brothe≥á Z80ASM+⌐ o≥ witΦ Microsoft'≤ M8░ whicΦ i≤ slowe≥á bu⌠á morσ ì
  683. readil∙á available«á  Thσá assembl∙ proces≤ i≤ covereΣ iεá thσá lastì
  684. section« 
  685.  
  686. ReaΣá througΦá NDOSHDR.LI┬ anΣ theε g∩ bacδ througΦ i⌠ anΣá se⌠á thσ ì
  687. option≤ whicΦ sui⌠ you≥ need≤ anΣ you≥ system«á  Yo⌡ ma∙ assemblσ t∩ ì
  688. eithe≥á ß RE╠ filσ fo≥ loadinτ witΦ NZ-CO═ o≥ JetLD╥ o≥ t∩ ßá binar∙ ì
  689. imagσ witΦ phaseΣ codσ addresse≤ fo≥ usσ witΦ PUTSYS«á  Aε optioε i≤ ì
  690. als∩á provideΣ t∩ assemblσ anΣ linδ t∩ ß PR╠ filσ fo≥ usσ witΦá codσ ì
  691. o≥ utilitie≤ whicΦ caε handlσ thσ opportunitie≤ provideΣ b∙ ßá reloì
  692. catioε bitmap«  Thσ filσ MAKENVDS.CO═ use≤ sucΦ ß filσ t∩ generatσ ß ì
  693. cop∙ oµ NovaDO╙ tailoreΣ t∩ you≥ system«
  694.  
  695. .heNovaDOS  Functions                                           page #
  696. .paèNOVADOS FUNCTIONS:ì
  697. ==================
  698.  
  699. Thσá followinτá discussioε oµ function≤ cover≤ onl∙á thosσá feature≤ ì
  700. whicΦá diffe≥á iε somσ respec⌠ froφ thσ Digita∞ ResearcΦ BDO╙á funcì
  701. tions«á An∙ gooΣ CP/═ referencσ manua∞ wil∞ givσ informatioε oεá thσ ì
  702. detail≤ oµ thσ standarΣ BDO╙ functions.
  703.  
  704.  
  705.  
  706. Function 1: áRead Console Byteì
  707. C = 01hì
  708. ------------------------------
  709.  
  710. áááIµ higΦ bi⌠ characte≥ contro∞ i≤ enabled¼ thσ echoinτ oµ higΦ bi⌠ ì
  711. ááácharacter≤á t∩ thσ screeε witΦ Functioε ▒ i≤ unde≥ thσ contro∞ oµ ì
  712. áááflag≤ bi⌠ 3.
  713.  
  714.  
  715. Function 2: áWrite Console Byteì
  716. C = 02hì
  717. -------------------------------
  718.  
  719. áááAε automatiπ checδ i≤ madσ ever∙ 25╢ character≤ fo≥ thσá presencσ ì
  720. áááoµá ^╙á a⌠ thσ consolσ input«á Thi≤ checδ wil∞ bypas≤á an∙á othe≥ ì
  721. ááácharacte≥á waitinτ t∩ bσ processeΣ b∙ DO╙ consolσ inpu⌠ anΣ iµá ß ì
  722. ááá^╙ ha≤ beeε typed¼ screeε outpu⌠ wil∞ bσ halted.
  723.  
  724. áááThi≤á featurσ  wil∞ resul⌠ iε ß sligh⌠ los≤ oµ keyboarΣá responsσ ì
  725. áááspeeΣá durinτá time≤ oµ intensivσ screeεá output«á Thi≤á i≤á onl∙ ì
  726. ááánoticeablσá witΦá program≤á sucΦ a≤ game≤ o≥á animateΣá debugger≤ ì
  727. ááárequirinτá ver∙ precisσ timinτ oµ keyboarΣ entry«á Thσá characte≥ ì
  728. ááácheckinτ featurσ ma∙ bσ disableΣ usinτ functioε 4▒ t∩ rese⌠ bi⌠ 1 ì
  729. áááoµ thσ flag≤ byte.
  730.  
  731.  
  732. Function 6: áDirect Console I/Oì
  733. C = 06hì
  734. -------------------------------
  735.  
  736. áááThi≤ function¼ iε additioε t∩ standarΣ I/╧ capabilities¼ provide≤ ì
  737. áááthσá abilit∙á t∩ checδ consolσ statu≤ directl∙ viß ß cal∞ t∩á thσ ì
  738. áááBIOS¼á bypassinτ thσ routine≤ associateΣ witΦ thσ inpu⌠á checkinτ ì
  739. áááfeaturσá oµ Function≤ ▓ anΣ 11«á ┴ cal∞ t∩ thi≤ functioε witΦ ┼ ╜ ì
  740. ááá0feΦ wil∞ returε ┴ ╜ ░ iµ n∩ characte≥ pendinτ anΣ ┴ ╜ 0ffΦ iµá ß ì
  741. ááácharacte≥ i≤ pending.
  742.  
  743.  
  744. Function 9: áDisplay "$"-Terminated Stringì
  745. C = 09hì
  746. ------------------------------------------
  747.  
  748. áááNote≤ fo≥ Functioε ▓ appl∙ t∩ Functioε ╣ a≤ well.
  749.  
  750. .paèFunction 10: áRead Console Stringì
  751. C = 0ahì
  752. ---------------------------------
  753.  
  754. áááThσá deletσ ke∙ behave≤ iε ß respectablσ fashion¼á i.e«á likσ thσ ì
  755. ááábackspacσ key«á A≤ ß result¼á thσ ^╥ (rewritσ line⌐ featurσ i≤ n∩ ì
  756. ááálonge≥ necessar∙ anΣ caε bσ eliminateΣ iε assembly¼á iµá desired« ì
  757. áááIµá higΦá bi⌠ characte≥ contro∞ i≤ enabled¼á theε thσá inpu⌠á anΣ ì
  758. áááechoinτ oµ higΦ bi⌠ character≤ i≤ unde≥ thσ contro∞ oµ flag≤ bit≤ ì
  759. ááá▓ anΣ 3.
  760.  
  761.  
  762. Function 11: áRead Console Statusì
  763. C = 0bhì
  764. ---------------------------------
  765.  
  766. áááThi≤á functioεá i≤á invokeΣ b∙ Function≤ ▓ anΣ ╣ t∩ checδá fo≥á ß ì
  767. ááápendinτ character« An∙ characte≥ othe≥ thaε ^╙ i≤ reaΣ anΣ storeΣ ì
  768. áááinternall∙á fo≥ futurσ processing¼á anΣ ß cal∞ t∩á thi≤á functioε ì
  769. áááwil∞á indicatσ tha⌠ ß characte≥ i≤ presen⌠ a⌠ thσ inpu⌠á console¼ ì
  770. áááeveεá thougΦá thσá pendinτ characte≥ ha≤ alread∙á beeεá reaΣá anΣ ì
  771. ááástored«á Fo≥ ß truσ cal∞ t∩ thσ BIO╙ statu≤ routine¼ usσ Functioε ì
  772. ááá╢ witΦ ┼ ╜ 0feh.
  773.  
  774.  
  775. Function 13: áReset Disk Systemì
  776. C = 0dhì
  777. -------------------------------
  778.  
  779. áááUnlikσá CP/M¼á NovaDO╙á doe≤ no⌠ necessaril∙ rese⌠ thσ ReaΣá Onl∙ ì
  780. ááávecto≥ oε ß functioε 1│ call«á Thus¼ iµ thσ runloτ equatσ wa≤ se⌠ ì
  781. áááfalsσ iε thσ heade≥ filσ a⌠ assembl∙ timσ ¼á ß disδ ma∙ bσá rese⌠ ì
  782. ááát∩ R/╫ onl∙ b∙ ß cal∞ t∩ functioε 37.
  783.  
  784. áááIµá flag≤ bi⌠ ╡ i≤ reset¼á thσ allocatioε vecto≥ wil∞ no⌠ bσá reì
  785. ááábuil⌠á fo≥á fixeΣ media«á Thi≤ wil∞ savσ ß grea⌠ dea∞ oµ timσá oε ì
  786. áááwarφ boot≤ bu⌠ ma∙ causσ problem≤ witΦ othe≥ feature≤ a≤á discusì
  787. áááseΣ iε thσ nex⌠ tw∩ paragraphs.
  788.  
  789. áááIµá Flag≤ bi⌠ ╡ i≤ set¼á Functioε 1│ return≤ ┴ ╜ 0ffΦ (thσ submi⌠ ì
  790. áááflag⌐á iµá ß filσ oε thσ ┴ drivσ exist≤ whosσá namσá begin≤á witΦ ì
  791. ááá"$$"«á Notσ that¼ unlikσ somσ othe≥ CP/═ DOS's¼ ß filσ whosσ namσ ì
  792. ááástart≤ witΦ ß singlσ ñ characte≥ wil∞ no⌠ se⌠ thσ submi⌠ flag« $-ì
  793. áááPuΓá filσ name≤ shoulΣ no⌠ begiε witΦ "$$ó iµ thσ submi⌠ flaτá i≤ ì
  794. áááuseΣ b∙ thσ CP╥ t∩ establisΦ thσ presencσ oµ submi⌠ commanΣ file.
  795.  
  796. .paèFunction 14: áSelect Diskì
  797. C = 0ehì
  798. -------------------------
  799.  
  800. áááThσá Selec⌠á Disδ functioε contain≤ thσ cal∞ t∩ thσá BIO╙á RESDS╦ ì
  801. ááároutinσ (iµ enabled⌐ whicΦ i≤ calleΣ prio≥ t∩ logginτ iε ß flopp∙ ì
  802. ááádrive«á Thi≤ allow≤ botΦ singlσ anΣ doublσ sideΣ disk≤ t∩ bσ reaΣ ì
  803. áááb∙ machine≤ whicΦ suppor⌠ botΦ formats« WitΦ NovaDO╙ releasσ H¼ ß ì
  804. áááRESDS╦á cal∞ i≤ madσ no⌠ onl∙ b∙ thi≤ functioε wheε logginτ iεá ß ì
  805. áááflopp∙ iε responsσ t∩ aε externa∞ call¼á bu⌠ als∩ b∙ an∙ functioε ì
  806. áááwhicΦá sense≤á ß changeΣ disδ sincσ thσ las⌠ logiε oµ thσá flopp∙ ì
  807. ááádrivσ anΣ call≤ thi≤ functioε internally.
  808.  
  809.  
  810. Function 15: áOpen Fileì
  811. C = 0fhì
  812. -----------------------
  813.  
  814. áááThσ se⌠ oµ file≤ whicΦ arσ accessiblσ viß Functioε 1╡ i≤ extendeΣ ì
  815. áááb∙á thσ usσ oµ thσ NovaDO╙ searcΦ patΦ anΣ b∙ thσ usσá oµá publiπ ì
  816. áááfiles«á Seσá thσá sectioεá "Discussioε oµ Featuresó abovσá fo≥á ß ì
  817. ááádetaileΣ explanatioε oµ thσ searcΦ patΦ anΣ publiπ files.
  818.  
  819. áááIµá ßá flopp∙ disδ ha≤ beeε changeΣ thσ las⌠ disδá rese⌠á NovaDO╙ ì
  820. áááwil∞á simpl∙ rese⌠ thσ drivσ anΣ proceed«á ┴ changeΣá disδá unde≥ ì
  821. áááCP/═ BDO╙ resulteΣ iε thσ disδ beinτ declareΣ reaΣ only.
  822.  
  823.  
  824. Function 19: áErase (Delete) Fileì
  825. C = 13hì
  826. ---------------------------------
  827.  
  828. áááI⌠á i≤á worth∙ oµ notσ tha⌠ eveε whilσ publiπ file≤ arσá madσá bσ ì
  829. áááreaΣ onl∙ b∙ settinτ flag≤ bytσ 4¼á the∙ ma∙ bσ eraseΣ witΦ Funcì
  830. ááátioε 19.
  831.  
  832.  
  833. Function 21: áWrite Sequentialì
  834. C = 15hì
  835. ------------------------------
  836.  
  837. áááNovaDO╙á wil∞ conside≥ al∞ publiπ file≤ t∩ bσ ReaΣ Onl∙ unles≤á ß ì
  838. ááácal∞á t∩ Functioε 4▒ ha≤ altereΣ thi≤ condition«á An∙ attemp⌠á t∩ ì
  839. áááwritσá t∩ sucΦ ß filσ wil∞ producσ ß standarΣ "Filσ i≤ R/Oóá mesì
  840. ááásage.
  841.  
  842. áááWritinτá t∩ ß filσ wil∞ causσ thσ archivσ bi⌠ t∩ bσ rese⌠ iεá thσ ì
  843. ááádirector∙ entr∙ fo≥ thσ filσ wheε i⌠ i≤ closed.
  844.  
  845.  
  846. Function 34: Write Randomì
  847. C = 21hì
  848. --------------------------
  849.  
  850. áááSeσ note≤ fo≥ Functioε 21.
  851. Function 37: áReset Driveì
  852. C = 25hì
  853. -------------------------
  854.  
  855. áááNovaDO╙á ma∙á bσ configureΣ oε assembl∙ t∩ emulatσ ZRDO╙á iεá thσ ì
  856. áááexecutioε oµ thi≤ function« StandarΣ CP/═ DO╙ wil∞ rese⌠ thσ bit≤ ì
  857. áááiεá thσ writσ protec⌠ vecto≥ fo≥ al∞ drive≤ whicΦ arσ no⌠ currenì
  858. ááátl∙ loggeΣ in«á Iµ ZRDO╙ emulatioε i≤ enabled¼á onl∙ thosσ drive≤ ì
  859. áááwhicΦá arσá specificall∙á loggeΣ ofµ arσ rese⌠á t∩á ßá Read/Writσ ì
  860. ááácondition.
  861.  
  862.  
  863. Function 38:  Relocate Code
  864. C = 26h
  865. ---------------------------
  866.  
  867.    Thi≤á i≤á aε experimenta∞ functioε whicΦ a≤ ye⌠ ha≤á n∩á applicaì
  868. ááátions«á  ┴ pointe≥ t∩ ß Relocatioε Contro∞ Blocδ i≤ passeΣ iε DE«ì
  869. áááCodσá specifieΣá b∙ thσ blocδ i≤ relocateΣ anΣ addres≤á adjusted«ì
  870. áááThσ forma⌠ fo≥ thσ RC┬ i≤ a≤ follows:
  871.  
  872. ááá       defw      oldloc         ; Old location of code
  873. ááá       defw      newloc         ; New location of code
  874.           defw      offset         ; Offset for address adjustment
  875. ááá       defw      codesiz        ; Size of block to relocate
  876. ááá       defw      bitmap         ; Pointer to relocation bitmap
  877.  
  878. áááAddresse≤á t∩á bσ adjusteΣ arσ referenceΣ b∙ thσ bitma≡á thσá se⌠ ì
  879. ááábit≤á oµá whicΦ indicatσ thσ HIG╚ orde≥ bytσ oµ addresse≤á t∩á bσ ì
  880. áááadjusted«  SucΦ ß bitma≡ i≤ produceΣ b∙ linker≤ generatinτ SP╥ o≥ ì
  881. áááPR╠ files.
  882.  
  883.    Iµ thσ codσ i≤ operationa∞ iε onσ locatioε anΣ i≤ beinτ moveΣá t∩ ì
  884. áááanothe≥á addres≤ a⌠ whicΦ i⌠ i≤ als∩ expecteΣ t∩ bσá operational¼ ì
  885. ááátheεá offse⌠ ╜ newloπ - oldloc«á  I⌠á i≤á possible¼á however¼á t∩ ì
  886. áááaddres≤ adjus⌠ codσ iε memor∙ withou⌠ movinτ it«á  Thus¼á iµ bitì
  887. ááámap≤á exis⌠á fo≥ al∞ reference≤ t∩ eacΦ oµ severa∞ commoεá block≤ ì
  888. áááwhicΦ thσ codσ mus⌠ access¼á theε thi≤ functioε ma∙ bσ calleΣ fo≥ ì
  889. áááeacΦá bitma≡ witΦ thσ runtimσ addres≤ oµ thσ commoε blocδ iεá thσ ì
  890. áááRC┬á offse⌠á word«á Thσ generatioε oµ multiplσá bitmap≤á oµá thi≤ ì
  891. ááánaturσ ma∙ bσ beyonΣ thσ capabilitie≤ oµ existinτ linkers.
  892.  
  893.  
  894. Function 39: Return Fixed Media Vector á(Optional)ì
  895. C = 27hì
  896. --------------------------------------
  897.  
  898. áááNovaDO╙ keep≤ ß recorΣ oµ thosσ mediß whicΦ arσ permanen⌠á withiε ì
  899. áááthσ systeφ sucΦ a≤ harΣ disk≤ anΣ RA═ disk≤ (no⌠ floppies)«á Thi≤ ì
  900. áááfunctioε return≤ ß bi⌠ ma≡ oµ sucΦ disk≤ iε ß manne≥ analogou≤ t∩ ì
  901. áááFunctioε 2┤ (seσ an∙ gooΣ DO╙ reference)«á Thi≤ functioε i≤ adapì
  902. áááteΣ froφ ZRDO╙ vs« 1.9.
  903. .paèFunction 41: áGet/Set/Reset NovaDOS Flagsì
  904. C = 29hì
  905. -------------------------------------
  906.  
  907. áááOε entry¼á registe≥ ┼ contain≤ ß flaτ specificatioε bytσ iε whicΦ ì
  908. áááthσá bit≤ correspondinτ t∩ thosσ flag≤ t∩ bσ altereΣ arσ set«á Iµ ì
  909. ááábi⌠á ╖ i≤ set¼á thσ designateΣ flag≤ wil∞ bσ set¼á otherwisσá thσ ì
  910. áááflag≤ wil∞ bσ reset«á Iµ E=░ oε entr∙ theε thσ curren⌠ flag≤ bytσ ì
  911. áááwil∞ bσ returneΣ iε thσ ┴ register« 
  912.  
  913.  
  914. Function 42║ Se⌠ PatΦ Addres≤ (Optional⌐ 
  915. ├ ╜ 2aΦ 
  916. -----------------------------
  917.  
  918. áááIµ D┼ contain≤ ß non-zer∩ valuσ oε entry¼ thσ patΦ addres≤ i≤ se⌠ ì
  919. ááát∩ tha⌠ value«á Iµ D┼ i≤ 0¼á thσ curren⌠ patΦ addres≤ i≤ returneΣ ì
  920. áááiε HL.
  921.  
  922.  
  923. Function 47: áReturn Current DMA Address á(Optional)ì
  924. C = 2fhì
  925. -----------------------------------------
  926.  
  927. áááThσá curren⌠á DM┴ addres≤ i≤ returneΣ iεá HL«á Thi≤á functioεá i≤ ì
  928. ááánecessar∙ fo≥ ZRDO╙ emulation.
  929.  
  930.  
  931. Function 48: áReturn ZRDOS Version Number á(Optional)ì
  932. C = 30hì
  933. -----------------------------------------
  934. ì
  935. ááá┴á numbe≥ oµ ZCP╥ Z-systeφ utilitie≤ requirσ ZRDO╙ anΣ wil∞ abor⌠ ì
  936. áááwitΦá ßá messagσ t∩ tha⌠ effec⌠ iµ ß Functioε 4╕á cal∞á doe≤á no⌠ ì
  937. áááreturεá ßá ZRDO╙ versioε number«á Thi≤ functioε return≤ ßá numbe≥ ì
  938. ááácorrespondinτ t∩ ß valiΣ ZRDO╙ versioε number.
  939.  
  940.  
  941. Function 50: áSet Warm Boot Trap á(Optional)ì
  942. C = 32hì
  943. --------------------------------
  944.  
  945. áááThi≤á functioεá replace≤ thσ interna∞ DO╙ warφ boo⌠ jum≡ witΦá aε ì
  946. áááaddres≤ receiveΣ iε DE« Internall∙ generateΣ warφ boot≤ wil∞ theε ì
  947. ááábσ diverteΣ t∩ thi≤ address« Thi≤ functioε i≤ necessar∙ fo≥ ZRDO╙ ì
  948. áááemulation«á Erro≥ message≤ anΣ thσ erro≥ escapσ optioε arσá disaì
  949. ááábleΣ wheε thσ warφ boo⌠ tra≡ i≤ set.
  950.  
  951. .paèFunction 52: áReset Warm Boot Trap á(Optional)ì
  952. C = 34hì
  953. ----------------------------------
  954.  
  955. áááThi≤ functioε reset≤ thσ warφ boo⌠ jum≡ addres≤ t∩ 0000h«á Iµ thσ ì
  956. áááwarφ boo⌠ tra≡ i≤ no⌠ set¼ thσ functioε iε null« Thi≤ functioε i≤ ì
  957. ááánecessar∙ fo≥ ZRDO╙ emulation.
  958.  
  959.  
  960. Function 200: áGet Time á(Optional)ì
  961. C = C8hì
  962. -----------------------
  963.  
  964. áááIµá date/timσ stampinτ i≤ enabled¼á thi≤ functioε wil∞ writσá thσ ì
  965. ááácurren⌠ timσ t∩ thσ buffe≥ addres≤ passeΣ iε DE«á Seσ thσ sectioε ì
  966. áááoε Timσ anΣ Datσ Stampinτ unde≥ "Discussioε oµ Features".
  967.  
  968.  
  969. Function 201: áSet Time á(Optional)ì
  970. C = C9hì
  971. -----------------------
  972.  
  973. áááIµá date/timσá stampinτ i≤ enabled¼á thi≤ functioε wil∞ reaΣá thσ ì
  974. ááácurren⌠á timσá froφ thσ buffe≥ addres≤ passeΣ iε D┼ anΣá se⌠á thσ ì
  975. áááBIO╙ clock/calenda≥ accordingly« Seσ thσ sectioε oε Timσ anΣ Datσ ì
  976. áááStampinτ unde≥ "Discussioε oµ Features".
  977.  
  978. .heNovaDOS  Assembly                                            page #
  979. .paèASSEMBLY INSTRUCTIONS:
  980. ======================
  981.  
  982. Therσá arσá tw∩ genera∞ method≤ fo≥ gettinτ NovaDO╙ u≡ anΣá running«ì
  983. EacΦá require≤ ß differen⌠ assembl∙ anΣ loadinτ proces≤ a≤á wel∞á a≤ ì
  984. differen⌠á softwarσá anΣ setting≤ withiε NDOSHDR.LIB¼á a≤á discusseΣ ì
  985. below«á  Thσ methoΣ whicΦ yo⌡ shoulΣ usσ depend≤ oε you≥ systeφá anΣ ì
  986. thσ softwarσ tool≤ availablσ t∩ you«á  NovaDO╙ wil∞ assemblσ withou⌠ ì
  987. modificatioεá witΦá eithe≥á SL╥ systemsº excellen⌠á Z80AS═á o≥á witΦ ì
  988. Microsoft'≤á M80¼á whicΦ i≤ morσ readil∙ available«á  Thσ forme≥á i≤ ì
  989. highl∙ recommenΣ fo≥ speeΣ anΣ versatility.
  990.  
  991.  
  992. Method 1:  Loadable REL file
  993. ----------------------------
  994.  
  995. Iµ yo⌡ arσ usinτ thσ NZCOM/ZCPR3┤ packagσ froφ Alphß System≤ (highl∙ ì
  996. recommended⌐á you≥ assembl∙ anΣ loadinτ proces≤ i≤ extremel∙ simple«
  997.  
  998. 1.   Set cmnadr true in NDOSHDR.LIB
  999.  
  1000. 2.   If using Z80ASM, assemble to a REL file with
  1001.  
  1002.           > Z80ASM nvds/r 
  1003.  
  1004.      If using M80, assemble to a REL file with
  1005.  
  1006.           > M80 nvds,=nvds.z80/z
  1007.  
  1008. 3«á  I⌠á i≤á advisablσá t∩ renamσ thσ resultinτ RE╠á filσá witΦá thσ ì
  1009.      extensioε ZR╠ t∩ maintaiε consistenc∙ witΦ existinτ NZCO═ softì
  1010. áááááware.  You may load NovaDOS to memory with:
  1011.  
  1012. ááááá     > JETLDR nvds.zrl
  1013.  
  1014. áááááor   > NZCOM nvds.zrl
  1015.  
  1016.  
  1017. Method 2:  Patching PUTSYS.COM with a HEX file
  1018. ----------------------------------------------
  1019.  
  1020. Iµá yo⌡á havσ Z80AS═ yo⌡ ma∙ assemblσ NovaDO╙ t∩ aε Inte∞á HE╪á filσ ì
  1021. whicΦ ma∙ bσ overlaiΣ ont∩ thσ DO╙ imagσ withiε PUTSYS.COM«  NovaDO╙ ì
  1022. ma∙á theεá bσ loadeΣ ont∩ thσ systeφ track≤ oµ an∙ disδá b∙á runninτ ì
  1023. PUTSYS«
  1024.  
  1025. 1.á  Se⌠á hexgeε truσ iε NDOSHDR.LIB«á  Se⌠ EITHE╥ z33ad≥ o≥á intad≥ì
  1026. ááááátruσá dependinτ oε whethe≥ o≥ no⌠ yo⌡ arσ usinτ ZCPR3│ anΣ havσ ì
  1027. áááááZ3BASE.LI┬ available«  Iµ Z3BASE.LI┬ i≤ no⌠ available¼ yo⌡ mus⌠ ì
  1028. áááááse⌠ thσ DO╙ anΣ BIO╙ addres≤ equate≤ whicΦ follow.
  1029.  
  1030. 2.   If using Z80ASM, assemble to a HEX file with:
  1031.  
  1032.           > Z80ASM nvds/h
  1033. .paèáááááIµá usinτá M80¼á producinτ thσ HE╪ filσ i≤ ß tw∩ ste≡á process«ì
  1034. áááááYo⌡ mus⌠ makσ ß notσ oµ thσ addres≤ putsdo≤ (usuall∙ 1180h⌐á iε ì
  1035. áááááNDOSHDR.LIB for use with L80.
  1036.  
  1037. áááááa.   Assemble to a REL file with:
  1038.  
  1039. ááááá     > M80 nvds,=nvds.z80/z
  1040.  
  1041. áááááb.   Link to a HEX file with:
  1042.  
  1043. ááááá     ╛áL8░á /p:1180,nvds,nvds/e/n/°      (usσ putsdos address)
  1044.  
  1045. 3.   LoaΣá thσ HE╪ filσ ont∩ PUTSY╙ usinτ MLOA─ witΦ:
  1046.  
  1047. ááááá     > MLOAD newsys=putsys.com,nvds.hex
  1048.  
  1049.      Iµ yo⌡ don'⌠ havσ MLOAD¼á yo⌡ caε usσ DD╘ t∩ loaΣ NVDS.HE╪ int∩ ì
  1050. áááááPUTSYS.COM as follows:
  1051.  
  1052. ááááá     > DDT putsys.com
  1053.  
  1054. áááááMakσ ß notσ oµ thσ numbe≥ unde≥ NEXT«  A⌠ thσ DD╘ prompt¼ issuσ ì
  1055. áááááthe commands:
  1056.  
  1057. ááááá     - invds.hex
  1058. ááááá     - r
  1059. ááááá     - ^C           (exit DDT)
  1060.  
  1061. áááááImmediatel∙á issuσá thσá commanΣ "SAV┼á nεá newsys.com"¼á wherσ ì
  1062. ááááánεá i≤ thσ higΦ orde≥ bytσ (leftmos⌠ tw∩ digits⌐ oµ thσá numbe≥ ì
  1063. áááááunder NEXT, converted to decimal.
  1064.  
  1065. 4.   Run PUTSYS to place NovaDOS onto your system tracks.
  1066.  
  1067.  
  1068. ADDITIONAL ASSEMBLY OPTIONS:
  1069. ============================
  1070.  
  1071. Binary Image:
  1072. ---------------
  1073.  
  1074. Yo⌡á ma∙ generatσ ß binar∙ imagσ oµ NovaDO╙ whicΦ may¼á likσ thσ HE╪ ì
  1075. file¼á bσá loadeΣ int∩ PUTSY╙ usinτ DDT¼á placeΣ iε memor∙á directl∙ ì
  1076. usinτá an∙á utilit∙ capablσ oµ doinτ s∩ o≥ patcheΣ iε an∙ onσá oµá ß ì
  1077. numbe≥á oµá way≤ ont∩ you≥ systeφ tracks«á Yo⌡ ma∙ obtaiεá ßá binar∙ ì
  1078. imagσá oµá generiπ NovaDO╙ directl∙ b∙ runninτ MAKENVD╙ o≥á yo⌡á ma∙ ì
  1079. generatσ ß custoφ versioε a≤ follows.
  1080.  
  1081. 1.   Se⌠ intad≥ o≥ z33ad≥ true¼á dependinτ oε whethe≥ o≥ no⌠ yo⌡ arσ ì
  1082. áááááusing ZCPR33 and have Z3BASE.LIB available.  Set hexgen false.
  1083. .paè2.áááIf using Z80ASM, create a COM file with:
  1084.  
  1085. ááááá     > Z80ASM nvds
  1086.  
  1087. áááááIf using M80 and L80, a two step process is required
  1088.  
  1089. áááááa.   Generate a REL file with M80 with:
  1090.  
  1091. ááááá     > M80 nvds,=nvds.z80/z
  1092.  
  1093. áááááb.   Generate a COM file from the REL file with:
  1094.  
  1095. ááááá     > L80 /p:100,nvds,nvds/e/n
  1096.  
  1097. Thσá resultinτá CO═á filσ shoulΣ bσ renameΣ witΦ thσ exten⌠á BI╬á t∩ ì
  1098. preven⌠á i⌠ froφ beinτ accidentall∙ executed«á  Yo⌡ ma∙ loaΣ thσ BI╬ ì
  1099. filσ int∩ PUTSYS¼ iµ yo⌡ wish¼ usinτ DDT« Invokσ DD╘ a≤ beforσ with
  1100.  
  1101. ááááá     > DDT putsys.com
  1102.  
  1103. Makσ ß notσ oµ thσ numbe≥ oµ page≤ loadeΣ (thσ higΦ orde≥ tw∩ digit≤ ì
  1104. oµ thσ fou≥ digi⌠ figurσ unde≥ NEXT¼á converteΣ t∩ decimal)«á  Issuσ ì
  1105. thσ followinτ command≤ t∩ DDT.
  1106.  
  1107. ááááá     - invds.bin
  1108. ááááá     - r1180        (use the offset in PUTSYS of the DOS image)
  1109. ááááá     - ^C           (exit DDT)
  1110.  
  1111. Immediatel∙á issuσá thσ commanΣ "SAV┼ nε newsys"¼á wherσ nεá i≤á thσ ì
  1112. numbe≥ oµ page≤ oµ putsy≤ loadeΣ b∙ DDT.
  1113.  
  1114.  
  1115. SPR/PRL Files:
  1116. --------------
  1117.  
  1118. SP╥ anΣ PR╠ file≤ arσ no⌠ iε commoε use¼á bu⌠ arσ usefu∞ iε applicaì
  1119. tion≤ requirinτ ß relocatablσ binar∙ imagσ oµ executablσ code«á  Thσ ì
  1120. filσá MAKENVDS.CO═ use≤ ß PR╠ imagσ oµ NovaDO╙ whicΦ caε bσ useΣá t∩ ì
  1121. generatσá ß BI╬ filσ fo≥ usσ a⌠ an∙ poin⌠ iε memory«á  PR╠á anΣá SP╥ ì
  1122. file≤á contaiεá ß relocatioε bitma≡ followinτ thσ activσ codσá whicΦ ì
  1123. specifie≤á byte≤á t∩ bσ addres≤ adjusted«á  T∩ generatσ ßá RE╠á filσ ì
  1124. compatiblσ witΦ thσ generatioε oµ SP╥ anΣ PR╠ file≤ se⌠ relad≥á truσ ì
  1125. iεá NDOSHDR.LI┬á anΣ assemblσ t∩ ß RE╠ filσ usinτá eithe≥á supporteΣ ì
  1126. assembler«á  Generatioε oµ thσ SP╥ o≥ PR╠ filσ require≤ SL╥ Systemsº ì
  1127. SLRNK½á (thσ Cadillaπ oµ Z8░ linkers⌐ o≥ LIN╦ froφ Digita∞ Research«ì
  1128. Thσ usσ oµ SPR/PR╠ file≤ i≤ beyonΣ thσ scopσ oµ thi≤ manual«
  1129.  
  1130.  
  1131.