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 / NSTAR / HTRANS.INT < prev    next >
Text File  |  2000-06-30  |  13KB  |  285 lines

  1. NTIU    ==    1    ; entry in use (account or file)
  2. ENTDE    ==    2    ; deleted entry
  3. ;
  4. ;
  5. ;  File Types
  6. ;
  7. FTMI    ==    1    ; memory image file
  8. FTBP    ==    2    ; BASIC program file
  9. FTBD    ==    3    ; BASIC data file
  10. FTRD    ==    4    ; BACKUP/RECOVERY compressed directory
  11. FTRP    ==    5    ; BACKUP/RECOVERY packets
  12. FTCC    ==    6    ; CP/M work file
  13. FTCU    ==    7    ; CP/M unit
  14. FTPC    ==    10    ; PASCAL connection table
  15. FTPV    ==    11    ; PASCAL volume
  16. FTAS    ==    18    ; ASP sequential file
  17. FTAR    ==    19    ; ASP random file
  18. FTAI    ==    20    ; ASP index file
  19. ;
  20. ;
  21. ;  FMLX Option Codes
  22. ;
  23. LXRLE    ==    0    ; return load errors, execute loaded code
  24. LXALE    ==    1    ; use FMABT for load errors, execute code
  25. LXRET    ==    2    ; return on load errors, donot execute
  26. LXXPO    ==    080H    ; extended path option bit
  27. ;
  28. ;
  29. ;  FMTFR Operation Codes
  30. ;
  31. TCORD    ==    1    ; read
  32. TCOWR    ==    0    ; write
  33. TCOVF    ==    2    ; verify
  34. TCOWC    ==    3    ; write 'clean'
  35. ;
  36. ;
  37. ;  Disk Label Structure
  38. ;
  39. DLILL    ==    0        ; illegal directory address
  40. DLALX    ==    DLILL+2        ; auto-load-and-execute path name
  41. DLASZ    ==    35        ; auto load&execute pathname length
  42. DLMAJOR    ==    DLALX+DLASZ    ; major disk structure revision level
  43. DLMINOR    ==    DLMAJOR+1    ; minor disk structure revision level
  44. DLDSZE    ==    DLMINOR+1    ; disk size
  45. DLNSRT    ==    DLDSZE+2    ; number of sectors reserved for testing
  46. DLNHSZ    ==    DLNSRT+2    ; hunk size as a power of two
  47. DLDRSZ    ==    DLNHSZ+1    ; directory size (sectors)
  48. DLDIR    ==    DLDRSZ+2    ; base disk address for the unit's directory
  49. DLXXX    ==    DLDIR+2        ; reserved space
  50. DLSIZ    ==    BPS-DLXXX    ; structure size
  51. ;
  52. ;
  53. ;  Hunk Table Structure
  54. ;
  55. HTALC    ==    0        ; the count of allocated hunks
  56. HTMAP    ==    HTALC+2        ; the bit map of hunks, a 1 bit means inuse
  57. ;
  58. ;
  59. ;  Directory Entry Structure
  60. ;
  61. DETYP    ==    0        ; entry type
  62. DESYM    ==    DETYP+1        ; The entry's symbol
  63. DEACN    ==    DESYM        ; the account number
  64. DENAM    ==    DEACN+2        ; the name protion of the symbol
  65. DENMZ    ==    14        ; name length in symbol
  66. DESYZ    ==    DENAM+DENMZ-DESYM    ; symbol length
  67. DEBAS    ==    DESYM+DESYZ    ; base for account and file data
  68. DESIZ    ==    32        ; the size of an entry
  69. DESZ2    ==    5        ; the size of an entry as a power of 2
  70. DEPS    ==    4        ; directory entries per sector (2^DEPS)
  71. EPD    ==    2048        ; entries per directory
  72. DIRM    ==    07H        ; entry number upper mask
  73. DEOSM    ==    0FH        ; entry-of-sector lower mask
  74. ;
  75. ;
  76. ;  File Structure Discriptor
  77. ;
  78. FSDAT    ==    0        ; attributes
  79. FSDFZ    ==    FSDAT+1        ; file size in sectors
  80. FSDLB    ==    FSDFZ+2        ; bytes in use in last sector
  81. FSDHS    ==    FSDLB+2        ; nHunk size as a power of 2
  82. FSDMU    ==    FSDHS+1        ; unit number
  83. FSDH0    ==    FSDMU+1        ; hunk 0 address divided by SPH
  84. FSDSZ    ==    FSDH0+2        ; structure descriptor size
  85. ;
  86. ;
  87. ;  File Directory Entry
  88. ;
  89. FDESD    ==    DEBAS        ; structure descriptor
  90. FDEAT    ==    FDESD+FSDAT    ; attributes
  91. FDEFZ    ==    FDESD+FSDFZ    ; file size in sectors
  92. FDELB    ==    FDESD+FSDLB    ; bytes in use in the last sector
  93. FDEHS    ==    FDESD+FSDHS    ; sectors per nHunk as a power of 2
  94. FDEX1    ==    FDESD+FSDMU    ; reserved space
  95. FDEH0    ==    FDESD+FSDH0    ; hunk 0 disk addr divided by SPH
  96. FDEFT    ==    FDEH0+2        ; file type
  97. FDETD    ==    FDEFT+1        ; type dependant data
  98. FDEXX    ==    FDETD+3        ; reserved space, 2 bytes
  99. ;
  100. ;
  101. ;  Account Directory Entry
  102. ;
  103. ADEAN    ==    DESYM+DESYZ    ; account number
  104. ADEXX    ==    ADEAN+2        ; reserved space, 13 bytes
  105. ;
  106. ;
  107. ;  Index block
  108. ;
  109. IXSIZ    ==    BPS/2        ; one half sector long
  110. EPI    ==    129        ; entries per index
  111. ;
  112. ;
  113. ;  Open FIle Block (OFB)
  114. ;
  115. OFBDE    ==    0        ; directory entry number
  116. OFBDB    ==    OFBDE+2        ; base disk address for directory
  117. OFBIL    ==    OFBDB+2        ; index length (1..EPI)
  118. OFBSD    ==    OFBIL+1        ; the file's structure descriptor
  119. OFBAT    ==    OFBSD+FSDAT    ; attributes
  120. OFBFZ    ==    OFBSD+FSDFZ    ; file size in sectors
  121. OFBLB    ==    OFBSD+FSDLB    ; bytes in last sectorH+37H    ; Sector address of last HDCOM error
  122. HDEDN    ==    DSPCH+39H    ; Drive number of last HDCOM error
  123. MDCB    ==    DSPCH+3AH    ; Personalization byte, address of Micro Disk Controller
  124. FTPTM    ==    DSPCH+3BH    ; Storage for processor speed indicator
  125. HMEM    ==    DSPCH+3CH    ; Memory limit indicator
  126. ADEV    ==    DSPCH+3DH    ; Additional output device number
  127. AOUT    ==    DSPCH+3EH    ; Character output bypassing additional device feature
  128. ISTAT    ==    DSPCH+41H    ; Input device status check
  129. OSTAT    ==    DSPCH+44H    ; Output device status check
  130. LINED    ==    DSPCH+47H    ; Line input editor
  131. FMNGR    ==    DSPCH+4AH    ; Hard disk file manager entry point
  132. HDCOM    ==    DSPCH+4DH    ; Lowest level hard disk driver entry point
  133. ;
  134. ; ORIGINS OF SYSTEM MODULES
  135. ;
  136. LINE    ==    DSPCH+100H-NLINE    ; Space for a line of text
  137. TSTAK    ==    LINE            ; Space for small argument stack for overlays
  138. BUFF    ==    DSPCH+100H        ; Shared sector buffer
  139. UIOB    ==    BUFF+200H        ; Users' I/O block
  140. HDCORG    ==    0500H            ; Hard Disk driver
  141. FMGORG    ==    0D00H            ; File manager origin
  142. TSSORG    ==    01F00H            ; Transient system border
  143. CMPORG    ==    02600H            ; Command Processor
  144.  
  145. ;
  146. ;
  147. ;
  148. ;            MFDOS result codes
  149. ;
  150. ;
  151. ;
  152. MFSNF    ==    1    ; sync not found
  153. MFCRC    ==    2    ; CRC error
  154. MFVFY    ==    3    ; verify compare error
  155. MFNIP    ==    4    ; no index pulse found
  156. MFDMM    ==    5    ; density mismatch on read or verify
  157. MFWRP    ==    6    ; attempt to write on protected diskette
  158. MFCCX    ==    7    ; control C detected from console
  159. MFIDW    ==    8    ; illegal call to DWRIT
  160. MFIDN    ==    9    ; illegal drive number
  161. MFIDA    ==    10    ; illegal disk address
  162. MFITL    ==    11    ; illegal transfer length
  163. MFIDC    ==    12    ; illegal command to DCOM
  164. MFTDM    ==    13    ; track density mismatch error
  165. ;
  166. ;
  167. ;
  168. ;
  169. ;            File Manager Definitions
  170. ;
  171. ;
  172. ;
  173. ;
  174. ;  File Manager Operation Codes
  175. ;
  176. FMCRE    ==    00H        ; create file
  177. FMDEL    ==    FMCRE+1        ; delete file
  178. FMOPN    ==    FMDEL+1        ; open file
  179. FMCLO    ==    FMOPN+1        ; close file
  180. FMTFR    ==    FMCLO+1        ; transfer sectors to/from file
  181. FMLOK    ==    FMTFR+1        ; lookup file information
  182. FMLAC    ==    FMLOK+1        ; lookup account information
  183. FMCTY    ==    FMLAC+1        ; change file type
  184. FMCAT    ==    FMCTY+1        ; change file attributes
  185. FMCFS    ==    FMCAT+1        ; change file size
  186. FMCAP    ==    FMCFS+1        ; change the auto-load-and-go pathname
  187. FMABT    ==    FMCAP+1        ; abort the calling program
  188. FMRST    ==    FMABT+1        ; reset the File Manager
  189. FMLX    ==    FMRST+1        ; load and execute a file of type FTMI
  190. FMFSZ    ==    FMLX+1        ; return a file's size to the caller
  191. FMCA    ==    FMFSZ+1        ; create account
  192. FMDA    ==    FMCA+1        ; delete account
  193. FMSDV    ==    FMDA+1        ; set/return default values
  194. FMCM    ==    FMSDV+1        ; compose a standard message code message
  195. FMFIN    ==    FMCM+1        ; finish executing the calling program
  196. FMRDS    ==    FMFIN+1        ; return disk statistics to the calling prog
  197. FMADE    ==    FMRDS+1        ; access directory entry
  198. FMRDV    ==    FMADE+1        ; return default values to the calling prog
  199. FMCAN    ==    FMRDV+1        ; change account name
  200. FMPD    ==    FMCAN+1        ; power down a specific unit
  201. FMPU    ==    FMPD+1        ; power up a specific unit
  202. FMFBU    ==    FMPU+1        ; flag buffer used
  203. FMINI    ==    FMFBU+1        ; initialize after bootstrap
  204. FMEOL    ==    FMINI        ; end of FM list
  205. ;
  206. ;
  207. ;  Message Codes
  208. ;
  209. MOK    ==    00H        ; ok, must be zero!
  210. MANE    ==    20        ; account not empty
  211. MDDUP    ==    MANE+1        ; directory: attempt to add duplicate symbol
  212. MDFUL    ==    MDDUP+1        ; directory: directory is full
  213. MDFND    ==    MDFUL+1        ; directory: matching symbol found
  214. MDBAD    ==    MDFND+1        ; directory: bad directory structure
  215. MDFNF    ==    MDBAD+1        ; directory: file name not found
  216. MDANF    ==    MDFNF+1        ; directory: account name not found
  217. MCADS    ==    MDANF+1        ; cant allocate disk space, disk possibly full
  218. MOFUL    ==    MCADS+1        ; cant open file, Open File Table full
  219. MOAVL    ==    MOFUL+1        ; OFT entry available
  220. MILDN    ==    MOAVL+1        ; illegal decimal number
  221. MILFN    ==    MILDN+1        ; illegal file name
  222. MILAN    ==    MILFN+1        ; illegal account name
  223. MILUN    ==    MILAN+1        ; illegal unit number
  224. MILID    ==    MILUN+1        ; illegal account ID
  225. MWRP    ==    MILID+1        ; write protect
  226. MDEP    ==    MWRP+1        ; delete protect
  227. MADEP    ==    MDEP+1        ; account delete protected
  228. MCCPF    ==    MADEP+1        ; can't change protected field
  229. MPARA    ==    MCCPF+1        ; pramater in error or out of range
  230. MFRT    ==    MPARA+1        ; file of wrong type specified
  231. MFNO    ==    MFRT+1        ; file not open
  232. MFOPN    ==    MFNO+1        ; file is open
  233. MFAIL    ==    MFOPN+1        ; general failur
  234. MEOLA    ==    MFAIL+1        ; end of list with available space
  235. MEOL    ==    MEOLA+1        ; end of list with no available space
  236. MIFMR    ==    MEOL+1        ; illegal File Manager request
  237. MFZNZ    ==    MIFMR+1        ; file size not zero
  238. MIFZ    ==    MFZNZ+1        ; illegal file size
  239. MEOF    ==    MIFZ+1        ; end of file reached during transfer
  240. MPEOF    ==    MEOF+1        ; transfer attempted past EOF
  241. MMEMP    ==    MPEOF+1        ; memory protect violation
  242. MUNPU    ==    MMEMP+1        ; unit not powered up
  243. MNYI    ==    MUNPU+1        ; function not yet implimented
  244. MFMO    ==    MNYI+1        ; file is multiply opened
  245. MDLRE    ==    MFMO+1        ; Disk level revision error
  246. MDNSL    ==    MDLRE+1        ; Drive label mismatch error
  247. MDNSS    ==    MDNSL+1        ; Drive size mismatch error
  248. MDNRDY    ==    127        ; drive not ready-out of speed
  249. MDNACC    ==    126        ; drive not ready for command
  250. MCNPR    ==    125        ; controller not there
  251. MDWNR    ==    124        ; drive went not ready after command started
  252. MCNFTS    ==    123        ; can not find target sector
  253. MDRDFL    ==    122        ; failure in drive read elel 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 X⌡ÉPα"Select  [ A, S, L, E, or X ]: ","ASLEX")& ä X⌡5 ▓ Üá0 à #1 %24 π 2ΓX σ1,&L,&H#: à #1 %6,&L1,&H1 \Å get old end!D Ö #1 %6,&L,&H,╣ \Å shrink it%N Ö #1 %15,&1,╣ \Å off autoσstartÆ
  254. X ë Ü(#;b ÆÉM$α╕α256ΓαH1σH)πL1σL)π" 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
  255. 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")╩ Æ╘ Æ▐ ÆΣ  Q7⌡1 \Å 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$=  Q7⌡0 \Å typed own name
  256. B ê Ü@VÅ"WÅ  write to DOS command buffer"X Ö #1 %D1,╣ \Å start of bufferb ü I⌡1 ▒ ╠αL$)l   Ö #1,&╢αL$αI,I))v âÇ Ö #1,&13,╣ \Å trailing CRè è:Å+;Å  open file F$ αwith imbedded drive #)<Å Ok, E1⌡0, T⌡type of file)=Å No, E1⌡0 αno want menu exit),  T⌡σ10>Å     E1⌡1 αwant to menu exit),  T⌡undefined?Å'@  ƒ Üh,L1,E1 \Å trap floppy errorsJ  T⌡ ╗αF$) \Å file typeT  ƒ \Å good access Y  E1⌡0 \Å 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 ▓ Ü@ò   E1⌡1 \Å set menu exitÜ   è \Å to main menuñ   ä T±σ1 ▓ Ü┬ \Å exists? ⌐   ë Ü(#$«     Æ╡α7),F$," does not exist!"$╕     è \Å with cleared menu exit┬  ƒ╠  ù #1 %T, F$╤  è╓Å(#Å Clear the screen<#  ü I⌡1 ▒ C    F#    ÆP#  âZ#  èû#Å$á#Å Center text line L$ in width W╚# æ ÉM$αL$)2╥#  ä ╠αL$)∩W ▓ è L$ ┤ è  B$α1, αWσ╠αL$))τ2 )πL$µ# Éì≡#Å╕$ÅC┬$Å Get char CR, convert to upper case, return position in stringΩ$ æ ÉPαL$,P$)∞$  ÆÉM$αL$),∩$  å1"",K$7±$  ä ╠αK$)÷1 φ ╠αK$)⌡0 ▓ Ü% \Å accept exactly 1 key≥$   P9⌡╢αK$)B≤$   K$⌡ ╡α P9 σ 32ΓαP9∩╢α"a") ∞ P9≡╢α"z")) ) \Å upper case only.⌠$   ü P9⌡1 ▒ ╠αP$) \Å see if legal response■$    ä K$⌡P$αP9,P9) ▓ û Ü%%   â%  Æ╡α7),╡α13), %   ê Ü∞$%  Æ
  257. %  è P9% Éì&% Å' ìcÿÿ║ÿ≡ÿ ÿ≥ù≈ùⁿù╧ΘòOπÿ|ûÇB#BÅPSelect  [ D, B, or E ]: rogram must terminate with .SBTTL    "********* EQUATES FOR HDOS *********"
  258. .PAGE    132,60
  259. ;
  260. ;
  261. ;              EQUS
  262. ;         NOVEMBER 13, 1981
  263. ;
  264. ; This file contains the equates for use in all modules of the 
  265. ;       North Star Hard Disk Operating System.
  266. ;
  267. RLEAS    ==    2*16+0        ; Release 2.0.0
  268. MAJORRV    ==    1        ; Major disk revision level
  269. MINORRV    ==    0        ; Minor disk revision level
  270. DSPCH    ==    100H        ; SYSTEM ORIGIN
  271. BADDR    ==    0E800H        ; Micro Disk Controller address
  272. PADDR    ==    0        ; Motherboard I/O ports
  273. NTRAC    ==    35        ; Number of tracks per side on a Micro Disk
  274. ZTRAC    ==    18+35+35+1    ; Initial track counter value for Micro Disks
  275. MAXIO    ==    7        ; Maximum legal I/O device number
  276. NLINE    ==    80        ; Length of input line for Command Processor
  277. DFSTP    ==    26        ; Default processor speed constant (Z80A)
  278. ;
  279. ; SYSTEM DISPATCH TABLE ADDRESSES
  280. ;
  281. TRAKT    ==    DSPCH        ; Micro Disk track table
  282. REVN    ==    DSPCH+4        ; Sequential revision number
  283. CNFG2    ==    DSPCH+5        ; Secondary configuration byte
  284. SUNIT    ==    DSPCH+6        ; Last used Micro Disk drive
  285. OFTEN    ==    DSPCH+7        ; Poling vector