HI John!  Thanks!  Yes, that is an interesting thread on MSX forum.  If
anyone can figure out the V9938 registers it is someone there.

 

I am thinking it might help the conversation there to describe the S-100 Z80
CPU board, S-100 VDP, and S-100 Utility board as one third each of a three
board MSX2 suite.  The S-100 VDP is intended to be MSX2 compatible since it
uses the V9938 and is also able to use the Yamaha YM2149 instead of the
AY-3-8910 sound generator.  The S-100 Utility also has MSX2 features like
the real-time clock chip, etc.  There is a cartridge port and matrix ASCII
key board port and cassette port.  However the cassette port is poorly
defined at the moment as I don't quite have all the details on how to
implement it.  Also includes a parallel port and a serial port.  

 

There are some dependencies between the boards like for example the S-100
VDP generates the unique Z80 clock frequency (3.57xxxx MHz) which
synchronizes the S-100 Z80 CPU V2 and S-100 VDP V4 boards using a
non-defined S-100 bus pin.  You can use nearly any frequency Z80 but to get
something that works well with the V9938 the CPU needs to be synchronized
with it.

 

I am expecting the S-100 Utility board will go through some pretty massive
changes for the V2 version once we shake out the bugs, logical fallacies,
missing information, and other gaps in the design.  I think there is enough
there to get a working board but we are still quite a ways from completely
functional board.  S-100 boards and MSX both have some pretty unique
idiosyncrasies and trying to get them to co-exist and cooperate is highly
non-intuitive to me.  It is pretty clear they both descended from completely
different design schools and have little in common.

 

Thanks and have a nice day!

Andrew Lynch

 

From: [email protected] [mailto:[email protected]] On
Behalf Of John Monahan
Sent: Friday, January 24, 2014 11:56 AM
To: [email protected]
Subject: RE: [N8VEM-S100:2285] Re: Jumpers on Z-80 CPU Card

 

Guys, somewhat related I have opened up a tread with an MSX Forum group that
may be able to help us with the related VDP board, and may in fact be able
to help here also.  To get directly to the relevant tread try:-

 

http://www.msx.org/forum/msx-talk/software/software-s-100-bus-computer-using
-msx-video-hardware#comment-229369

 

Also Neil, in the end it will be very useful if this utility board can sit
silently in an S-100 system until called upon, since many users will want to
do other things with  their system as well.  Why can't one boot up with our
Z80 board, initialize the 8255, load MSX code to low RAM, jump to it and
from there shadow out the Z80 onboard ROM (send 01H to port D3H), giving the
full 64K of RAM to the Z80.

John

 

 

 

 

From: [email protected] [mailto:[email protected]] On
Behalf Of Andrew Lynch
Sent: Friday, January 24, 2014 3:35 AM
To: [email protected]
Subject: Re: [N8VEM-S100:2284] Re: Jumpers on Z-80 CPU Card

 

Thanks Neil!  That's great news!  I knew this board was going to be a tough
one.  It looks like I munged the reset sequence in translating from MSX to
S-100.  Hopefully it is fixable!  Thanks and have a nice day!

Andrew Lynch

 

From: nbreeden <[email protected]>
To: [email protected] 
Sent: Thursday, January 23, 2014 10:47 PM
Subject: Re: [N8VEM-S100:2284] Re: Jumpers on Z-80 CPU Card

 

MSX2 Update.

I've been looking in detail at the Goldstar implementation Andrew based the
utility board on and have some observations and thoughts on how the Goldstar
MSX2 design works.

 

The system on power up or reset needs to be able to access the system BIOS
ROM; the ROM is in SLOT Zero starting at address 0x0000. The 8255 PIO is
also reset at power up or on system reset resulting in the ports being set
to input; this means Port A is not configured to allow access to the BIOS
ROM in slot zero; the first few bytes in that ROM configure the 8255 to
allow it to control the slots.

 

 

; $0000 CHKRAM
; Function : Tests RAM and sets RAM slot for the system
; Registers: All
; Remark   : After this, a jump must be made to INIT, for further
initialization.
chkram:
                ; Initialize interface
                ld      a,$82
                out     (PPI_REGS),a
                ld      a,$50
                out     (GIO_REGS),a 

               ; Initialize memory bank
                xor     a
                out     (MAP_REG4),a
                inc     a
                out     (MAP_REG3),a
                inc     a
                out     (MAP_REG2),a
                inc     a
                out     (MAP_REG1),a

 

We thus have a chicken and egg issue. In the Goldstar design U32A and U32B
are configured as a set/reset flip flop. I believe this flip flop is the key
to how the system powers up; the sequence would be:

 

Reset

 

8255 ports are set to input

 

The S/R flip flop holds the G inputs on U27 (74LS153) high; as both G inputs
are high the two outputs (1Y and 2Y) are low.

 

These two outputs become the select inputs on U11 (74LS139). As A14/A15 are
low (these to the G inputs on the LS139) the outputs of U11 that control
slot 0 are low and the system can access the BIOS ROM to run the first few
instructions; these run and the 8255 is set to configure the slots.

 

Y5 which is generated by the C port in the 8255 as part of the keyboard
scanning; this then clears the S/R flip flop; the G inputs on U27 are set to
0s and the system enters the normal 8255 controlled slot mode.

 

The utility board design is using the 8255 select bit to clear the S/R flip
flop; I don't believe this will work as it will reset the S/R flip flop
before the 8255 is fully configured.

 

I'll be updating my monitor to configure the 8255 as the MSX2 BIOS does and
will see if I need to tweak the utility board to match the Goldstar design.

 

-Neil

 

-Neil

-- 
You received this message because you are subscribed to the Google Groups
"N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

 

-- 
You received this message because you are subscribed to the Google Groups
"N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups
"N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"N8VEM-S100" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to