Wiki editing discussion

Page 32/48
25 | 26 | 27 | 28 | 29 | 30 | 31 | | 33 | 34 | 35 | 36 | 37

By hit9918

Prophet (2866)

hit9918's picture

27-01-2019, 16:33

gdx. the wiki table says

Quote:

SLTWRK = Pointer or slot ID of work area for slot 0-0
SLTWRK+2 = Pointer or slot ID of work area for slot 0-1
SLTWRK+4 = Pointer or slot ID of work area for slot 0-2

this table is wrong because it has no pages.
the table size is 128 bytes
4 pages x 16 subslots x 2 byte = 128 byte

SLTWRK+ 0 = for slot 0-0 page 0
SLTWRK+ 2 = for slot 0-0 page 1
SLTWRK+ 4 = for slot 0-0 page 2
SLTWRK+ 6 = for slot 0-0 page 3
SLTWRK+ 8 = for slot 0-1 page 0
SLTWRK+10 = for slot 0-1 page 1
SLTWRK+12 = for slot 0-1 page 2
SLTWRK+14 = for slot 0-1 page 3
...

By gdx

Prophet (2979)

gdx's picture

27-01-2019, 23:09

OK, this is the order that was wrong not the calculation. It was indicated in the text for the pages.

hit9918 wrote:

The SLTWRK area of the pages for slot 0-0 are reserved for use of the BIOS:

SLTWRK+0 RAMDISK (MSX2 and up).

b7,b3-b0 slotid of RAMDISK

b6 set RAMDISK is initialized, reset RAMDISK is not initialized

b5 set RAMDISK functionality disabled (CALL MEMINI), reset normal operation

SLTWRK+1 KANJI BASIC

SLTWRK+2 KANJI BASIC

SLTWRK+4 KANJI BASIC or HANGUL

SLTWRK+5 KANJI BASIC or HANGUL

That is wrong. This depends on the location of the ROMs in the slots.

By gdx

Prophet (2979)

gdx's picture

05-02-2019, 08:25

You should block wiki editing for new users (less than 5 posts on the forum for example) to avoid spam.
You also can banish this fake user:
https://www.msx.org/users/Samwebstudio

By zeilemaker54

Master (246)

zeilemaker54's picture

05-02-2019, 18:27

gdx wrote:

OK, this is the order that was wrong not the calculation. It was indicated in the text for the pages.

hit9918 wrote:

The SLTWRK area of the pages for slot 0-0 are reserved for use of the BIOS:

SLTWRK+0 RAMDISK (MSX2 and up).

b7,b3-b0 slotid of RAMDISK

b6 set RAMDISK is initialized, reset RAMDISK is not initialized

b5 set RAMDISK functionality disabled (CALL MEMINI), reset normal operation

SLTWRK+1 KANJI BASIC

SLTWRK+2 KANJI BASIC

SLTWRK+4 KANJI BASIC or HANGUL
6
SLTWRK+5 KANJI BASIC or HANGUL

That is wrong. This depends on the location of the ROMs in the slots.

I wrote the text regarding SLTWRk+0 ... SLTWRK+5. Can you explain what is wrong? I can show you the sources to prove it is right.

By gdx

Prophet (2979)

gdx's picture

06-02-2019, 07:53

Look these examples for Sony HB-F700F:

To know Disk-ROM buffer we use following methode as said by hit9918.

SLTWRK address = FD09H + 32*primary slot + 8*expanded slot + 2*page

HB-F700F have its Disk-ROM in slot 3-0 page 1.

The calculation is: FD09H + 32*3 + 8*0 +2*1 = 0FD6Bh
If we read the 2 bytes at address 0FD6Bh, we get F1C0h. So Disk-ROM work area is at this address in main RAM.

If we know buffer for Main-ROM (it use buffer for CALL MEMINI from MSX2).
The calculation is: FD09H + 32*0 + 8*0 +2*0 = 0FD09h
If we read the byte at address 0FD09h, we get CFh because the byte format is "F RMD APP RES SS1 SS0 PS1 PS0" as I was indicated. (the bit RMD = Set if the RAM is used by instruction CALL MEMINI, 0 otherwise)

By cons the Kanji Rom seems to be an exception. In Kanji mode the bytes SLTWRK+1 to SLTWRK+6 are used but differently from what you describe. I noticed that SLTWRK+1 is the slot ID of the firmware Rom on Panasonic MSX2+ and turbo R followed by an address. SLTWRK+4 is the slot ID of slot Kanji Basic ROM followed by another address. I don't know what these addresses are.

By zeilemaker54

Master (246)

zeilemaker54's picture

06-02-2019, 20:13

gdx wrote:

Look these examples for Sony HB-F700F:

To know Disk-ROM buffer we use following methode as said by hit9918.

SLTWRK address = FD09H + 32*primary slot + 8*expanded slot + 2*page

HB-F700F have its Disk-ROM in slot 3-0 page 1.

