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 >
Wrap
Text File
|
1979-12-31
|
30KB
|
732 lines
.PL#62
.PG#4
.LL#80
.LS#2
.ES
27 64 27 14 27 69
.LS#1
M i c r o B e e 16K , 32K , 64K
.LS#5
M E M O R Y M A P 1 MAY 1984
.PN#1
.LS#2
I N D E X
.ES
27 77
.HE
Dec Hex Description
.LM#8
Start Address Page
DEC HEX
0 0000 1
210 00D2 2
233 00E9 3
273 0111 4
512 0200 5
801 0321 6
2240 08C0 7
2283 08EB 8
32768 8000 (BASIC) 9
32828 803C 10
36916 9034 11
39828 9B94 12
42250 A50A 13
43773 AAFD 14
47821 BACD 15
57089 DF01 (BOOT ROM SCRATCH) 16
57344 E000 (BOOT ROM ) 17
57419 E04B 18
57344 E000 (NET) 19
61440 F000 (SCREEN) 20
.LS#2
000 0000 Hash table - 128 bytes
128 0080 Interrupt vectors - ctcv1 - 4 * 2 bytes
136 0088 PIO interrupt vectors - piov1 - 2 bytes
138 008A Function name "piov2" - 2 bytes
140 008C Break key: 0=enable, 1=disable
.LS#1
141 008D Disable LIST=1. Use in context:
IF PEEK(140)=0 THEN POKE 141,1
.LS#2
Note: once disabled,POKE cannot be used to reset.
142 008E Reserved
160 00A0 Top of memory pointer - 2 bytes
.LS#1
162 00A2 Warm start jump address - 2 bytes
Auto-run on RESET - POKE 162,30: 163,128
Auto-list on RESET - POKE 162,190: 163,133
Reset to BASIC - POKE 162,33: 163,128
Reset to NET - POKE 162,6: 163,224
.LS#2
Reset to WORDBEE - POKE 162,6: 163,192
164 00A4 Initial check bytes - 2 bytes - 55AA if initialised
166 00A6 Machine code EXEC address - 2 bytes
168 00A8 PAK/MEM jump vector - 3 bytes
171 00AB NET jump vector - 3 bytes
174 00AE EDASM jump vector - 3 bytes
177 00B1 Reserved - 1 byte
.LS#1
178 00B2 Output device vector table - 2 * 8 bytes
Normal video O/P: 00B2,00B3 = 2F A6
Parallel printer: 00B4,00B5 = 48 01
RS232 @ 300 baud: 00BA,00BB = 48 01
.LS#2
RS232 @ 1200 baud: 00BC,00BD = 48 01
194 00C2 Input device vector table - 2 * 8 bytes
.NP
210 00D2 6545 R0 Total # of Horiz chars (Determines horiz sync freq)
211 00D3 6545 R1 Total # of displayed chars per line
212 00D4 6545 R2 Pos of horiz sync pulse on line
213 00D5 6545 R3 Vert and horiz sync widths (2 nibbles)
214 00D6 6545 R4 Vert total rows per screen -1
215 00D7 6545 R5 Vert total line adjust
.LS#1
216 00D8 6545 R6 Total # of vert displayed rows
POKE 216,17:USR(32768) = 17 lines
POKE 216,16:USR(32768) = 16 lines
217 00D9 6545 R7 Vert sync position
218 00DA 6545 R8 Mode control register
POKE 218,75 :USR(32768) = 32 lines
POKE 218,72 :USR(32768) = 16 lines
219 00DB 6545 R9 # of scan lines per character
220 00DC 6545 R10 Cursor start/control
POKE 220,0 inverse full block
POKE 220,1 steady full block
POKE 220,12 inverse quarter block
POKE 220,15 steady underline
POKE 220,64+ flash at 3.3 Hz
POKE 220,80 clear cursor
POKE 220,96+ flash at 1.6 Hz
POKE 220,111 enable normal (default) cursor
221 00DD 6545 R11 Cursor end line
222 00DE 6545 R12 Display start address (high)
223 00DF 6545 R13 Display start address (low)
224 00E0 6545 R14 Cursor position (high)
225 00E1 6545 R15 Cursor position (low)
226 00E2 Output device byte
.LS#2
227 00E3 List output device byte
228 00E4 Input device byte
229 00E5 Video mode control byte
230 00E6 Output speed byte
231 00E7 PCG characters used
232 00E8 PLOT type - I,R or S
.LS#1
233 00E9 Tape speed: 1=1200, 4=300 baud
.LS#2
(Use 0321H to change speed when dumping via DF75)
234 00EA RS232 speed: 1=1200, 0=300 baud
.LS#1
235 00EB Is shared scratch - graphics plot/tape routines
.LS#2
PLOT tape buffer & required load name to match
241 00F1 Tape header buffer for BASIC - 6 bytes
247 00F7 File type character - 1 byte
248 00F8 Length of file - 2 bytes
250 00FA Normal starting address - 2 bytes
252 00FC Auto exec: jump here if 00FF > 00 - 1 byte
254 00FE File speed: 300 baud = 00, 1200 baud > 00 - 1 byte
255 00FF File exec: auto > 00 - 1 byte
256 0100 File protect byte - 1 byte
.LS#1
257 0101 Shift lock: 0 = lower case, 1 = upper case
.LS#2
2 = upper case with SHIFT LOCK disabled - 1 byte
.LS#1
258 0102 Keyboard auto repeat delay: 52 = on, 255 = off - 1 byte
PEEK (258) returns a key (as opposed to ASCII) value
which is case insensitive. The values are:
@ 0 a - z 1-26 [ \ ] 27-29
^ 30 Delete 31 0 - 9 32-41
: ; , 42-44 - . / 45-47 Escape 48
Back Sp 49 Tab LF 50-51 Return 52
.LS#2
Lock 53 Break 54 Space 55
259 0103 Keyboard debounce delay & repeat key speed - 2 bytes
261 0105 Defines if retrace or not at last look - 1 byte
262 0106 ASCII value of last key pressed - 1 byte
263 0107 Keeps ASCII value for KEY$ use - 1 byte
264 0108 For port A keyboard - 1 byte
.LS#1
265 0109 Zero if parallel port out is usable - 1 byte
.LS#2
(parallel device "handshake" byte)
266 010A No. of bytes in cassette redirect buffer - 1 byte
267 010B CURS position address F000+ - 2 bytes
269 010D NZ if last screen char was ESC - 1 byte
279 010E Save TEXT pointer in graphics - 2 bytes
272 0110 Let List-Line do inverse - 1 byte
273 0111 List buffer size: initialised as B8 by NEW
274 0112 Save text pointer in graphics
276 0114 Auto storage - 2 bytes
278 0116 RENUM scratch - 2 bytes
280 0118 Save start of REAL number - 2 bytes
282 011A Random number seed - 16 bytes
298 012A LOAD options :0 = LOAD or SAVE, 1 = LOAD?, 2 = LOADU
299 012B PCG storage - 1 byte
300 012C Function name "vdu addr" - 2 bytes
302 012E Function name "new char" - PCG chars - 16 bytes
318 ? 013E Save text pointer
320 0140 Start of currently executing statement - 2 bytes
322 0142 ON ERROR := Line number if active - 2 bytes
324 0144 ERRORC : Which error message
325 0145 ERRORL : Status of last error - 2 bytes
NET SCRATCH AREA
328 0148 NET ROM flag = 0 if not initialised
329 0149 When reading from IN#7, incoming byte is added to this location
336 0150 80 * 24 CRTC table - 16 bytes
352 0160 16 bit RS232 queue handling pointers
.LS#1
360 0168 NET format bytes. Can be POKEd for formats other than
.LS#2
the 4 provided.. No. of data bits (7 or 8)
361 0169 NET parity: 1 = no parity, 2 = odd, 3 = even
365 016D NET txrx controller address
368 0170 NET address to dump to/load from - 2 bytes
370 0172 NET current file length - 2 bytes
372 0174 Max. size file to load - 2 bytes
.LS#1
374 0176 Load status. = 0 if no load took place, = 1 if successful, = 2
if bad load. Valid after NETLOAD, not after function at E019
.LS#2
Up to 01FF inclusive is NET RS232 input buffer
.NP
EDASM SCRATCH LAYOUT
512 0200 Pointer to currently open primary file - 2 Bytes
522 0228 Secondary file open flag
553 0229 Secondary file start pointer - 2 bytes
555 022B Secondary file end pointer - 2 bytes
557 022D Current line pointer - 2 bytes
559 022F End of memory pointer. Set up on entry to Editor - 2 bytes
561 0231 End of file pointer (points to first FF) - 2 bytes
562 0233 Step size between line numbers - 1 byte
579 0243 General purpose buffer - 128 bytes
708 02C4 Pointer to current character being accessed on buffer - 2 bytes
710 02C6 Size of line currently in buffer
724 02D4 Count of number of errors during assembly - 2 bytes
726 02D6 Suppress listing under NL switch etc. - 2 bytes
728 02D8 Contains >0 if output is to printer, not screen
.LS#1
735 02DF Pointer to bottom of Symbol Table, only valid after
.LS#2
completion of an assembly
737 02E1 If NZ then suppress line numbers on printout
.LS#1
738 02E2 Editor file initialized flag. Will create a null at the default
.LS#2
file address if this is not set to 55 on entry to Editor
745 02E9 Current value dafault radix - 1 byte
746 02EA Reserved for line number of printouts - 1 byte
747 02EB Reserved for page number of printouts
752 02F0 Assembler switch storage scratch - 6 bytes
759 02F7 Tape name compare buffer - 16 bytes
775 0307 Tape header buffer for EDASM monitor - 6 bytes
788 0314 Filename - 6 bytes
794 031A Filetype - 1 byte
795 031B Length of file - 2 bytes
797 031D Load address - 2 bytes
799 031F Execute address - 2 bytes
801 0321 Speed byte: 00 = 300, 01 = 1200 baud
802 0322 Autostart on FF - 1 byte
803 0323 Spare byte
805 0325 EDASM return address stack - 128 bytes
932 03A4 START of stack
END EDASM SCRATCH AREA
1280 0500 Real variables pointer table - 208 * 2 bytes
WORD-BEE SCRATCH LAYOUT
1280 0500 Initialisation flag
1299 0513 Top of memory pointer - 2 bytes
1303 0517 Start of file pointer - 2 bytes
1309 051D End of file pointer - 2 bytes
1335 0537 Filename - 6 bytes
1341 053D Filetype - 1 byte
1342 053E Length of file - 2 bytes
1344 0540 Load address - 2 bytes
1346 0542 Execute address - 2 bytes
1348 0544 Speed byte: 00 = 300, 01 = 1200 baud
1349 0545 Autostart on FF - 1 byte
1350 0546 Spare byte
1351 0547 Header checksum
1392 0570 Location of cursor in monitor mode - 2 bytes
1395 0573 Address of Monitor initial entry e.g E or A comand
END OF WORD=BEE SCRATCH AREA
1712 06B0 Interger variables pointer table - 26 * 2 bytes
1764 06E4 FN0 to FN7 Address - 8 * 2 bytes
1832 072A 208 char Input/Program line buffer (till 07E0)
2048 0800 192 char Output buffer
BASIC PROGRAM INFO (This is saved to tape)
2240 08C0 Number of sig. digits (must be <62) - 1 byte
2241 08C1 Function name "fw" - 1 byte
2242 08C2 Function name "dp" - 1 byte
2243 08C3 Function name "tmp1" - 2 bytes
2245 08C5 Function name "tmp2" - 2 bytes
2247 08C7 Function name "count" - Line size - 2 bytes
2248 08C8 Undefined function - 1 byte
2249 08C9 Function name "auto" - 1 byte
2250 08CA Function name "crib1" - Current line - 2 bytes
2252 08CC Function name "tmp3" - 2 bytes
2254 08CE Function name "tmp4" - Top of string pointer - 2 bytes
2256 08D0 Program begin pointer - 2 bytes
2258 08D2 Program end pointer at 2nd FF - 2 bytes
2260 08D4 FOR...NEXT stack pointer - 2 bytes
2262 08D6 Output pointer - 2 bytes
2264 08D8 Next available variable location pointer - 2 bytes
2266 08DA Function name "tmpa" - 2 bytes
2268 08DC Next available string variable location pointer - 2 bytes
2270 08DE Function name "xswe" - 1 byte
2271 08DF Function name "xsw1" - 1 byte
2272 08E0 Function name "prmt" - PRMT Char - 1 byte
2273 08E1 Function name "sprmt" - System PRMT Char `>' - 1 byte
2274 08E2 Function name "tmpc" - Line size - 1 byte
2275 08E3 Function name "zone" - Zone width - 1 byte
2276 08E4 Function name "mode" - Variable key - 1 byte
2277 08E5 Function name "tmpd" - 2 bytes
2279 08E7 Function name "tmpb" - 2 bytes
2281 08E9 Function name "dloc" - Data pointer - 2 bytes
2283 08EB Function name "flags" - 1 byte
2284 08EC Function name "lims" - Lower limit of string area - 2 bytes
2286 08EE Function name "autstp" - AUTO Increment - 1 byte
2287 08EF Function name "autln" - AUTO Line Number - 2 bytes
2289 08F1 Function name "tmp8" - 2 bytes
2291 08F3 Function name "tmp9" - 2 bytes
2293 08F5 Function name "ptrps" - 2 bytes
2295 08F7 Default for EDIT - 2 bytes
2297 08F9 Function name "tmpf" - 2 bytes
2299 08FB GOSUB stack pointer - 1 byte
2300 08FC PRINT/LPRINT flag: 1 = screen, 0 = printer, Bit 7 set =TRACE
2301 08FD CONT Line number - 2 bytes
2304 0900 Start of BASIC program or WORD-BEE File (0D)
BASIC program info
0900 Line number MSB
2305 0901 Line number LSB
2306 0902 Number of BYTES in line - 1 byte
2307 0903 The rest of the info in the line starts here and ends with 0D
16128 3F00 Stack/top of strings for 16K
16383 3FFF End of RAM in 16K
32512 7F00 Stack/top of strings for 32K
32767 7FFF End of RAM in 32K
.NP
START OF BASIC ROMS
32768 8000 BASIC return - warm start if 00A4 = 55AA. Start of "A" ROM
32771 8003 BASIC warm start
32774 8006 ASCII value of key pressed in A register. Destroys AF pair
32777 8009 NZ with ASCII in A if key is pressed, else = 0. Destroys AF
32780 800C Display char. in B register. Nothing destroyed
32783 800F A call here has no effect. Included for DGOS compatibility
.LS#1
32786 8012 Returns 8 bit value of next cassette byte in A. Read format is
Kansas City Standard. Must be used in a continuous fashion for
reliable data transfer.Set tape speed in 00E9 before calling
.LS#2
here. AF is destroyed
.LS#1
32789 8015 Returns block of checksummed data at (HL), end of block+1
.LS#2
in HL, total bytes left in DE. Destroys BC
.LS#1
32792 8018 Writes the 8 bit value in A to cassette. Speed is required
to have been preset at 00E9. Delay between calls here
should be less than 1/1200 second otherwise rubbish may
.LS#2
appear. Nothing is destroyed
32795 801B Writes a block at (HL) for length B with checksum at end
32798 801E Auto-execute address for saving BASIC programs
32801 8021 Warm boot to BASIC from Monitor
.LS#1
32804 8024 PCG scratchpad initialization with CLS. Same effect as if
.LS#2
HIRES command had been given
32807 8027 Sets PCG with LORES chunky graphics
.LS#1
32810 802A INVERSE initialization. Fills PCG with black on white
characters and then sets 00E5 to indicate this mode.
.LS#2
Destroys AF, BC and HL
.LS#1
32813 802D Generates UNDERLINEd characters to be put into PCG
.LS#2
then sets 00E5 to show this. Destroys AF, BC and HL
.LS#1
32816 8030 SET dot: X co-ordinate in HL, Y co-ordinate in DE. Returns Z
if successful, otherwise NZ if co-ordinates are out of
.LS#2
range or PCG is full
.LS#1
32819 8033 RESET dot returns Z if successful, NZ if co-ordinates
.LS#2
are out of range or PCG is full
32822 8036 INVERT dot...returns Z etc. as for 8033
.LS#1
32825 8039 Test dot...returns Z etc. as for 8033. Note that no
distinction is made between co-ordinates out of range
.LS#2
and dot set conditions
.LS#1
32828 803C Performs SET, RESET OR INVERT in current graphics mode
at best approximation points to the X and Y co-ordinates
.LS#2
as specified
.LS#1
32831 803F Allows access to all BASIC input devices normally available
.LS#2
through IN#n command
32834 8042 OUT#n equivalent of 803F
32837 8045 Redirected printer out A register
32840 8048 Jump to BASIC and clear all variables
32843 804B Jump to BASIC without clearing variables
32846 804E Jump to BASIC after NET or MEM and continue running
32849 8051 Checks buffer for valid line to INSERT
32852 8054 INSERT new line in Program
32855 8057 Line into list buffer
32908 808C Print "?"
32912 8090 Print a space
32914 8092 Display char. in A register on printer or screen
33092 814A Sends <CR>;<LF> to console device
33751 83D7 RUN jump vector
.LS#1
33908 8474 BASIC interpreter routine which takes token in A and returns
.LS#2
corresponding jump vector in the HL
33934 848E Clear variables
34052 8504 Check key pressed with <RESET>
34071 8517 Monitor to BASIC warm start
34074 851A Return to BASIC without corrupting E2 or E4
34091 852B Clear first 900 hex bytes
34104 8538 Initialise keyboard code
34109 853D Initialise vectors
34151 8567 Find top of memory
34183 8587 NEW jump vector
34215 85A7 Initialise 6545 registers with (HL) - 16 bytes
34230 85B6 LLIST jump vector
34238 85BE LIST jump vector
36916 9034 LET jump vector
36938 904A LPRINT jump vector
36946 9052 PRINT jump vector
38009 9479 IF jump vector
38044 949C GOTO jump vector
38381 95ED FOR jump vector
38590 96BE NEXT jump vector
38814 979E INPUT jump vector
38950 9826 DATA jump vector
39015 9867 READ jump vector
39090 98B2 DIM jump vector
39289 9979 END jump vector
39295 997F STOP jump vector
39340 99AC Print (on printer) text pointed to by HL register
.LS#1
39368 99C8 Sundry expressions & print statements jump vector
.LS#2
(Note: will result in "syntax error" message)
39371 99CB POKE jump vector
39398 99E6 OUT jump vector
39530 9A6A SD jump vector
39550 9A7E RESTORE jump vector
39582 9A9E PRMT jump vector
39596 9AAC CLEAR jump vector
39627 9ACB IN jump vector
39662 9AEE INT jump vector
39672 ? 9AF8 ZONE jump vector
39674 9AFA PEEK jump vector
39683 9B03 USR jump vector
39720 9B28 LEN jump vector
39753 9B49 ABS jump vector
39773 9B5D RND jump vector
39828 9B94 FLT jump vector
39861 9BB5 FRE jump vector
39901 9BDD SQR jump vector
40034 9C62 GOSUB jump vector
40105 9CA9 RETURN jump vector
40126 9CBE VAR jump vector
40174 9CEE FRACT jump vector
40200 9D08 SGN jump vector
40300 9D6C SEARCH jump vector
40360 9DA8 STRS jump vector
40387 9DC3 VAL jump vector
40562 9E72 SIN jump vector
40659 9ED3 COS jump vector
40678 9EE6 ATAN jump vector
40797 9F5D LOG jump vector
40939 9FEB EXP jump vector
41095 A087 ON jump vector
41265 A131 TRACE jump vector
41322 A16A CONT jump vector
41366 A196 POS jump vector
41382 A1A5 ASC jump vector
41399 A1B7 FN jump vector
41429 A1D5 REM jump vector
41667 A2C3 EDIT jump vector
41870 A38E Print (on screen) text pointed to by HL register
41941 A3D5 Parallel port input vector
41961 A3E9 Keyboard input vector
41971 A3F3 Test for key repeat 14 times
42238 A4FE Test shift key
42244 A504 Test control key
42250 A50A Test if key pressed: Z flag = 1, else = 0
42434 A5C2 Line input of text
42523 A61B CLS jump vector
42541 A62D Call address to print a space
42543 A62F Screen out - A register
42724 A6E4 Shift screen
42772 A714 PLAY jump vector
.LS#1
42847 A75F Entry for extended (0-255) tone generator
.LS#2
B = pitch (8 bits), HL = duration (16 bits)
42887 A77D SPEED jump vector
42894 A78E Set cursor position
42925 A7AD Turn off cursor
42936 A7B8 NORMAL jump vector
42944 A7C0 PCG jump vector
42952 A7C8 UNDERLINE jump vector
43003 A7FB INVERSE jump vector
43052 A82C RS232 input stream - 300 baud
43057 A831 RS232 input stream - 1200 baud
43130 A87A RS232 output stream - 300 baud
43135 A87F RS232 output stream - 1200 baud
43212 A8CC Get program name
43234 A8E2 Compare program names
43260 A8FC Display `*' during LOAD
43284 A914 SAVE jump vector
43382 A976 LOAD jump vector
43407 A98F Get desired program
43639 AA77 EXEC jump vector
43682 AAA2 Beep
43723 AACB Reads 16 nulls + `1' and header from tape. Destroys A and BC
43768 AAF8 Introduces long non-variable time delay. Destroys A, BC and HL
.LS#1
43773 AAFD Introduces a variable time delay. Load HL and B with
.LS#2
required values. Destroys A, BC and HL
.LS#1
43781 AB05 Writes 64 nulls + `1' and header information to tape.
Requires header information set up at 00E9 and 00F1 to 00FF.
.LS#2
This destroys all registers
43841 AB41 2400 hertz out
43875 AB63 1200 hertz out
43980 ABCC 300 baud cassette output vector
43987 ABD3 1200 baud cassette output vector
44100 AC44 300 baud cassette input vector
44104 AC48 1200 baud cassette input vector
44215 ACB7 CURS jump vector
44255 ACDF AUTO jump vector
44379 AD5B HIRES jump vector
44385 AD61 SET jump vector
44401 AD71 RESET jump vector
44409 AD79 INVERT jump vector
44417 AD81 POINT jump vector
44550 AE06 USED jump vector
44952 AF98 LORES jump vector
45152 B060 PLOT jump vector
45595 B21B RENUM jump vector
46256 B4B0 DELETE jump vector
46355 B513 GX jump vector
46584 B5F8 Parallel printer LLIST output stream
46609 B611 EDASM jump vector
46617 B61C MEM/NET jump vector
46647 B637 ERROR jump vector
47196 B85C Power-up message: "Applied Technology " etc
47674 BA3A Start of BASIC default values in version 5.10
47738 BA7A Start of BASIC default values in version 5.22e - 63 bytes
47821 BACD Start of initial set of values for 6545 registers;D2 to E1
47844 BAE4 Sound frequency data
48628 BDF4 Reset/Control sequences
48646 BE06 Jump to Monitor (if fitted)
48651 BE11 Self-test on BASIC 5.10
49144 BFF8 Machine serial number - 3 bytes
49152 C000 EDASM/WORDBEE if fitted
EDASM ROUTINES
49152 C000 Cold start
49155 C003 Monitor entry
56018 DAD2 Monitor cold start- stack = 03A4
56043 DAEB Monitor warm start
.LS#1
56504 DCB8 Displays contents of HL at location pointed to by DE. Place
value for display in HL - screen address for display in DE.
.LS#2
Destroys A and BC
.LS#1
56509 DCBD Displays contents of A at location pointed to by DE. Place
value for display in A - screen address for display in DE.
.LS#2
Destroys A and BC
56937 DE69 Load a file ( R <CR>)
.LS#1
57205 DF75 Write memory to cassette out at existing speed
.LS#2
To change speed, alter 0321
WORD-BEE ROUTINES
49152 C000 Cold start
49153 C003 Monitor entry point
49162 C00C CRC Check - Sum of C00E to DFF7 hex
53242 CFFA = DCB8 in EDASM
53247 CFFF = DCBD in EDASM
53345 D061 Monitor cold start - stack = 07E1
53370 D07A Monitor warm start
54220 D3CC Load a file ( R <CR> )
.LS#1
54477 D4CD Write memory to cassette out at existing speed
.LS#2
To change speed, alter 0544
57337 DFF9 Location of WORDBEE ID numbers - 2 bytes
BOOT ROM SCRATCH DETAILS
57089 DF01 Cursor position in E or A mode
57111 DF17 Filename - 6 bytes
57117 DF1D Filetype - 1 byte
57118 DF1E Length of file - 2 bytes
57120 DF20 Load address - 2 bytes
57122 DF22 Execute address - 2 bytes
57124 DF24 Speed byte: 00 = 300, 01 = 1200 baud
57125 DF25 Autostart on FF - 1 byte
57126 DF26 Spare byte
57157 DF45 3 bytes which allow a linkage to expand the VDU driver
57160 DF48 PIO channel A interrupt vector word
57162 DF4A PIO channel B interrupt vector word
57164 DF4C Which disk is currently selected
57165 DF4D Sector length code for currently selected drive
57166 DF4E 1/2 Number of bytes for sectors on the current drive
57167 DF4F Number of soft errors since system was RESET
57176 DF58 Shift lock: 0 = lower , 1 = upper case
57178 DF5A Tape speed: 1 = 1200 , 4 = 300 baud
57179 DF5B CURSor position address
57184 DF60 Holds a key if looked at by E04E routine
57190 DF66 = 08H if current drive is DOUBLE density, else 0
57191 DF67 2 bit track-to-track time delay mask for 179X, 279X.
57192 DF68 RS232 DATA : 19 BYTES
57211 DF7B Initial check bytes: 55AA if next address should be executed
57213 DF7D Jump address if above is set.
57226 DF8A Incoming RS232 characters are stored from here to DFFF
.NP
BOOT ROM ROUTINES
.LS#1
57344 E000 Cold entry point. Once here, decisions are made as follows
RESET Plus :
1. M key = Monitor
2. Break key = G 8000H
3. B key = try to boot disks
4. AA,55 at DF7B = Jump to address at DF7D
.LS#2
5. Try to boot disks
57347 E003 Monitor entry point
57350 E006 Wait keyboard = 8006H
57353 E009 NON Wait keyboard = 8009H
57356 E00C Take a char in C and output it to the 80 * 24 video driver
57359 E00F Tape routines = 300 baud
57362 E012 Read a byte from tape into A
57365 E015 Read a block from tape
57368 E018 Write a byte in A out to tape
57371 E01B Write a block to tape
57374 E01E Set up 64 * 16 screen format
.LS#1
57377 E021 Select the drive whose code is in A, and find its density,
.LS#2
sector length and number of pairs of bytes
57380 E024 Initialise 6545 registers with (HL)
57383 E027 Initialise I/O devices in (HL)
57386 E02A Fill PCG with inverse
57389 E02D Extended memory addressing
57392 E030 RS232 input routine. Returns the next character in A.
57395 E033 Message flash routine
57398 E036 1/4 bit time for RS232 routines
57401 E039 Read consecutive data off disk
57404 E03C Write consecutive data to disk
57407 E03F Reads a sector
57410 E042 Writes a sector
57413 E045 Sets RS232 speed to 300 baud
57416 E048 Sets RS232 speed to 1200 baud
57419 E04B Send char in A to RS232 port
57422 E04E Keyboard look. FF if chararacter avail, 00 if no key pressed
57425 E051 Output charaacter in A to parallel port
57428 E054 Returns FF if RS232 port is `clear'
57431 E057 Returns FF if parallel port is `clear'
60482 EC42 = DF75 or D4CD Cass dump
.NP
NET ROUTINES
57344 E000 NET/MEM entry point from BASIC
57347 E003 NET int: if B7 of port B goes to 0, then an interupt to here
.LS#1
57350 E006 WORDBEE entry point. Also specifies WORDBEE file parameters.
Should be used by ALL applications programs which need to have
.LS#2
their internal files accessible by the NETWORK ROM
57353 E009 NET checksums
57356 E00C `M' indicates there is a monitor at E00D
57357 E00D Machine language monitor entry point
57360 E010 Network initialization
57363 E013 RS232 communications subroutine
.LS#1
57366 E016 Send the block of memory at HL for bc bytes. Return Z if
.LS#2
no errors, NZ if error due to timeout or receiver abort
.LS#1
57369 E019 Receive a block of memory to HL for a maximum of BC bytes.
Return Z if no errors and BC = length of file, NZ if timeout
.LS#2
or sync error or too many checksum errors and BC=0.
.LS#1
57372 E01C Send block of data at HL for 128 bytes with sector D and
.LS#2
total byte count BC.
.LS#1
57375 E01F Receive 128 bytes to HL, previous sector number =D.
Return Z and D=new sector number if OK (C if EOT), NZ if any
.LS#2
error (C if fatal - sync etc.)
57378 E022 Send char in A to RS232 port
.LS#1
57381 E025 Return: Z and byte from RS232 queue in A, or NZ if no bytes
.LS#2
available from queue.
.LS#1
57384 E028 Given: E = # of seconds to try for, return: Z and byte from
.LS#2
RS232 queue in A, or NZ if timeout before byte received.
.LS#1
57387 E02B Process the string of <CR> terminated NET commands at (DE)
and return Z if OK, or NZ if error. DE points to approximate
.LS#2
error position.
.LS#1
57390 E02E Set CRTC format to 80 * 24, clear screen, set up inverse in
.LS#2
PCG, set device to flip back to 64 * 16 when next accessed.
.LS#1
57393 E031 Set CRTC format to 64 * 16, clear screen, set up inverse in
.LS#2
PCG, set device 6 to flip to 80 * 24 when next accessed.
.NP
SCREEN RAM
61440 F000 Start of screen memory.
62463 F3FF End of screen memory (64 * 16)
62464 F400 Spare 1K RAM (64 * 16)
63359 F77F End of screen memory (80 * 24)
63360 F780 Spare 128 bytes RAM (80 * 24)
63488 F800 Start of PCG RAM
65535 FFFF Top of memory
.NP
.XN