home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / ref / map.100 < prev    next >
Text File  |  2006-10-19  |  15KB  |  450 lines

  1.                               Model 100 Memory Map
  2.  
  3.        Material in 'single quotes' represents ASCII text.
  4.        A "+" after a location indicates a 2-byte pointer.
  5.  
  6.  
  7. 0      (RST 0) JMP 32051
  8. 3      'Menu'
  9. 8      (RST 1) Test for special character and fall into RST 2.
  10. 16     (RST 2) Set pointer to next character of BASIC text. (JMP 2136)
  11. 24     (RST 3) Compare registers HL,DE directly.
  12. 32     (RST 4) PRINT ASCII contents of accumulator.
  13. 36     (TRAP) Handles power-down. User interface at 62978.
  14. 40     (RST 5) JMP 4201  Checks variable type.
  15. 44     (RST 5.5) JMP 62969
  16. 48     (RST 6) Returns sign of FAC1. (JMP 13276)
  17. 52     (RST 6.5) JMP 28076 (62972 RAM vector interface)
  18. 56     (RST 7) Executes routine indicated by next byte. (JMP 32767)
  19. 60     (RST 7.5) Updates timer, adjusts power-down values etc. (JMP 6962)
  20.        User can interface at 62975.
  21. 64     BASIC function addresses.
  22. 128    BASIC Keywords with high bit set in the first character of each word.
  23. 610    BASIC command addresses.
  24. 750    Table of BASIC addresses.
  25. 796    2-Byte error codes.
  26. 858    Initial values for pointers 62960-63103.
  27. 1003   'Error'
  28. 1010   'in'
  29. 1014   'ok'
  30. 1019   'Break'
  31. 1094   Syntax error. Entry points at 1100, 1103 .. 1115 for other errors
  32. 1117   Error message based on contents of E register.
  33. 1245   PRINTs error messages (accumulator holds a value from 28 to 58).
  34. 1520   Builds BASIC line pointers.
  35. 1576   Enter with DE containing a line number. Exit with BC containing the
  36.        location of the line, and HL the location of the next line.
  37.        The cary flag is used to indicate if the line already exists.
  38. 1606   Tokenize BASIC text.
  39. 1830   FOR
  40. 1899   TO
  41. 2112   BASIC command dispatcher; accumulator holds token.
  42. 2136   Set pointer to BASIC text.
  43. 2162   DEF (general)
  44. 2177   DEFDBL
  45. 2182   DEFINT
  46. 2198   DEFSNG
  47. 2207   DEFSTR
  48. 2267   FC error.
  49. 2283   Used by GOTO, GOSUB, and RUN to determine the 2-byte value of the line
  50.        (in ASCII) to branch to. The HL register points to the string of digits,
  51.        the 16-bit integer is returned in DE.
  52. 2319   RUN
  53. 2334   GOSUB
  54. 2358   GOTO
  55. 2381   Jump here if UL error.
  56. 2406   RETURN
  57. 2462   DATA
  58. 2464   REM,ELSE
  59. 2499   LET
  60. 2607   ON (general)
  61. 2812   ON ERROR
  62. 2736   RESUME
  63. 2831   ERROR
  64. 2842   IF
  65. 2894   LPRINT
  66. 2902   PRINT
  67. 3073   TAB(
  68. 3141   LINE (general)
  69. 3152   LINE INPUT
  70. 3188   '?Redo from start'
  71. 3225   INPUT #
  72. 3235   INPUT
  73. 3289   READ
  74. 3442   'Extra ignored'
  75. 3625   >,=,<
  76. 3926   ERL
  77. 3966   VARPTR
  78. 4072   If character in M is lowercase, the upper-case equivalent is returned
  79.        in the accumulator.
  80. 4236   OR
  81. 4247   AND
  82. 4258   XOR
  83. 4269   EQV
  84. 4277   IMP
  85. 4296   LPOS
  86. 4302   POS
  87. 4305   Store accumulator as low byte of 16-bit integer.
  88. 4352   INP
  89. 4364   OUT
  90. 4398   ASCII text (string/variable) converted to integer.
  91. 4411   LLIST
  92. 4416   LIST
  93. 4514   PRINTs from buffer until 0 byte is encountered.
  94. 4522   Put data into buffer until a 0 byte is reached.
  95. 4740   PEEK
  96. 4747   POKE
  97. 4811   Saves registers, waits for character of input, and restores registers.
  98. 4848   PASTE.
  99. 5029   Toggles the label line.
  100. 5138   Break routine.
  101. 5145   POWER
  102. 5169   Power off /Returns to program on power-up.
  103. 5201   Power off.
  104. 5209   POWER CONT
  105. 5225   Sets power-down values.
  106. 5288   Preliminary tape I/O routine.
  107. 5290   Called at the end of tape I/O.
  108. 5296   Returns byte from tape in the accumulator.
  109. 5313   Sends byte in the accumulator to tape.
  110. 6281   EOF
  111. 6404   TIME$
  112. 6436   DATE$
  113. 6485   DAY$
  114. 6520   ASCII of days stored here.
  115. 6553   Converts byte pointed to by DE to an ASCII digit.
  116.        Result placed in memory.
  117. 6571   TIME$ (as command assignment)
  118. 6589   DATE$ (as command assignment)
  119. 6641   DAY$  (as command assignment)
  120. 6647   MAXRAM
  121. 6776   IPL
  122. 6814   COM,MDM
  123. 6851   KEY ON/OFF/STOP
  124. 7096   KEY (general)
  125. 7101   KEY LIST
  126. 7136   PRINTs B; PRINTable-characters starting at address in HL.
  127. 7182   Defines function key.
  128. 7255   PSET
  129. 7270   PRESET
  130. 7277   LINE drawing routine.
  131. 7519   Subroutine for PRINT @
  132. 7568   CSRLIN
  133. 7579   MAX (general)
  134. 7602   MAXFILES
  135. 7609   HIMEM
  136. 7619   WIDTH
  137. 7621   SOUND (general)
  138. 7653   SOUND OFF
  139. 7654   SOUND ON
  140. 7660   MOTOR
  141. 7667   Turns motor on.
  142. 7669   Turns motor off.
  143. 7674   CALL
  144. 7714   SCREEN
  145. 7774   LCOPY
  146. 7994   FILES
  147. 8081   KILL
  148. 8247   NAME
  149. 8446   NEW
  150. 8832   CSAVE (general)
  151. 8856   CSAVEs current BASIC program.
  152. 8889   Sends the DE bytes starting at location in HL to tape.
  153. 8908   SAVEM
  154. 8925   CSAVEM
  155. 9079   CLOAD (general)
  156. 9235   Gets DE bytes from tape and stores them at the location pointed to by HL.
  157. 9302   CLOAD?
  158. 9345   'Verify failed'
  159. 9361   LOADM, RUNM
  160. 9383   CLOADM 
  161. 9538   Moves B bytes from address in HL to address in DE in a increasing manner.
  162. 9587   CLOADM?
  163. 9685   'Top End Exe'
  164. 9697   'Exe:'
  165. 9982   'Found'
  166. 9989   'Skip'
  167. 10042  STR$
  168. 10161  PRINTs message pointed to by HL. Message ends in quote or zero byte.
  169. 10444  String addition
  170. 10508  Moves L bytes from address in BC to address in DE (increasing).
  171. 10563  LEN
  172. 10575  ASC
  173. 10597  CHR$
  174. 10605  STRING$
  175. 10638  SPACE$
  176. 10667  LEFT$
  177. 10716  RIGHT$
  178. 10726  MID$
  179. 10759  VAL
  180. 10807  INSTR
  181. 11084  FRE
  182. 11113  FAC1
  183.        FAC1-FAC2.
  184. 11128  FAC1
  185.        FAC1+FAC2.
  186. 11519  FAC1
  187.        FAC1*FAC2.
  188. 11719  FAC1
  189.        FAC1/FAC2.
  190. 12006  Moves C bytes starting from address in HL to address in DE, in a
  191.        decreasing manner.
  192. 12015  COS
  193. 12041  SIN
  194. 12120  TAN
  195. 12145  ATN
  196. 12239  LOG
  197. 12378  SQR
  198. 12452  EXP
  199. 12606  RND
  200. 12686  MOVE FAC1 to 64633-64640.
  201. 12692  Adds memory to FAC1.
  202. 12698  Subtracts memory from FAC1.
  203. 12704  FAC1
  204.        FAC1*FAC1 (squares FAC1).
  205. 12707  Multiplies memory and FAC1.
  206. 12725  Moves FAC1 to FAC2.
  207. 12728  Moves number at address HL to FAC2.
  208. 12737  Moves FAC2 to FAC1.
  209. 12740  Moves number at address HL to FAC1.
  210. 12746  Moves FAC1 to address in HL.
  211. 12852  Saves FAC1 on the stack.
  212. 12892  Floating point constants.
  213. 12942  .25
  214. 12974  pi/2
  215. 12990  Square root of 3.
  216. 13015  1
  217. 13203  2*pi.
  218. 13289  ABS
  219. 13309  Negate FAC1.
  220. 13319  SGN
  221. 13417  Moves B bytes of memory from address in DE to address in HL in a
  222.        increasing manner.
  223. 13426  Moves B bytes of memory from address in DE to address in HL in a
  224.        decreasing manner.
  225. 13569  CINT
  226. 13610  CSNG
  227. 13754  CDBL
  228. 13893  FIX
  229. 13908  INT
  230. 14804  PRINTs the 16-bit integer stored in the register pair HL.
  231. 15743  MOD
  232. 15758  ^
  233. 16288  TIME$ ON
  234. 16306  TIME$ OFF
  235. 16313  TIME$ STOP
  236. 16393  Clears COM and TIME$ locations.
  237.        Clears KEY definitions and sets 63060 to 0.
  238. 16511  RESTORE
  239. 16538  STOP
  240. 16543  END
  241. 16602  CONT
  242. 16625  Determines if HL points to an alphabetic character letter.
  243. 16626  Determines if the accumulator contains an alphabetic character.
  244. 16633  CLEAR
  245. 16756  NEXT
  246. 16930  PRINTs CHR$(13)+CHR$(10)
  247. 16937  BEEP
  248. 16941  PRINTs CHR$(11)
  249. 16945  CLS
  250. 17001  Turns on reverse video.
  251. 17006  Turns off reverse video.
  252. 17008  PRINTs CHR$(27)+CHR$ of accumulator.
  253. 17034  Clears the label line.
  254. 17064  PRINTs label line.
  255. 17994  Puts input data into input buffer.
  256. 18315  DIM
  257. 18320  Get variable name and type.
  258. 18833  USING
  259. 19268  PRINTs ASCII character in accumulator.
  260. 19322  Sends byte in accumulaor to the printer.
  261. 19360  Sends carriage return to the printer.
  262. 19434  INKEY$
  263. 19659  OPEN
  264. 19824  LOAD
  265. 19825  MERGE
  266. 19919  SAVE
  267. 20008  CLOSE
  268. 20110  INPUT$
  269. 20558  Enter here or one of 20561, 20563...20579 in case of file errors
  270. 20591  LFILES
  271. 20593  DSKO$
  272. 20595  DSKI$
  273. 20725  'CRT CAS COM WAND LPT MDM RAM'
  274. 20806  TELCOM program.
  275. 20860  'Telcom'
  276. 20869  'STAT'
  277. 20874  'TERM CALL RFIND MENU'
  278. 20900  'Find Call Stat Term Menu'
  279. 20906  'x pps'
  280. 21060  'Calling'
  281. 21891  'Full Half Echo'
  282. 21909  'Wait'
  283. 22353  'File to Upload'
  284. 22368  'File to Download'
  285. 22385  'aborted'
  286. 22396  'No file'
  287. 22406  'Disconnect'
  288. 22417  PRINTs message. Sends a carriage return if not at start of line.
  289. 22423  MENU
  290. 22574  PRINTs number of free bytes.
  291. 22580  PRINTs 'Select:' and responds appropriately to input.
  292. 23128  PRINTs starting at address in HL until a zero byte is reached.
  293. 23164  Sets up function keys.
  294. 23273  Months stored in ASCII.
  295. 23312  'Microsoft'
  296. 23332  'Select:'
  297. 23366  Original key definitions stored here. FILES LOAD " SAVE " RUN LIST MENU
  298. 23400  ADDRSS (program)
  299. 23407  SCHEDL (program)
  300. 23450  PRINTs 'Not found press space bar for menu'
  301. 23758  ADRS.DO
  302. 23767  'Not found'
  303. 23852  'Call'
  304. 23920  PRINTs date and time at top of screen and updates it until a key is
  305.        pressed.
  306. 24046  TEXT (program)
  307. 24051  Requests a file to edit.
  308. 24085  'File to edit'
  309. 24106  'FIND LOAD SAVE COPY CUT  SEL            MENU'
  310. 24145  EDIT (program)
  311. 24367  Waits for a space keypress and then returns.
  312. 24376  'Text ill-formed'
  313. 24395  'Press space bar for TEXT'
  314. 24753  'Memory full'
  315. 26051  Moves memory starting at address in HL to address in DE until a 0 byte
  316.        is reached.
  317. 26062  'No Match'
  318. 26071  'String'
  319. 26380  'Width'
  320. 26421  'Save to:'
  321. 26579  'Load from:'
  322. 27611  Moves BC bytes from address in HL to address in DE increasing.
  323. 27636  'BASIC TEXT TELCOM ADDRSS SCHEDL Suzuki Hayashi'
  324. 27721  BASIC (as called from MENU)
  325. 27795  Temporarily saves the function keys.
  326. 27804  Restores the function keys.
  327. 29156  Adds a character to the keyboard buffer.
  328. 29250  Returns ASCII of keypress in the accumulator. Does not wait,
  329.        returns 0 if no keypress.
  330. 29381  SOUND routine. DE contains pitch and B contains duration.
  331. 29772  Turns on the pixel (x,y) where D contains x and E contains y.
  332. 29773  Turns off the pixel (x,y) where D contains x, and E contains y.
  333. 30326  Toggles the speaker.
  334. 30306  Equivalent to BEEP.
  335. 30481  Character set 5-bytes each.
  336. 31729  Keyboard matrix.
  337. 32051  Initialization.
  338. 32231  Initialize pointers (cold start).
  339. 32422  PRINTs TRS-80 logo.
  340. 32428  PRINTs number of free bytes.
  341. 32523  MAXFILES=
  342. 32664  ' bytes free'
  343. 32676  TRS-80 logo stored in ASCII.
  344. 32677  User RAM begins here.
  345. 62959  User RAM ends here.
  346. 62964+ HIMEM value.
  347. 62966  Code called at 32145 and 32197.
  348. 62969  RAM vector for RST 5.5.
  349. 62972  RAM vector for RST 6.5.
  350. 62975  RAM vector for RST 7.5.
  351. 62978  JMP 5169
  352. 62981  Code called at 32108 and 32292.
  353. 62991  Code called at 896.
  354. 63012  Code for optional ROM.
  355. 63024  8-bytes KEY ON/OFF flags; ON=1 OFF=0
  356. 63033  Vertical Print position 0 to 7.
  357. 63034  Next horizontal print position 0-39.
  358. 63035  Number of active lines 0-8.
  359. 63036  Number of active columns 0-40.
  360. 63037  Label line flag; 0=unused, 255=used.
  361. 63038  Inhibits return to first line if not zero.
  362. 63040  Cursor line.
  363. 63041  Horizontal print position.
  364. 63048  Reverse video if not zero.
  365. 63054  x-pixel set.
  366. 63055  y-pixel set.
  367. 63063  Power-down value (constant).
  368. 63070  Code to 63078
  369. 63079  OUT/IN self-modifying code.
  370. 63090  Error code
  371. 63092  Value of LPOS
  372. 63093  Output flag; 0=display, 1=printer.
  373. 63096+ Top of available RAM.
  374. 63098+ Current BASIC line number; 65535 stored here if no program is running.
  375. 63100+ Start of current BASIC program text.
  376. 63104  End of statement marker (: OR 0).
  377. 63105  Multi-purpose buffer area. Tokenized text starts at 63105.
  378.        Input buffer tarts at 63109 and extends to 63362.
  379. 63368  Value of POS
  380. 63369  Function key definitions currently being used. (extends to 63497)
  381. 63498  Function key defintions used by BASIC. (extends to 63626)
  382. 63628+ Pointer to start of PASTE text.
  383. 63639  Work area/temporary storage.
  384. 63785  Day of month low digit, high digit in 63786
  385. 63787  Current day of the week, e.g. 3=Wed.
  386. 63788  Current Month - decimal 1-12
  387. 63789  Current year stored with low decimal value here and high decimal value
  388.        in 63790
  389. 63791  Timer; decreases from 125 to 0.
  390. 63792  Timer; decreases from 12 to 0.
  391. 63793  Power-down countdown value (varies).
  392. 63795  The computer stores the current time starting here with the low digit
  393.        of the number of seconds. A numerical value - not ACSII.
  394. 63796  The high digit of number of seconds.
  395. 63797  The low digit of number of minutes.
  396. 63798  Time and date continue here with one decimal value per location
  397. 63805  6-byte value of TIME$ for ON TIME$ statement (in reverse order)
  398. 63812  COM ON/OFF flag.
  399. 63813+ Address of COM ON routine.
  400. 63815  TIME$ ON/OFF flag.
  401. 63816+ Address of TIME$ ON routine.
  402. 63818  ON/OFF flag and routine address of function keys; 3 bytes per key
  403.        (extends to 63841).
  404. 63842  Files in the format: address, 6-character name, 2-byte extension.
  405. 63898+ Address of BASIC program that has not been saved to RAM. (Suzuki)
  406. 63909+ Address of the end of documents. (Hayashi)
  407. 64173  Label line enable flag; enabled if not zero.
  408. 64175  Name of IPL program.
  409. 64190+ Used for temporary storage of stack pointer.
  410. 64208+ Length of CLOADed/CSAVEd program.
  411. 64357  BASIC variable type.
  412. 64404+ Line number of active DATA statement.
  413. 64409+ Location of BASIC variable for assignment statement.
  414. 64411+ Start of current BASIC statemen
  415. 64413+ 2 less than value in 63096-63097
  416. 64415+ Line where error occured.
  417. 64417+ Most recently entered/listed line.
  418. 64419+ Location of statement where error occured.
  419. 64421+ Location of ON ERROR GOTO line
  420. 64423  Error status flag
  421. 64424+ End of BASIC expression.
  422. 64426+ Line where Break occured.
  423. 64428+ Location after error (contains 0 or 58).
  424. 64430+ Start of documents.
  425. 64434+ Start of Variables.
  426.        The region from 64536 to 64640 is used for floating point computations.
  427. 64536  FAC1 (floating point accumulator) 8-bytes.
  428. 64617  FAC2 (floating point accumulator) 8-bytes.
  429. 64642  Maxfiles.
  430. 64659  Name of current BASIC program, 6-bytes.
  431. 64668  Name of program loaded from tape, 6-bytes.
  432. 64904  Start of DATE$ and TIME$ stored in ASCII. Used for MENU Display.
  433.        Not used for TIME$.
  434. 65024  Start of screen memory.
  435. 65348  Sound Flag 0=on, 175=off
  436. 65349  Cassette on/off flag.
  437. 65424  Holds the value 2 as long as a noncontrol key is held down.
  438. 65429  Devoted to the number keys. Also uses location 65430
  439. 65431  Bits are set here according to which of the following keys are pressed:
  440.        SPACE,DEL,TAB,ESC,PASTE,LABEL,PRINT,ENTER.
  441. 65432  Pressing a function key sets the corresponding bit in this location.
  442. 65441  Behaves like 65432.
  443. 65442  The following keys set bits in this location:
  444.        SHIFT,CTRL,GRPH,CODE,NUM,CAPS LOCK.
  445. 65446  Code (not ASCII) for most recently pressed key.
  446. 65450  Number of characters in keyboard buffer.
  447. 65451  Keyboard buffer (32 byte maximum). Odd bytes contain ASCII values.
  448.        A 255 in an even byte indicates a function key.
  449. 65515  Used to store 5-byte character code.
  450.