WHAT IS THE TRUE MEMORY MAP OF THE RC2014

242 views
Skip to first unread message

Alard Eales

unread,
Mar 23, 2017, 11:14:23 AM3/23/17
to RC2014-Z80
Hi All,

Is there a Document that shows the entire memory map of the RC2014.

I don't mean a simple 000 - 1FFF rom, 2000-7FFF - ram if installed,8000 FFFF - ram
I mean a complete listing in detail like:

Where the buffers are and individual memory location and what they are for,
and stuff basic reserves for itself, Z80 reserved locations, if there are any, stuff like that

if anyone has seen a C64 Reference manual and how they have done the memory map

I have worked out that the normal basic ram starts at -32678 decimal to 0 and the  rom is at 0 to 8192
decimal and the extra ram if installed is from 8192 to 32767 which seems to be a bit screwed up
after working on other computer platforms like the C64, Amiga 1200 and others
where the memory maps make a bit more sense.

can anyone else help...

Thanks....AJ

Below is a HEX Viewer I wrote in a few minutes to play around in the memory
to have a look at the entire 64K or 32K


The REM AAAAAAAAAAAAAAAAA & REM BBBBBBBBBBBBBBBB
Are markers to show the start and end of the basic program.

They will look like numbers  41 and 42 in HEX in a row.
In memory is seems to show them several times, I think some memory is used as a buffer
if you copy and paste in the terminal program and the program is loaded into memory.


Have FUN.......

1 REM AAAAAAAAAAAAAAAAAAAAAAAAAAA
10 REM MEMORY HEX VIEWER, ALL 64K
20 PRINT:PRINT
30 FOR I=-32768 TO 32767:J=J+1:N=PEEK(I)
40 IF N<16 THEN PRINT"0";
50 IF N=0 THEN PRINT"0 ";:GOTO 70
60 PRINT HEX$(N);+" ";
70 IF J=16 THEN PRINT " - ";+HEX$(I):J=0
80 NEXT I:PRINT
90 REM BBBBBBBBBBBBBBBBBBBBBBBBBBB






Daniel Quadros

unread,
Mar 23, 2017, 11:40:38 AM3/23/17
to RC2014-Z80
1) You have to take in account that PEEK an POKE receive their address as signed (2-complement) integers. This means that hex 0 to 7FFF correspond nicely to 0 to 32767 but hex 8000 to FFFF correspond to -32768 to -1.

2) As for what is where, the starting point is the ROM source: http://searle.hostei.com/grant/z80/SimpleZ80.html#RomFiles (I *think* the 32K version is the one on the ROM module). There is some active efforts to enhance the Rom (like https://github.com/feilipu/NASCOM_BASIC_4.7), this changes the address of data and code.

Daniel

phillip.stevens

unread,
Mar 23, 2017, 3:19:19 PM3/23/17
to RC2014-Z80
2) As for what is where, the starting point is the ROM source: http://searle.hostei.com/grant/z80/SimpleZ80.html#RomFiles (I *think* the 32K version is the one on the ROM module). There is some active efforts to enhance the Rom (like https://github.com/feilipu/NASCOM_BASIC_4.7), this changes the address of data and code.

Actually, anyone can generate their own memory map easily. For example using the TASM assembler, which is the simple one that I'm using currently you add a `-l` to the command line to generate a table at the end of the listing showing every label and memory location.

> tasm -80 -a7 -c -fff -l d:int32k.asm d:int32k.hex

If you're interested, they can be trimmed down to what is relevant for daily use. I keep this info around, for example

Label        Value      Label        Value      Label        Value
------------------      ------------------      ------------------

    FUNCTIONS

RXA          
0167      RXA_CHK       01D0      TXA           0191
HEXLOADR      
01DD      DEINT         0C47      ABPASS        13BD

    Z80 VECTOR ADDRESS TABLE

NULL_RET_ADDR
0040      NULL_INT_ADDR 0060      NULL_NMI_ADDR 0063

RST_08_ADDR  
8002      RST_10_ADDR   8006      RST_18_ADDR   800A
RST_20_ADDR  
800E      RST_28_ADDR   8012      RST_30_ADDR   8016
INT_00_ADDR  
801A      INT_NMI_ADDR  801E

    VARIABLES

serRxInPtr    
8020      serRxOutPtr   8022      serTxInPtr    8024
serTxOutPtr  
8026      serRxBufUsed  8028      serTxBufUsed  8029

basicStarted  
802B

    BUFFERS

serRxBuf      
8100      serTxBuf      8200

 
Is there a Document that shows the entire memory map of the RC2014.

I don't mean a simple 000 - 1FFF rom, 2000-7FFF - ram if installed,8000 FFFF - ram
I mean a complete listing in detail like:

Where the buffers are and individual memory location and what they are for,
and stuff basic reserves for itself, Z80 reserved locations, if there are any, stuff like that

I've attached some .LST files attached showing exactly what you need (in far too much gory detail). Look right at the bottom of the file
Since I don't change the origin of my code very often, it is handy to keep a summary around, as I've extracted above, and attached as RC2014_LABELS.TXT

Hope that helps.

Phillip
BAS32K.LST
INT32K.LST
RC2014_LABELS.TXT
Reply all
Reply to author
Forward
0 new messages