post

2mb and 4mb mapper diy

2mb and 4mb memory mapper for msx2 and msx2+ computers with real z80 chip (c)2018 Andrey Koryakin

Internal mapper, the Z80 IC will be placed on the memory mapper pcb and the pcb in the Z80 IC socket.

Memory registers and back annotation are supported.
(c)2018 Andrey Koryakin

Comes with complete description, design files, EAGLE-8.2 project, Gerber files
PCB dimension 71.0 x 54.3

See here for the project description.

2mb and 4mb internal slot expander

(c)2018 Andrey Koryakin

2mb and 4mb memory mapper for msx2 and msx2+ computers with real z80 chip.

Internal mapper, the Z80 IC will be placed on the memory mapper pcb and the pcb in the Z80 IC socket.

Memory registers and back annotation are supported.

Tested on Sony HB-FzXD, XDmk2, HB-F1XDJ, XV, Panasonic FS-A1mk2, FS-A1f.
Should work on any MSX-2, MSx2+ where a real Z80 IC is used as CPU.
Only requires lifting out the Z80 and inserting it on the mapper PCB and attaching a wire to the SLTSL line in the compyter as you can find on pin 53 of the MSX Engine S9185 or pin 16 of an old DRAM IC


(c)2018 Andrey Koryakin

Comes with complete description, design files, EAGLE-8.2 project, Gerber files
PCB dimension 71.0 x 54.3

In this archive the complete project files are enclosed, with lots of images!

Some images to get your attention:

post

Sony HBI-V1

Video Digitizer cartridge (MSX2+ (screen 10, 11 and 12) and MSX2 (Screen 8)

Sony HBI-V1 video capture module user manual in German
Sony HBI-V1 video capture module user manual
Sony HBI-V1 usser manual
Sony HBI-V1 service manual

IC’s inside the HBI-V1:
NTSC/PAL circuit Sony V7201
Oki MSM79V023 gate array

Short userguide, calls from MSX-Basic
From the japanese manual I have (long ago) interpreted and tested the calls for the HBI-V1 as follows:

HBI-V1 CALLs

Calls work in screen 8,10,11,12, function depends on screen setting

CALL AD(A,B,C,D,E,F,G) autodigitize

A block size X
0: 1/1	3: 1/4	6: 2/3
1: 1/2 4: 3/4	7: 2/4
2: 1/3	5: 2/2

B blocksize Y
0: 1/1	3: 1/4	6:2/3
1: 1/2 4: 3/4	7: 2/4
2: 1/3	5: 2/2

c startblock X
0

D startblock Y
0

E wait parameter (in frames, 60 per second, in Europe 50)
0 ~ 255 0 = nowait

F loop
0,1 (1 = loop)

G manual 
0,1,2

CALL DCLS Digitizer Clear Screen

CALL DCOPY (A.B) - (C,D) TO (E,F) call digitizer copy

0 <= A <=255
0 <= B <=211

A <= C <= 255

B <= D <= 211

0 <= E <=255
0 <= F <=211

CALL DG Call digitizer menu

CALL MD (A,B,C,D,E) call manual digitize, see autodigitize

A
0: 1/1	3: 1/4	6: 2/3
1: 1/2  4: 3/4	7: 2/4
2: 1/3	5: 2/2

B
0: 1/1	3: 1/4	6: 2/3
1: 1/2  4: 3/4	7: 2/4
2: 1/3	5: 2/2

c
0

D
0

E 
0,1,2

YJK (Y,J,K) RGB value to YJK?

-7 < Y < 7
-7 < J < 7
-7 < K < 7

CALL FMD (G,H,A,B,C,D)

FMD is like CALL AD, but with an interesting original second parameter:

H,  encoding type of image
0 YJK  
1 YJK + YAE  
2 RGB

Some insight how the capturing is done:
1. First the composite video signal is split into RGB (with a standard television IC) and sync (the well known LM1881).
2. The three RGB signals are send to three a/d converters (6 bit).
3. The digital data is then stored in a 64 K DRAM memory after being converted to YJK.

The whole logic of capture, convert and store in DRAM and the interface with the MSX is performed by a OKI/Sony IC labeled MSM79v023. It is a standard IC it seems, the datasheet is listed above.

The program is stored in a standard 27256 ROM.

Hardware modification to PAL, info by Mohai (credit also for the photos)

Recently, I bought an HBI-V1 complete with box, manual and software.
It has been imported and adapted to PAL by LASP (an old Spanish MSX importer).
I have been studying the mod and I found following parts were changed or modified:

X101: PAL = 4.4333619 NTSC = 3.579545
R106: PAL = 4700 ohm NTSC = 1000 ohm
R107: PAL = 100 ohm NTSC = 1000 ohm

IC101 (V7020): Cut pins 19,20,21

)

