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.WSF < prev    next >
Text File  |  1979-12-31  |  31KB  |  682 lines

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