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 / MBUG / MBUG058.ARC / MEMMAP.WBF < prev    next >
Text File  |  1979-12-31  |  30KB  |  732 lines

  1.  
  2. .PL#62
  3. .PG#4
  4. .LL#80
  5. .LS#2
  6.  
  7.  
  8.  
  9.  
  10. .ES
  11. 27 64 27 14 27 69
  12. .LS#1
  13.      M i c r o B e e  16K , 32K , 64K
  14.  
  15. .LS#5
  16.                               M E M O R Y   M A P             1 MAY 1984
  17. .PN#1
  18. .LS#2
  19.                                    I N D E X
  20. .ES
  21. 27 77
  22. .HE
  23. Dec     Hex     Description
  24. .LM#8
  25.              Start Address                     Page
  26.           DEC            HEX
  27.             0           0000                    1
  28.           210           00D2                    2
  29.           233           00E9                    3
  30.           273           0111                    4
  31.           512           0200                    5
  32.           801           0321                    6
  33.          2240           08C0                    7
  34.          2283           08EB                    8
  35.         32768           8000 (BASIC)            9
  36.         32828           803C                    10
  37.         36916           9034                    11
  38.         39828           9B94                    12
  39.         42250           A50A                    13
  40.         43773           AAFD                    14
  41.         47821           BACD                    15
  42.         57089           DF01 (BOOT ROM SCRATCH) 16
  43.         57344           E000 (BOOT ROM )        17
  44.         57419           E04B                    18
  45.         57344           E000 (NET)              19
  46.         61440           F000 (SCREEN)           20
  47.  
  48.  
  49. .LS#2
  50. 000     0000    Hash table - 128 bytes
  51. 128     0080    Interrupt vectors - ctcv1 - 4 * 2 bytes
  52. 136     0088    PIO interrupt vectors - piov1 - 2 bytes
  53. 138     008A    Function name "piov2" - 2 bytes
  54. 140     008C    Break key: 0=enable, 1=disable
  55. .LS#1
  56. 141     008D    Disable LIST=1. Use in context:
  57.                 IF PEEK(140)=0 THEN POKE 141,1
  58. .LS#2
  59.                 Note: once disabled,POKE cannot be used to reset.
  60. 142     008E    Reserved
  61. 160     00A0    Top of memory pointer - 2 bytes
  62. .LS#1
  63. 162     00A2    Warm start jump address - 2 bytes
  64.                 Auto-run on  RESET - POKE 162,30:  163,128
  65.                 Auto-list on RESET - POKE 162,190: 163,133
  66.                 Reset  to    BASIC - POKE 162,33:  163,128
  67.                 Reset  to      NET - POKE 162,6:   163,224
  68. .LS#2
  69.                 Reset  to  WORDBEE - POKE 162,6:   163,192
  70. 164     00A4    Initial check bytes - 2 bytes - 55AA if initialised
  71. 166     00A6    Machine code EXEC address - 2 bytes
  72. 168     00A8    PAK/MEM   jump vector - 3 bytes
  73. 171     00AB    NET   jump vector - 3 bytes
  74. 174     00AE    EDASM jump vector - 3 bytes
  75. 177     00B1    Reserved - 1 byte
  76. .LS#1
  77. 178     00B2    Output device vector table - 2 * 8 bytes
  78.                 Normal video  O/P: 00B2,00B3 = 2F A6
  79.                 Parallel  printer: 00B4,00B5 = 48 01
  80.                 RS232 @ 300  baud: 00BA,00BB = 48 01
  81. .LS#2
  82.                 RS232 @ 1200 baud: 00BC,00BD = 48 01
  83. 194     00C2    Input device vector table - 2 * 8 bytes
  84. .NP
  85. 210     00D2    6545 R0 Total # of Horiz chars (Determines horiz sync freq)
  86. 211     00D3    6545 R1 Total # of displayed chars per line
  87. 212     00D4    6545 R2 Pos of horiz sync pulse on line
  88. 213     00D5    6545 R3 Vert and horiz sync widths (2 nibbles)
  89. 214     00D6    6545 R4 Vert total rows per screen -1
  90. 215     00D7    6545 R5 Vert total line adjust
  91. .LS#1
  92. 216     00D8    6545 R6 Total # of vert displayed rows
  93.                 POKE 216,17:USR(32768) = 17 lines
  94.                 POKE 216,16:USR(32768) = 16 lines
  95.  
  96. 217     00D9    6545 R7 Vert sync position
  97.  
  98. 218     00DA    6545 R8 Mode control register
  99.                 POKE 218,75 :USR(32768) = 32 lines
  100.                 POKE 218,72 :USR(32768) = 16 lines
  101.  
  102. 219     00DB    6545 R9 # of scan lines per character
  103.  
  104. 220     00DC    6545 R10 Cursor start/control
  105.                 POKE 220,0    inverse full block
  106.                 POKE 220,1    steady full block
  107.                 POKE 220,12   inverse quarter block
  108.                 POKE 220,15   steady underline
  109.                 POKE 220,64+  flash at 3.3 Hz
  110.                 POKE 220,80   clear cursor
  111.                 POKE 220,96+  flash at 1.6 Hz
  112.                 POKE 220,111  enable normal (default) cursor
  113.  
  114. 221     00DD    6545 R11 Cursor end line
  115.  
  116. 222     00DE    6545 R12 Display start address (high)
  117.  
  118. 223     00DF    6545 R13 Display start address (low)
  119.  
  120. 224     00E0    6545 R14 Cursor position (high)
  121.  
  122. 225     00E1    6545 R15 Cursor position (low)
  123.  
  124. 226     00E2    Output device byte
  125.  
  126. .LS#2
  127. 227     00E3    List output device byte
  128. 228     00E4    Input device byte
  129. 229     00E5    Video mode control byte
  130. 230     00E6    Output speed byte
  131. 231     00E7    PCG characters used
  132. 232     00E8    PLOT type - I,R or S
  133.  
  134. .LS#1
  135. 233     00E9    Tape speed: 1=1200, 4=300 baud
  136. .LS#2
  137.                 (Use 0321H to change speed when dumping via DF75)
  138. 234     00EA    RS232 speed: 1=1200, 0=300 baud
  139. .LS#1
  140. 235     00EB    Is shared scratch - graphics plot/tape routines
  141. .LS#2
  142.                 PLOT tape buffer & required load name to match
  143. 241     00F1    Tape header buffer for BASIC - 6 bytes
  144. 247     00F7    File type character - 1 byte
  145. 248     00F8    Length of file - 2 bytes
  146. 250     00FA    Normal starting address - 2 bytes
  147. 252     00FC    Auto exec: jump here if 00FF > 00 - 1 byte
  148. 254     00FE    File speed: 300 baud = 00, 1200 baud > 00 - 1 byte
  149. 255     00FF    File exec: auto > 00 - 1 byte
  150. 256     0100    File protect byte - 1 byte
  151. .LS#1
  152. 257     0101    Shift lock: 0 = lower case, 1 = upper case
  153. .LS#2
  154.                             2 = upper case with SHIFT LOCK disabled - 1 byte
  155. .LS#1
  156. 258     0102    Keyboard auto repeat delay: 52 = on, 255 = off - 1 byte
  157.                 PEEK (258) returns a key (as opposed to ASCII) value
  158.                 which is case insensitive. The values are:
  159.                 @       0       a - z   1-26    [ \ ]   27-29
  160.                 ^       30      Delete  31      0 - 9   32-41
  161.                 : ; ,   42-44   - . /   45-47   Escape  48
  162.                 Back Sp 49      Tab LF  50-51   Return  52
  163. .LS#2
  164.                 Lock    53      Break   54      Space   55
  165. 259     0103    Keyboard debounce delay & repeat key speed - 2 bytes
  166. 261     0105    Defines if retrace or not at last look - 1 byte
  167. 262     0106    ASCII value of last key pressed - 1 byte
  168. 263     0107    Keeps ASCII value for KEY$ use - 1 byte
  169. 264     0108    For port A keyboard - 1 byte
  170. .LS#1
  171. 265     0109    Zero if parallel port out is usable - 1 byte
  172. .LS#2
  173.                 (parallel device "handshake" byte)
  174. 266     010A    No. of bytes in cassette redirect buffer - 1 byte
  175. 267     010B    CURS position address F000+ - 2 bytes
  176. 269     010D    NZ if last screen char was ESC - 1 byte
  177. 279     010E    Save TEXT pointer in graphics - 2 bytes
  178. 272     0110    Let List-Line do inverse - 1 byte
  179. 273     0111    List buffer size: initialised as B8 by NEW
  180. 274     0112    Save text pointer in graphics
  181. 276     0114    Auto storage - 2 bytes
  182. 278     0116    RENUM scratch - 2 bytes
  183. 280     0118    Save start of REAL number - 2 bytes
  184. 282     011A    Random number seed - 16 bytes
  185. 298     012A    LOAD options :0 = LOAD or SAVE, 1 = LOAD?, 2 = LOADU
  186. 299     012B    PCG storage - 1 byte
  187. 300     012C    Function name "vdu addr" - 2 bytes
  188. 302     012E    Function name "new char" - PCG chars - 16 bytes
  189. 318  ?  013E    Save text pointer
  190. 320     0140    Start of currently executing statement - 2 bytes
  191. 322     0142    ON ERROR := Line number if active - 2  bytes
  192. 324     0144    ERRORC : Which error message
  193. 325     0145    ERRORL : Status of last error - 2 bytes
  194.                                 NET SCRATCH AREA
  195. 328     0148    NET ROM flag = 0 if not initialised
  196. 329     0149    When reading from IN#7, incoming byte is added to this location
  197. 336     0150    80 * 24 CRTC table - 16 bytes
  198. 352     0160    16 bit RS232 queue handling pointers
  199. .LS#1
  200. 360     0168    NET format bytes. Can be POKEd for formats other than
  201. .LS#2
  202.                 the 4 provided.. No. of data bits (7 or 8)
  203. 361     0169    NET parity: 1 = no parity, 2 = odd, 3 = even
  204. 365     016D    NET txrx controller address
  205. 368     0170    NET address to dump to/load from - 2 bytes
  206. 370     0172    NET current file length - 2 bytes
  207. 372     0174    Max. size file to load - 2 bytes
  208. .LS#1
  209. 374     0176    Load status. = 0 if no load took place, = 1 if successful, = 2
  210.                 if bad load. Valid after NETLOAD, not after function at E019
  211. .LS#2
  212.                 Up to 01FF inclusive is NET RS232 input buffer
  213. .NP
  214.                               EDASM SCRATCH LAYOUT
  215. 512     0200    Pointer to currently open primary file - 2 Bytes
  216. 522     0228    Secondary file open flag
  217. 553     0229    Secondary file start pointer  - 2 bytes
  218. 555     022B    Secondary file end pointer - 2 bytes
  219. 557     022D    Current line pointer - 2 bytes
  220. 559     022F    End of memory pointer. Set up on entry to Editor - 2 bytes
  221. 561     0231    End of file pointer (points to first FF) - 2 bytes
  222. 562     0233    Step size between line numbers - 1 byte
  223. 579     0243    General purpose buffer - 128 bytes
  224. 708     02C4    Pointer to current character being accessed on buffer - 2 bytes
  225. 710     02C6    Size of line currently in buffer
  226. 724     02D4    Count of number of errors during assembly - 2 bytes
  227. 726     02D6    Suppress listing under NL switch etc. - 2 bytes
  228. 728     02D8    Contains >0 if output is to printer, not screen
  229. .LS#1
  230. 735     02DF    Pointer to bottom of Symbol Table, only valid after
  231. .LS#2
  232.                 completion of an assembly
  233. 737     02E1    If NZ then suppress line numbers on printout
  234. .LS#1
  235. 738     02E2    Editor file initialized flag. Will create a null at the default
  236. .LS#2
  237.                 file address if this is not set to 55 on entry to Editor
  238. 745     02E9    Current value dafault radix - 1 byte
  239. 746     02EA    Reserved for line number of printouts - 1 byte
  240. 747     02EB    Reserved for page number of printouts
  241. 752     02F0    Assembler switch storage scratch - 6 bytes
  242. 759     02F7    Tape name compare buffer - 16 bytes
  243. 775     0307    Tape header buffer for EDASM monitor - 6 bytes
  244. 788     0314    Filename - 6 bytes
  245. 794     031A    Filetype - 1 byte
  246. 795     031B    Length of file - 2 bytes
  247. 797     031D    Load address - 2 bytes
  248. 799     031F    Execute address - 2 bytes
  249. 801     0321    Speed byte: 00 = 300, 01 = 1200 baud
  250. 802     0322    Autostart on FF - 1 byte
  251. 803     0323    Spare byte
  252. 805     0325    EDASM return address stack - 128 bytes
  253. 932     03A4    START of stack
  254.                                END EDASM SCRATCH AREA
  255. 1280    0500    Real variables pointer table - 208 * 2 bytes
  256.  
  257.                                WORD-BEE SCRATCH LAYOUT
  258. 1280    0500    Initialisation flag
  259. 1299    0513    Top of memory pointer - 2 bytes
  260. 1303    0517    Start of file pointer - 2 bytes
  261. 1309    051D    End  of  file pointer - 2 bytes
  262. 1335    0537    Filename - 6 bytes
  263. 1341    053D    Filetype - 1 byte
  264. 1342    053E    Length of file - 2 bytes
  265. 1344    0540    Load address - 2 bytes
  266. 1346    0542    Execute address - 2 bytes
  267. 1348    0544    Speed byte: 00 = 300, 01 = 1200 baud
  268. 1349    0545    Autostart on FF - 1 byte
  269. 1350    0546    Spare byte
  270. 1351    0547    Header checksum
  271. 1392    0570    Location of cursor in monitor mode - 2 bytes
  272. 1395    0573    Address of Monitor initial entry e.g E or A comand
  273.                            END OF WORD=BEE SCRATCH AREA
  274.  
  275. 1712    06B0    Interger variables pointer table - 26 * 2 bytes
  276. 1764    06E4    FN0 to FN7  Address - 8 * 2 bytes
  277. 1832    072A    208 char Input/Program line buffer (till 07E0)
  278. 2048    0800    192 char Output buffer
  279.  
  280.                   BASIC PROGRAM INFO (This is saved to tape)
  281. 2240    08C0    Number of sig. digits (must be <62) - 1 byte
  282. 2241    08C1    Function name "fw" - 1 byte
  283. 2242    08C2    Function name "dp" - 1 byte
  284. 2243    08C3    Function name "tmp1" - 2 bytes
  285. 2245    08C5    Function name "tmp2" - 2 bytes
  286. 2247    08C7    Function name "count" - Line size - 2 bytes
  287. 2248    08C8    Undefined function - 1 byte
  288. 2249    08C9    Function name "auto" - 1 byte
  289. 2250    08CA    Function name "crib1" - Current line - 2 bytes
  290. 2252    08CC    Function name "tmp3" - 2 bytes
  291. 2254    08CE    Function name "tmp4" - Top of string pointer -  2 bytes
  292. 2256    08D0    Program begin pointer - 2 bytes
  293. 2258    08D2    Program end pointer at 2nd FF - 2 bytes
  294. 2260    08D4    FOR...NEXT stack pointer - 2 bytes
  295. 2262    08D6    Output pointer - 2 bytes
  296. 2264    08D8    Next available variable location pointer - 2 bytes
  297. 2266    08DA    Function name "tmpa" - 2 bytes
  298. 2268    08DC    Next available string variable location pointer - 2 bytes
  299. 2270    08DE    Function name "xswe" - 1 byte
  300. 2271    08DF    Function name "xsw1" - 1 byte
  301. 2272    08E0    Function name "prmt" - PRMT Char - 1 byte
  302. 2273    08E1    Function name "sprmt" - System PRMT Char `>' - 1 byte
  303. 2274    08E2    Function name "tmpc" - Line size - 1 byte
  304. 2275    08E3    Function name "zone" - Zone width - 1 byte
  305. 2276    08E4    Function name "mode" - Variable key - 1 byte
  306. 2277    08E5    Function name "tmpd" - 2 bytes
  307. 2279    08E7    Function name "tmpb" - 2 bytes
  308. 2281    08E9    Function name "dloc" - Data pointer - 2 bytes
  309. 2283    08EB    Function name "flags" - 1 byte
  310. 2284    08EC    Function name "lims" - Lower limit of string area - 2 bytes
  311. 2286    08EE    Function name "autstp" - AUTO Increment - 1 byte
  312. 2287    08EF    Function name "autln" - AUTO Line Number - 2 bytes
  313. 2289    08F1    Function name "tmp8" - 2 bytes
  314. 2291    08F3    Function name "tmp9" - 2 bytes
  315. 2293    08F5    Function name "ptrps" - 2 bytes
  316. 2295    08F7    Default for EDIT - 2 bytes
  317. 2297    08F9    Function name "tmpf" - 2 bytes
  318. 2299    08FB    GOSUB stack pointer - 1 byte
  319. 2300    08FC    PRINT/LPRINT flag: 1 = screen, 0 = printer, Bit 7 set =TRACE
  320. 2301    08FD    CONT Line number - 2 bytes
  321. 2304    0900    Start of BASIC program or WORD-BEE File (0D)
  322.                 BASIC program info
  323.         0900    Line number MSB
  324. 2305    0901    Line number LSB
  325. 2306    0902    Number of BYTES in line - 1 byte
  326. 2307    0903    The rest of the info in the line starts here and ends with 0D
  327. 16128   3F00    Stack/top of strings for 16K
  328. 16383   3FFF    End of RAM in 16K
  329. 32512   7F00    Stack/top of strings for 32K
  330. 32767   7FFF    End of RAM in 32K
  331. .NP
  332.                               START OF BASIC ROMS
  333. 32768   8000    BASIC return - warm start if 00A4 = 55AA. Start of "A" ROM
  334. 32771   8003    BASIC warm start
  335. 32774   8006    ASCII value of key pressed in A register. Destroys AF pair
  336. 32777   8009    NZ with ASCII in A if key is pressed, else = 0. Destroys AF
  337. 32780   800C    Display char. in B register. Nothing destroyed
  338. 32783   800F    A call here has no effect. Included for DGOS compatibility
  339. .LS#1
  340. 32786   8012    Returns 8 bit value of next cassette byte in A. Read format is
  341.                 Kansas City Standard. Must be used in a continuous fashion for
  342.                 reliable data transfer.Set tape speed in 00E9 before calling
  343. .LS#2
  344.                 here. AF is destroyed
  345. .LS#1
  346. 32789   8015    Returns block of checksummed data at (HL), end of block+1
  347. .LS#2
  348.                 in HL, total bytes left in DE. Destroys BC
  349. .LS#1
  350. 32792   8018    Writes the 8 bit value in A to cassette. Speed is required
  351.                 to have been preset at 00E9. Delay between calls here
  352.                 should be less than 1/1200 second otherwise rubbish may
  353. .LS#2
  354.                 appear. Nothing is destroyed
  355. 32795   801B    Writes a block at (HL) for length B with checksum at end
  356. 32798   801E    Auto-execute address for saving BASIC programs
  357. 32801   8021    Warm boot to BASIC from Monitor
  358. .LS#1
  359. 32804   8024    PCG scratchpad initialization with CLS. Same effect as if
  360. .LS#2
  361.                 HIRES command had been given
  362. 32807   8027    Sets PCG with LORES chunky graphics
  363. .LS#1
  364. 32810   802A    INVERSE initialization. Fills PCG with black on white
  365.                 characters and then sets 00E5 to indicate this mode.
  366. .LS#2
  367.                 Destroys AF, BC and HL
  368. .LS#1
  369. 32813   802D    Generates UNDERLINEd characters to be put into PCG
  370. .LS#2
  371.                 then sets 00E5 to show this. Destroys AF, BC and HL
  372. .LS#1
  373. 32816   8030    SET dot: X co-ordinate in HL, Y co-ordinate in DE. Returns Z
  374.                 if successful, otherwise NZ if co-ordinates are out of
  375. .LS#2
  376.                 range or PCG is full
  377. .LS#1
  378. 32819   8033    RESET dot returns Z if successful, NZ if co-ordinates
  379. .LS#2
  380.                 are out of range or PCG is full
  381. 32822   8036    INVERT dot...returns Z etc. as for 8033
  382. .LS#1
  383. 32825   8039    Test dot...returns Z etc. as for 8033. Note that no
  384.                 distinction is made between co-ordinates out of range
  385. .LS#2
  386.                 and dot set conditions
  387. .LS#1
  388.  
  389. 32828   803C    Performs SET, RESET OR INVERT in current graphics mode
  390.                 at best approximation points to the X and Y co-ordinates
  391. .LS#2
  392.                 as specified
  393. .LS#1
  394. 32831   803F    Allows access to all BASIC input devices normally available
  395. .LS#2
  396.                 through IN#n command
  397. 32834   8042    OUT#n equivalent of 803F
  398. 32837   8045    Redirected printer out A register
  399. 32840   8048    Jump to BASIC and clear all variables
  400. 32843   804B    Jump to BASIC without clearing variables
  401. 32846   804E    Jump to BASIC after NET or MEM and continue running
  402. 32849   8051    Checks buffer for valid line to INSERT
  403. 32852   8054    INSERT new line in Program
  404. 32855   8057    Line into list buffer
  405. 32908   808C    Print "?"
  406. 32912   8090    Print a space
  407. 32914   8092    Display char. in A register on printer or screen
  408. 33092   814A    Sends <CR>;<LF> to console device
  409. 33751   83D7    RUN jump vector
  410. .LS#1
  411. 33908   8474    BASIC interpreter routine which takes token in A and returns
  412. .LS#2
  413.                 corresponding jump vector in the HL
  414. 33934   848E    Clear variables
  415. 34052   8504    Check key pressed with <RESET>
  416. 34071   8517    Monitor to BASIC warm start
  417. 34074   851A    Return to BASIC without corrupting E2 or E4
  418. 34091   852B    Clear first 900 hex bytes
  419. 34104   8538    Initialise keyboard code
  420. 34109   853D    Initialise vectors
  421. 34151   8567    Find top of memory
  422. 34183   8587    NEW jump vector
  423. 34215   85A7    Initialise 6545 registers with (HL) - 16 bytes
  424. 34230   85B6    LLIST jump vector
  425. 34238   85BE    LIST jump vector
  426. 36916   9034    LET jump vector
  427. 36938   904A    LPRINT jump vector
  428. 36946   9052    PRINT jump vector
  429. 38009   9479    IF jump vector
  430. 38044   949C    GOTO jump vector
  431. 38381   95ED    FOR jump vector
  432. 38590   96BE    NEXT jump vector
  433. 38814   979E    INPUT jump vector
  434. 38950   9826    DATA jump vector
  435. 39015   9867    READ jump vector
  436. 39090   98B2    DIM jump vector
  437. 39289   9979    END jump vector
  438. 39295   997F    STOP jump vector
  439. 39340   99AC    Print (on printer) text pointed to by HL register
  440. .LS#1
  441. 39368   99C8    Sundry expressions & print statements jump vector
  442. .LS#2
  443.                 (Note: will result in "syntax error" message)
  444. 39371   99CB    POKE jump vector
  445. 39398   99E6    OUT jump vector
  446. 39530   9A6A    SD jump vector
  447. 39550   9A7E    RESTORE jump vector
  448. 39582   9A9E    PRMT jump vector
  449. 39596   9AAC    CLEAR jump vector
  450. 39627   9ACB    IN jump vector
  451. 39662   9AEE    INT jump vector
  452. 39672 ? 9AF8    ZONE jump vector
  453. 39674   9AFA    PEEK jump vector
  454. 39683   9B03    USR jump vector
  455. 39720   9B28    LEN jump vector
  456. 39753   9B49    ABS jump vector
  457. 39773   9B5D    RND jump vector
  458. 39828   9B94    FLT jump vector
  459. 39861   9BB5    FRE jump vector
  460. 39901   9BDD    SQR jump vector
  461. 40034   9C62    GOSUB jump vector
  462. 40105   9CA9    RETURN jump vector
  463. 40126   9CBE    VAR jump vector
  464. 40174   9CEE    FRACT jump vector
  465. 40200   9D08    SGN jump vector
  466. 40300   9D6C    SEARCH jump vector
  467. 40360   9DA8    STRS jump vector
  468. 40387   9DC3    VAL jump vector
  469. 40562   9E72    SIN jump vector
  470. 40659   9ED3    COS jump vector
  471. 40678   9EE6    ATAN jump vector
  472. 40797   9F5D    LOG jump vector
  473. 40939   9FEB    EXP jump vector
  474. 41095   A087    ON jump vector
  475. 41265   A131    TRACE jump vector
  476. 41322   A16A    CONT jump vector
  477. 41366   A196    POS jump vector
  478. 41382   A1A5    ASC jump vector
  479. 41399   A1B7    FN jump vector
  480. 41429   A1D5    REM jump vector
  481. 41667   A2C3    EDIT jump vector
  482. 41870   A38E    Print (on screen) text pointed to by HL register
  483. 41941   A3D5    Parallel port input vector
  484. 41961   A3E9    Keyboard input vector
  485. 41971   A3F3    Test for key repeat 14 times
  486. 42238   A4FE    Test shift key
  487. 42244   A504    Test control key
  488. 42250   A50A    Test if key pressed: Z flag = 1, else = 0
  489. 42434   A5C2    Line input of text
  490. 42523   A61B    CLS jump vector
  491. 42541   A62D    Call address to print a space
  492. 42543   A62F    Screen out - A register
  493. 42724   A6E4    Shift screen
  494. 42772   A714    PLAY jump vector
  495. .LS#1
  496. 42847   A75F    Entry for extended (0-255) tone generator
  497. .LS#2
  498.                 B = pitch (8 bits), HL = duration (16 bits)
  499. 42887   A77D    SPEED jump vector
  500. 42894   A78E    Set cursor position
  501. 42925   A7AD    Turn off cursor
  502. 42936   A7B8    NORMAL jump vector
  503. 42944   A7C0    PCG jump vector
  504. 42952   A7C8    UNDERLINE jump vector
  505. 43003   A7FB    INVERSE jump vector
  506. 43052   A82C    RS232 input stream - 300 baud
  507. 43057   A831    RS232 input stream - 1200 baud
  508. 43130   A87A    RS232 output stream - 300 baud
  509. 43135   A87F    RS232 output stream - 1200 baud
  510. 43212   A8CC    Get program name
  511. 43234   A8E2    Compare program names
  512. 43260   A8FC    Display `*' during LOAD
  513. 43284   A914    SAVE jump vector
  514. 43382   A976    LOAD jump vector
  515. 43407   A98F    Get desired program
  516. 43639   AA77    EXEC jump vector
  517. 43682   AAA2    Beep
  518. 43723   AACB    Reads 16 nulls + `1' and header from tape. Destroys A and BC
  519. 43768   AAF8    Introduces long non-variable time delay. Destroys A, BC and HL
  520. .LS#1
  521. 43773   AAFD    Introduces a variable time delay. Load HL and B with
  522. .LS#2
  523.                 required values. Destroys A, BC and HL
  524. .LS#1
  525. 43781   AB05    Writes 64 nulls + `1' and header information to tape.
  526.                 Requires header information set up at 00E9 and 00F1 to 00FF.
  527. .LS#2
  528.                 This destroys all registers
  529. 43841   AB41    2400 hertz out
  530. 43875   AB63    1200 hertz out
  531. 43980   ABCC    300 baud cassette output vector
  532. 43987   ABD3    1200 baud cassette output vector
  533. 44100   AC44    300 baud cassette input vector
  534. 44104   AC48    1200 baud cassette input vector
  535. 44215   ACB7    CURS jump vector
  536. 44255   ACDF    AUTO jump vector
  537. 44379   AD5B    HIRES jump vector
  538. 44385   AD61    SET jump vector
  539. 44401   AD71    RESET jump vector
  540. 44409   AD79    INVERT jump vector
  541. 44417   AD81    POINT jump vector
  542. 44550   AE06    USED jump vector
  543. 44952   AF98    LORES jump vector
  544. 45152   B060    PLOT jump vector
  545. 45595   B21B    RENUM jump vector
  546. 46256   B4B0    DELETE jump vector
  547. 46355   B513    GX jump vector
  548. 46584   B5F8    Parallel printer LLIST output stream
  549. 46609   B611    EDASM jump vector
  550. 46617   B61C    MEM/NET jump vector
  551. 46647   B637    ERROR jump vector
  552. 47196   B85C    Power-up message: "Applied Technology " etc
  553. 47674   BA3A    Start of BASIC default values in version 5.10
  554. 47738   BA7A    Start of BASIC default values in version 5.22e - 63 bytes
  555. 47821   BACD    Start of initial set of values for 6545 registers;D2 to E1
  556. 47844   BAE4    Sound frequency data
  557. 48628   BDF4    Reset/Control sequences
  558. 48646   BE06    Jump to Monitor (if fitted)
  559. 48651   BE11    Self-test on BASIC 5.10
  560. 49144   BFF8    Machine serial number - 3 bytes
  561. 49152   C000    EDASM/WORDBEE if fitted
  562.                                 EDASM ROUTINES
  563. 49152   C000    Cold start
  564. 49155   C003    Monitor entry
  565. 56018   DAD2    Monitor cold start- stack = 03A4
  566. 56043   DAEB    Monitor warm start
  567. .LS#1
  568. 56504   DCB8    Displays contents of HL at location pointed to by DE. Place
  569.                 value for display in HL - screen address for display in DE.
  570. .LS#2
  571.                 Destroys A and BC
  572. .LS#1
  573. 56509   DCBD    Displays contents of A at location pointed to by DE. Place
  574.                 value for display in A - screen address for display in DE.
  575. .LS#2
  576.                 Destroys A and BC
  577. 56937   DE69    Load a file ( R <CR>)
  578. .LS#1
  579. 57205   DF75    Write memory to cassette out at existing speed
  580. .LS#2
  581.                 To change speed, alter 0321
  582.                                 WORD-BEE ROUTINES
  583. 49152   C000    Cold start
  584. 49153   C003    Monitor entry point
  585. 49162   C00C    CRC Check - Sum of C00E to DFF7 hex
  586. 53242   CFFA    = DCB8 in EDASM
  587. 53247   CFFF    = DCBD in EDASM
  588. 53345   D061    Monitor cold start - stack = 07E1
  589. 53370   D07A    Monitor warm start
  590. 54220   D3CC    Load a file ( R <CR> )
  591. .LS#1
  592. 54477   D4CD    Write memory to cassette out at existing speed
  593. .LS#2
  594.                 To change speed, alter 0544
  595. 57337   DFF9    Location of WORDBEE ID numbers - 2 bytes
  596.                               BOOT ROM SCRATCH DETAILS
  597. 57089   DF01    Cursor position in E or A mode
  598. 57111   DF17    Filename - 6 bytes
  599. 57117   DF1D    Filetype - 1 byte
  600. 57118   DF1E    Length of file - 2 bytes
  601. 57120   DF20    Load address - 2 bytes
  602. 57122   DF22    Execute address - 2 bytes
  603. 57124   DF24    Speed byte: 00 = 300, 01 = 1200 baud
  604. 57125   DF25    Autostart on FF - 1 byte
  605. 57126   DF26    Spare byte
  606. 57157   DF45    3 bytes which allow a linkage to expand the VDU driver
  607. 57160   DF48    PIO channel A interrupt vector word
  608. 57162   DF4A    PIO channel B interrupt vector word
  609. 57164   DF4C    Which disk is currently selected
  610. 57165   DF4D    Sector length code for currently selected drive
  611. 57166   DF4E    1/2 Number of bytes for sectors on the current drive
  612. 57167   DF4F    Number of soft errors since system was RESET
  613. 57176   DF58    Shift lock: 0 = lower , 1 = upper case
  614. 57178   DF5A    Tape speed: 1 = 1200  , 4 = 300 baud
  615. 57179   DF5B    CURSor position address
  616. 57184   DF60    Holds a key if looked at by E04E routine
  617. 57190   DF66    = 08H if current drive is DOUBLE density, else 0
  618. 57191   DF67    2 bit track-to-track time delay mask for 179X, 279X.
  619. 57192   DF68    RS232 DATA :  19 BYTES
  620. 57211   DF7B    Initial check bytes: 55AA if next address should be executed
  621. 57213   DF7D    Jump address if above is set.
  622. 57226   DF8A    Incoming RS232 characters are stored from here to DFFF
  623. .NP
  624.                                 BOOT ROM ROUTINES
  625. .LS#1
  626. 57344   E000    Cold entry point. Once here, decisions are made as follows
  627.                 RESET Plus :
  628.                 1. M     key     = Monitor
  629.                 2. Break key     = G 8000H
  630.                 3. B     key     = try to boot disks
  631.                 4. AA,55 at DF7B = Jump to address at DF7D
  632. .LS#2
  633.                 5. Try to boot disks
  634. 57347   E003    Monitor entry point
  635. 57350   E006    Wait keyboard = 8006H
  636. 57353   E009    NON Wait keyboard = 8009H
  637. 57356   E00C    Take a char in C and output it to the 80 * 24 video driver
  638. 57359   E00F    Tape routines = 300 baud
  639. 57362   E012    Read a byte from tape into A
  640. 57365   E015    Read a block from tape
  641. 57368   E018    Write a byte in A out to tape
  642. 57371   E01B    Write a block to tape
  643. 57374   E01E    Set up 64 * 16 screen format
  644. .LS#1
  645. 57377   E021    Select the drive whose code is in A, and find its density,
  646. .LS#2
  647.                 sector length and number of pairs of bytes
  648. 57380   E024    Initialise 6545 registers with (HL)
  649. 57383   E027    Initialise I/O devices in (HL)
  650. 57386   E02A    Fill PCG with inverse
  651. 57389   E02D    Extended memory addressing
  652. 57392   E030    RS232 input routine. Returns the next character in A.
  653. 57395   E033    Message flash routine
  654. 57398   E036    1/4 bit time for RS232 routines
  655. 57401   E039    Read consecutive data off disk
  656. 57404   E03C    Write consecutive data to disk
  657. 57407   E03F    Reads a sector
  658. 57410   E042    Writes a sector
  659. 57413   E045    Sets RS232 speed to 300 baud
  660. 57416   E048    Sets RS232 speed to 1200 baud
  661. 57419   E04B    Send char in A to RS232 port
  662. 57422   E04E    Keyboard look. FF if chararacter avail, 00 if no key pressed
  663. 57425   E051    Output charaacter in A to parallel port
  664. 57428   E054    Returns FF if RS232 port is `clear'
  665. 57431   E057    Returns FF if parallel port is `clear'
  666. 60482   EC42    = DF75 or D4CD  Cass dump
  667. .NP
  668.                                 NET ROUTINES
  669. 57344   E000    NET/MEM entry point from BASIC
  670. 57347   E003    NET int: if B7 of port B goes to 0, then an interupt to here
  671. .LS#1
  672. 57350   E006    WORDBEE  entry point. Also specifies WORDBEE file parameters.
  673.                 Should be used by ALL applications programs which need to have
  674. .LS#2
  675.                 their internal files accessible by the NETWORK ROM
  676. 57353   E009    NET checksums
  677. 57356   E00C    `M' indicates there is a monitor at E00D
  678. 57357   E00D    Machine language monitor entry point
  679. 57360   E010    Network initialization
  680. 57363   E013    RS232 communications subroutine
  681. .LS#1
  682. 57366   E016    Send the block of memory at HL for bc bytes. Return Z if
  683. .LS#2
  684.                 no errors, NZ if error due to timeout or receiver abort
  685. .LS#1
  686. 57369   E019    Receive a block of memory to HL for a maximum of BC bytes.
  687.                 Return Z if no errors and BC = length of file, NZ if timeout
  688. .LS#2
  689.                 or sync error or too many checksum errors and BC=0.
  690. .LS#1
  691. 57372   E01C    Send block of data at HL for 128 bytes with sector D and 
  692. .LS#2
  693.                 total byte count BC.
  694. .LS#1
  695. 57375   E01F    Receive 128 bytes to HL, previous sector number =D.
  696.                 Return Z and D=new sector number if OK (C if EOT), NZ if any
  697. .LS#2
  698.                 error (C if fatal - sync etc.)
  699. 57378   E022    Send char in A to RS232 port
  700. .LS#1
  701. 57381   E025    Return: Z and byte from RS232 queue in A, or NZ if no bytes
  702. .LS#2
  703.                 available from queue.
  704. .LS#1
  705. 57384   E028    Given: E = # of seconds to try for, return: Z and byte from
  706. .LS#2
  707.                 RS232 queue in A, or NZ if timeout before byte received.
  708. .LS#1
  709. 57387   E02B    Process the string of <CR> terminated NET commands at (DE)
  710.                 and return Z if OK, or NZ if error. DE points to approximate
  711. .LS#2
  712.                 error position.
  713. .LS#1
  714. 57390   E02E    Set CRTC format to 80 * 24, clear screen, set up inverse in
  715. .LS#2
  716.                 PCG, set device to flip back to 64 * 16 when next accessed.
  717. .LS#1
  718. 57393   E031    Set CRTC format to 64 * 16, clear screen, set up inverse in
  719. .LS#2
  720.                 PCG, set device 6 to flip to 80 * 24 when next accessed.
  721. .NP
  722.                                  SCREEN RAM
  723. 61440   F000    Start of screen memory.
  724. 62463   F3FF    End of screen memory (64 * 16)
  725. 62464   F400    Spare 1K RAM (64 * 16)
  726. 63359   F77F    End of screen memory (80 * 24)
  727. 63360   F780    Spare 128 bytes RAM (80 * 24)
  728. 63488   F800    Start of PCG RAM
  729. 65535   FFFF    Top of memory
  730. .NP
  731. .XN
  732.                                                                                                              T