The calculation is: FD09H + 32*3 + 8*0 +2*1 = 0FD6Bh
If we read the 2 bytes at address 0FD6Bh, we get F1C0h. So Disk-ROM work area is at this address in main RAM.

If we know buffer for Main-ROM (it use buffer for CALL MEMINI from MSX2).
The calculation is: FD09H + 32*0 + 8*0 +2*0 = 0FD09h
If we read the byte at address 0FD09h, we get CFh because the byte format is "F RMD APP RES SS1 SS0 PS1 PS0" as I was indicated. (the bit RMD = Set if the RAM is used by instruction CALL MEMINI, 0 otherwise)

By cons the Kanji Rom seems to be an exception. In Kanji mode the bytes SLTWRK+1 to SLTWRK+6 are used but differently from what you describe. I noticed that SLTWRK+1 is the slot ID of the firmware Rom on Panasonic MSX2+ and turbo R followed by an address. SLTWRK+4 is the slot ID of slot Kanji Basic ROM followed by another address. I don't know what these addresses are.

Of course this calculation is right for extension roms, like the diskrom. But the 2 bytes are free to use for the extension, it can be used for anything. The wiki states the pointer use, which is the most used. Why the slotid is mentioned as a use for SLTWRK specificly is unclear to me, because that is not a common use.
As you can see in my msxsyssrc project, SLTWRK+0 (normally for slot 0-0 page 0 extension), is used for the build-in ramdisk: https://sourceforge.net/p/msxsyssrc/git/ci/master/tree/base200/subrom.mac line 10065. According to your explaination it should be stored in the SLTWRK entry of the subrom slot, page 0. But as you can see, this is not the case, it is hardcoded at SLTWRK+0. Which is OK, because slot 0-0 is reserved for BIOS anyway (impossible location for an extension).
The same goes for KANJI BASIC:
https://sourceforge.net/p/msxsyssrc/git/ci/master/tree/kanji/kanji.mac line 318
And for HANGUL:
https://sourceforge.net/p/msxsyssrc/git/ci/master/tree/base200/difkor.mac line 21

So it is save to say ASCII/Microsoft have reserved SLTWRK+0 .. SLTWRK+7 for internal use. I hope with this explaination, you will see that my text is right and well thought out.

By gdx

Prophet (2979)

gdx's picture

07-02-2019, 09:23

zeilemaker54 wrote:

Of course this calculation is right for extension roms, like the diskrom. But the 2 bytes are free to use for the extension, it can be used for anything.

Not really free. I completed the explanation about SLTWRK. It's a mix of what has been said here and before.
https://www.msx.org/wiki/Slots
Say if it suits you.

By zeilemaker54

Master (246)

zeilemaker54's picture

08-02-2019, 19:34

gdx wrote:

Not really free.

Yes, really free. As of the MSX2 technical databook (carefully read the (2) remark):

7.3.2 notes on the creation of the cartridge software

In programs not requiring software from other cartridges (stand-alone
software such as games), the portion with the smaller address than the work
area used by BIOS (F380H) can be used freely.

But in programs which are executed by using BASIC interpreter functions, the
same area cannot be shared as the work area. To do this, there are three
methods:

(1) Place RAM on the cartridge itself (the safest and most reliable method).

(2) When one or two bytes are needed for the work area, use two bytes
corresponding to itself in SLTWRK (FD09H to ...) as the work area.

(3) When more than three bytes are needed for the work area, allocates it
from RAM used by BASIC. To do this, put the contents of BOTTOM (FC48H)
to the area corresponding to SLTWRK (FD09H to ...), and increase the
value of BOTTOM by the needed work area, then allocate it for the
work area (see figure 5.52).

By gdx

Prophet (2979)

gdx's picture

08-02-2019, 23:49

Not really free because the MSX Datapack gives recommendations. So I put them in the Wiki.

zeilemaker54 wrote:

(2) When one or two bytes are needed for the work area, use two bytes
corresponding to itself in SLTWRK (FD09H to ...) as the work area.

(3) When more than three bytes are needed for the work area, allocates it
from RAM used by BASIC. To do this, put the contents of BOTTOM (FC48H)
to the area corresponding to SLTWRK (FD09H to ...), and increase the
value of BOTTOM by the needed work area, then allocate it for the
work area (see figure 5.52).[/i]

That's what I put in the Wiki. Only the context is different. In the wiki, it's a general explanation. What you quote is an excerpt of explanation on how to reserve RAM for a ROM application. Maybe Wiki is not clear (I'm not good in English). That's why I asked for your opinion. More details are certainly needed but I do not think it's wise to remove everything under the pretext that in fact only the location of the two bytes is to respect.

By Manuel

Ascended (15691)

Manuel's picture

13-03-2019, 09:11

The article about the VG 8240 says it contains a 64kB memory mapper. What is the source of that information? I would expect it to be plain RAM, actually.

Was the memory layout and the PCB ever photographed to also verify the statements about them?

@msxholder: do you know?

Page 32/48
25 | 26 | 27 | 28 | 29 | 30 | 31 | | 33 | 34 | 35 | 36 | 37