[Openmsx-bugs] [ openmsx-Bugs-961064 ] Halnote: internal software of Sony HB-F1XDJ does not start

View: New views
1 Messages — Rating Filter:   Alert me  

[Openmsx-bugs] [ openmsx-Bugs-961064 ] Halnote: internal software of Sony HB-F1XDJ does not start

by SourceForge.net :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bugs item #961064, was opened at 2004-05-26 21:35
Message generated for change (Comment added) made by manuelbi
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=421861&aid=961064&group_id=38274

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: General/misc
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Manuel Bilderbeek (manuelbi)
Assigned to: Wouter Vermaelen (m9710797)
>Summary: Halnote: internal software of Sony HB-F1XDJ does not start

Initial Comment:
It's in GOODMSX2... It seems to need the system disk,
but the MSX hangs at boot.

----------------------------------------------------------------------

>Comment By: Manuel Bilderbeek (manuelbi)
Date: 2007-09-29 12:00

Message:
Logged In: YES
user_id=78178
Originator: YES

Wouter implemented Halnote mapper, and Halnote seems to work now.

Question remains: how do we test the internal software of the Sony
HB-F1XDJ?

----------------------------------------------------------------------

Comment By: Manuel Bilderbeek (manuelbi)
Date: 2007-05-07 20:44

Message:
Logged In: YES
user_id=78178
Originator: YES

Here is some information I got from Rudolf Lechleitner about the Halnote
mapper:

First, the initial information, supplied in the RuMSX manual, it seems to
originate from Atarulum:


HALNOTE
Cartridge (6 Mega but total copy is 8 Mega). Switch adress is &HAFFF,
save-adress is &HA000, block-size is &H2000, first block is 00, last block
is 7F.

HALNOTE uses 16KB battery buffered RAM in page 0 as well as a small amount
of RAM in page 3. ROM-mapper size is 2KB, writing values with bit 7 set
enables write to the mapper-page, specified in the lower 7 bits (values
0-127).

Lex Lechz: This information is not verified. Because information is not
precise enough (how much ROM is writeable? how much RAM is present in page
3?) RuMSX does not emulate it completely!

SOFT TITLE : HALNOTE (6M)

BOARD : HAL ENGINE III (HAL LABORATORY)

MEGAROM CONTROLLER : M17H003 (OKI JAPAN:64pin) -- Konami 8KB Method(?)

ROM : HALOS-14 (40PIN:2M for HALNOTE OS??), LH5321L7 (SHARP:32PIN),
LH532122 (SHARP:32PIN) for KANJI & MSX-JE

SRAM(?) : AKM624ALSP-12 (ASAHI KASEI:28PIN) * 2EA

BATTERY : BR2330 (+3V)  MATSUSHITA ELECTRIC JAPAN)

ANOTHER CHIP : M74HC244P (MITSUBISHI : 20PIN) * 2EA, M74HC245P (MITSUBISHI
:20PIN), HBN-1K (9K4 12) (RICHO : 20PIN)

SWITCH ADDRESS : AFFF

SAVE ADDRESS : A000

BLOCK SIZE : 2000

FIRST BLOCK (FIRST BANK): 00

LAST BLOCK (LAST BANK) : 7F

TOTAL SIZE : 8Mega Bit (REAL SIZE : 6Mega Bit)


 * BLOCK 00 ~ 1F (2Mega Bit) : HALNOTE's Operating System Area.
 * BLOCK 2F ~ 3F (2Mega Bit) : Non Using Area. (Maybe RAM??)
 * BLOCK 40 ~ 7F (4Mega Bit) : JIS 1st/2nd Kanji & MSX-JE


===============

Next, additional information by Rudolf:

About status in RuMSX:
hmm, I guess the Halnote mapper in RuMSX is less working.
Of course I like to share the existing code. It hopefully helps to create
a fully working code.
The HALNOTE.ROM and HALNOTE1.DSK are starting properly, but after painting
the screen the code appears to hang. I assume this is due to the incomplete
implementation, but I have still no time to examine the current situation
in more detail. Therefore...

(Manuel: he supplied a couple of files form the RuMSX sources, available
on request.)

