MITS 8800B CPU Board
Allison
ajp166 at bellatlantic.net
Tue Jun 14 14:01:27 CDT 2005
>
>Subject: Re: MITS 8800B CPU Board
> From: Tom Jennings <tomj at wps.com>
> Date: Tue, 14 Jun 2005 11:51:33 -0700 (PDT)
> To: "General Discussion: On-Topic Posts Only" <cctech at classiccmp.org>
> Cc: cctalk at classiccmp.org
>
>On Mon, 13 Jun 2005, Allison wrote:
>
>> Yes, you will have to have rom at 0000h though and Mwrite
>> was derived and delivered from the front pannel if memory
>> serves. So that means ram will have to be set up to not
>> require Mwrite. Either that or you will have to through
>> something small together to create Mwrite.
>>
>> As to mapping rom out once operational, thats a later problem.
>> It's fairly easy to do.
>
>My S100 system has a homemade EPROM card that powers up into the
>address space, on top of RAM, where the Z80 jumps to it and
>executes from it.
>
>The first thing the EPROM code does is copy itself, in place. This
>reads from EPROM, writes to RAM (well, to EPROM too, but the write
>line is ignored by the EPROM board).
>
>There is a flip-flop set by the RESET line that enables the EPROM
>board. Any I/O instruction (eg. address not decoded) resets the
>flip-flop, disabling the board.
>
>Therefore, right after the EPROM monitor copies itself to RAM, it
>jumps to the serial port init code, and any old IN or OUT
>instruction disables the EPROM card, leaving the full 64K address
>space available.
>
>My EPROM monitor occupies the top 2K? of the first 32K of address
>space. It fits in the lower 32K static memory card. Hitting reset
>does not disturb CP/M (up at ef00h), and leaves "most" TPA
>programs intact.
>
>The board was designed/made by Tom Campbell, who I worked for way
>back when. It's elegantly simple.
>
>
>
> di ; everyone shut up, please
> lxi h, epromstartaddress ; EPROM address
> lxi d, epromstartaddress ; likewise, I'm sure,
> lxi b, 2048 ; BC=EPROM size
> ldir ; whirl!
> in 0 ; disables EPROM
> ...
>
Only one detail... the proposed cpu was 8080 (MITS 8800B)!
di ; everyone shut up, please
loop: lxi h, epromstartaddress ; EPROM address
lxi d, epromstartaddress ; likewise, I'm sure,
lxi b, 2048 ; BC=EPROM size
; ldir ; whirl! ;replace with..
DCX B
MOV a,b
ORA c
JNZ loop
; back to original program
in 0 ; disables EPROM
Horrid as it's mixed 8080/z80 code.
Allison
More information about the cctalk
mailing list