Programming from assembler (Info by NYYRIKKI et al

 

#7E00-#7EFF: Read buffer. Will return 256*256 picture. 
After one byte is read, next one will be returned.
(LDIR/OTIR is used to read multiple bytes at a time)


#7FFC R/W: %ABC***XX
A Read: Busy or something like that (Z=Idle, NZ=Busy) Usually you can skip with ESC key.
B Read: Sync something (Wait to be NZ and wait to be back Z)
C Read: Sync something else (Wait to be Z and wait to be back NZ) (Video refresh?)
XX Write: Command
		00 = Terminate
		01 = Digitize
		10 = Digitize with delay
		11 = ??
 
 
#7FFD R/W: %A**DXXYY
A Read: Even/Odd frame
D Read: Video signal detected (NZ = No video signal)
XX Write: Start block Y
YY Write: Start block X
 
#7FFE Write: %XXYYYZZZ
XX = Screen mode
	00 = SCREEN 12
	01 = SCREEN 10/11
	10 = SCREEN 8
	11 = Other / Clear memory
 
YYY = Block size Y
ZZZ = Block size X
 
#7FFF Write: 8bit data (???)
 
To reset, write 0 to #7FFF - #7FFC (=backwards)
 
 Some more info:



Write to #7FFF:

Delay for write command 2 (in frames)
 
 
BIOS Routines:
--------------
 
#4010 "SONY HBI-V1 V10",0
 
#4020 Digitize
 
	Input:
	C	0 = Copy to VDP
	B	0 = Don't loop
	E	Nuber of frames to wait (0 = No wait)
	HL	Pointer to 7 bytes parameter table
 
	Table pointed by HL:
 
	n	0-255
	n+1	0-3	Screen mode
	n+2	0-7 	Block size Y ???
	n+3	0-7	Block size X ???
	n+4	0-3	Start block Y ???
	n+5	0-3	Start block X ???
	n+6	0-3	Command
 
#4023 DCOPY or something like that
 
	Input:
	HL	Pointer to parameter table 
 
	Table pointed by HL:
	Lucky guess: x,y,x,y,x,y
 
#4026 YJK color adjust (Similar to CALL YJK)
	Input:
 
	Color table pointed by HL
 
#4029 DCLS
	Input:
 
	None
 
	Explanation:
	Calls digitize routine (#4020) with following values:
 
	BC=1
	E=0
	Table pointed by HL: 0,3,0,0,0,0,1
 
#402C Start digitize software
	Input:
 
	None
 
	Explanation:
	Same as CALL DG in BASIC. Loads the BASIC program from ROM.
 
#402F Send command to hardware
	Input:
	HL	Pointer to 7 bytes parameter table
 
	Table pointed by HL:
	Same as in Digitize routine.
 
#4032 Copy Digitizer RAM to VRAM.
	Input:
 
	None

Second slot HX10, MPC100, SVI.728, CPC-200, FC-200

ome MSX-1 computers seem to have only one cartridge slot, on top.

On the back there is a so called 50 pin dual row expansion connector, which is in fact a cartridge slot.

I know of Toshiba HX-10, Sanyo MPC100, Spectravideo SVI.728,  Deawoo CPC-200, Goldstar FC200 to have such a connector, which can be made into  a second cartridge slot.

As you can see (page extracted from the SVI.728 service manual) the pin setting is identical.

From the Sanyo MPC100 manual.

Just to be sure, to know what is on what pin, measure e.g. the voltages on the connector! Pin 50 is -12V, pin 48 +12V , 45 and 47 +5V, 41 and 43 is ground. Do this also on the MSX Cartridge connector so you really know what is up or down or left or right!

Warning: Inserting a cartridge in the wrong way may kill your computer, having up and down row mixed up also. SO MEASURE!  And make it clear how to insert a cartridge, by physically inserting an obstruction to prevent that. See the example here after for such a simple but effective  construction

There after it is not too difficult to create a cable to make a second cartridge slot. You will need a 50 pin dual row connector to fit in the rear of the computer and a 50 pin MSX compatible cartridge slot connector.
If you are lucky you can reuse an old SCSI cable and get a crimp on cartridge connector.

If the cartridge connector is the PCB type, you might use an experimenters print and solder the wires.

Here is a nice example by GDX, first published on MSXVillage in french. Translation errors are mine!

What you need :

1 male 50-pin connector. It is the same connector as the old SCSI hard drives.
1 50P ribbon cable 15 to 20 cm long (SCSI type)
1 MSX SLOT connector (“Card Edge Connectors 50 pin”)
A plate with holes (“Veroboard”).
1 housing to fix the plate. (a box found in electronics stores)

Necessary tools :

1 small round file.
1 small flat file.
1 hand drill.
1 cutter and good scissors.
1 soldering iron 25 ~ 40W.
Solder.
1 wire stripper.
vice. (Not required if you are recovering a SCSI cable)

How to make:

1 / Solder the SLOT MSX connector onto the hole plate. Place it where you think it is most appropriate for the case you have.

2 / Drill the mounting holes of the plate in advance. Caution, allow the cable to pass through.

3 / Crimp the connector on the cable cable with the vice. Be careful that the cable is in the correct position. Avoid putting it off.
I did not have to do this manipulation. Because I used a piece of SCSI recovery cable. This cable has only one key in the middle instead of two as on the extension bus connector, so I had to file it so that it could fit into the connector of the bus.

4 / Separate each wire on the other end about 1 cm with a cutter and cut all even cables (2, 4, 6, ~, 50) 6 mm with scissors.

5 / Strip each wire to 1 mm, no more because the insulation shrinks when it is heated, then tin each wire and solder them one by one to the MSX connector starting with the even pins. Check each solderpoint (with a magnifying glass if necessary) for even wires before soldering the odd wires. Check each solder joint of the odd wires as well.

6 / To drill the SLOT slot of the cartridge into the housing, attach the plate into the housing, put an MSX cartridge into the SLOT and make measurements. I first used a cutter but being ineffective (it’s seen in the photo), so I used a hand drill and a small round file. With that, it’s done quickly. The small file file serves for finish. A tip, first make a slot too small for the cartridge then adjust the size with the file flat until the cartridge fits well.

7 / The slot for the cable is easily inserted with the flat file.

On the Toshiba HX-10 the expansion cartridge will be slot 3, It is so indicated on the PCB as seen in the next photo.

 

On some computers like the HX10 the SOUNDIN (pin 49) seems not connected. You can fix that, find the audio combine inout point of the audio amplifier on the PCB  by following the resistor/capacitor line from the cartridge connector to pin 49 on the cartridge slot. A bit complicated without circuit diagram to explain, it isusually a resistor and a capacitor in series.

Here is how GDX did it on a HX-10.

Pin 49 of the SLOT-3 is connected to a 10 KΩ resistor which is connected to the (-) side of a 10 μF capacitor. The (+) side goes to the amplifier. Now the Slot is 100% functional.