Current state & source:

1) RomtypeHalNote.htm - the mapper description, which is part of the help
files. Some parts are very technical, some parts unknown and assumptions
(explicitly stated). Anyway it is a good start to rebuild all facts and the
current state of my emulation. This file is part of my public source.
(Manuel: see above.)

2) Msxmedia.c - manages the media: maps the halnote.rom into pages 0-3
(64kb) and performs the auto-detection of this rom. This file is part of my
public source.

3) Msxmem.c - contains the memory-manager. The current implementation adds
16KB (S)RAM at the beginning of the image and fills them with 0xFF. This in
turn moves the ROM start to page 1 (beginning at 0x4000). This file is part
of my public source.
Notes:
3b) the SRAM size is described as 16KB, but I cannot verify it right now
3a) 0xFF seems to be the initial value of the cartridge SRAM, where
working with the ROM can change the SRAM contents - which will be used on
subsequent reboots. It would be a nice feature to support a reset to the
initial values (or is it provided somewhere within the ROM?). Anyway:
during experimental beta RuMSX does not save the contents, so they are
currently managed as normal RAM memory.

4) Msx.c - is for now internal only. Of course you can use all Halnote
relevant parts of this file. This is basically the function MapROM(), which
contains a section for the type ROMTYPE_EX_HALNOTE. The current
implementation behaves as following:
4a) Halnote and it's SRAM is mapped into pages 0-3 (64KB)
4b) Page 0 contains the (S)RAM
4c) Halnote uses 8KB memory banks
4d) Banks can only be changed by writing into page 1 or 2 (0x4000-0xBFFF).
Writing into an address switches the bank that is mapped to this address.
4e) The (S)RAM does not use bank-numbers. It appears to be fixed to page 0
and cannot be switched or moved.
4f) Valid bank-numbers are 0x00 to 0x7F (7 bits only, bit7=0). This
switches the banks in read-only mode
4g) Using bank-numbers 0x80 to 0xFF (bit7=1) ignores bit7, so that also
values 0x00-0x7F are used. But in this case the banks are writeable. This
is - for sure - not fully correct, but there are some indicators that some
pages do also contain RAM that can be toggled into readonly mode. This
implementation is intended to figure out more details about that.


===================

About testing it:

The HALNOTE consists of the ROM-cartridge and 2 disks. The ROM as
stand-alone cartridge appears to be worthless. Even in combination with the
2 disks reveals what's in it!
Insert the ROM-cartridge and boot  from Disk1. AUTOEXEC.BAT will run
HN.COM and should start the user-interface. In RuMSX the graphical
user-interface appears before the program freezes. Still something wrong
with the ROM-mapper...

=============

About usage of this mapper type in the Sony HB-F1XDJ MSX2+:

The HBF1XDJ.ROM indeed seems to use a mapper very similar to halnote.

a) The halnote-type (S)RAM in page 0 seems not to be present, so the ROM
appears to start at &H4000 only. Anyway: for experimental reasons the same
mapper can be used because the resulting configuration (except from the
additional RAM) would be the same.

b) Found mapping adresses are &H4000, &H6000 and &H8000.

c) The ROM-boot routine registeres an EXTBIO hook responding to calls with
D=&H10, E=&H00. This means that this bios extension provides a
kanji-driver. And really performing a CALL KANJI in MSX Basic accesses
several pages of this ROM.

d) Unbelievable that this additional driver (to MSXKANJI.ROM/32kb and
KANJI.ROM/256kb) should support Kanji only. Even the size of
HBF1XDJ.ROM/1024kb assumes that there is something else hidden in it. So it
may be worth more examination, but this would be an even harder task.
Hints: the small code starting at &H4000 contains the initialisation and
EXTBIO entrypoint only. The code starting at &H6000 seems to provide some
sort of BIOS routines (jump-table) for any unknown reason. Maybe it is
really a Kanji-driver only, but - who knows...?

That's it for now...

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=421861&aid=961064&group_id=38274

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Openmsx-bugs mailing list
Openmsx-bugs@...
https://lists.sourceforge.net/lists/listinfo/openmsx-bugs