Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user Artcore ! (Registered 2024-12-18) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > MPS803 external EPROM
2022-04-23 14:40
Fresh

Registered: Jan 2005
Posts: 101
MPS803 external EPROM

Hi everyone,
some time ago I purchased for nearly nothing an old MPS803 and these days I found the time to open it to clean it up and, well, to take a look at what's inside.
It turns out the motherboard has a couple of free sockets where you can put, respectively, a 74373 and a 2732 (or 2764).
The Service Manual states that by adding those ICs and shorting a jumper you can switch from internal D7811G ROM to external EPROM.
Looking at the emulators I only found a font file (mps803) so my first guess is it can only be used for fonts. Still, according to the Service Manual, the EPROM should basically replace the internal ROM.
Now, I do know the hardware is heavily limited, but I'm pretty curious about this extension: is it only useable for fonts or is it possibile to put code there?
And if the latter, is there any documentation about it?
Thanks you all!
 
... 10 posts hidden. Click here to view all posts....
 
2022-05-01 06:50
BiGFooT

Registered: Mar 2002
Posts: 33
Well Fresh, it's nice to see your first results and achievement.

The dump looks promising, as it's something, but it's not good. I don't know if it's misaligned, or something else, but doesn't add up.

The init seems to be good
LXI SP,0 ; init stack
MVI EOM,0 ; disable timer
JRE PC+2d ; jump to 0x35
...
0x35:
MVI A,8
MOV ???,A ; Move to unknown register? That 0 is not a valid register somewhat.
MVI A,0x8e
MOV ???,A ; Move to unknown register? That 0 is not a valid register somewhat.
MVI A,0
MOV PA,A
...

Also, it seems that the EI / RTI interrupt handling is looks good, but the overall picture of the dump is - at least for me - doesn't add up.

---

Anyway, I'm happy that you was able to do this and I hope that it's not an address / data collision/timing issue with the mode switching. I hope that you can figure out what's the problem or what happened and we can start to dissect this newer seen before piece of code.
2022-05-01 19:20
Fresh

Registered: Jan 2005
Posts: 101
Totally true, BigFooT.
There were indeed some errors in both printer and C64 sides:
The most impactful were on printer code, but in general the whole protocol was far from being reliable.
Now it's still quite ugly - first time I fiddle with serial cable - but at least it does its job pretty well and way faster than the first version.
A preview of the first lines:

0000: 04 00 00    LXI     SP,$0000     ; Init stack pointer
0003: 64 83 90    MVI     EOM,$90      ; Set LV1 and enable output
0006: 4e 2d       JRE     $0035        ; => 0035
<...>
0035: 69 08       MVI     A,$08        ; Enable RAM 
0037: 4d d0       MOV     MM,A
0039: 69 8e       MVI     A,$8E        ; Set control mode
003b: 4d d1       MOV     MCC,A        ; for some pins of port C
003d: 69 ff       MVI     A,$FF        ; Put all ports in input mode
003f: 4d c0       MOV     PA,A
0041: 4d c1       MOV     PB,A
0043: 4d c2       MOV     PC,A
<...>
2022-05-01 21:13
Claus_2015

Registered: Oct 2012
Posts: 53
Cool stuff! Next step: run Doom on continuous paper \o/
2022-05-02 19:48
chatGPZ

Registered: Dec 2001
Posts: 11385
BTW, could you tell what exactly is printed on the IC? Is there a commodore specific part number? (I'm just renaming all the files in VICE to use the part numbers, and it would make sense to use this proper dump now :))

That said, i wonder where the charset data comes from... there should be at least 2k (1k for upper and 1k for lowercase) ... but... mmh :) how much RAM does this controller have? Is it decompressing it on the fly?
2022-05-02 20:54
BiGFooT

Registered: Mar 2002
Posts: 33
@Fresh: It's a good dump \o/ Great job mate.
I need to check the schematics to start the dissecting, but it's a nice code with weird jumptables. :)

@Groepaz: It's from $0c3f of the dump, 160 characters in total, 7x6 bits. The offset calculation code is at $09c0 in the rom code.

2022-05-02 21:40
Fresh

Registered: Jan 2005
Posts: 101
@BigFooT: nice finding! :)
I'm going to start looking at the code now, pity there doesn't seem to be some ASCII signature or similar, would have been a nice trivia. Yes, space is really tight...

@Groepaz, BigFooT already answered most of your questions, for completeness:
- The MCU part number is "D7811G 111-U32053A", its socket is labeled "#4" on PCB.
- It has 4k internal ROM and 256 byte RAM.
"U32053A" is the ROM revision, maybe there are printers with different firmware version which we could dump.
2022-05-03 12:57
chatGPZ

Registered: Dec 2001
Posts: 11385
Cool cool! Bigfoot: is it "bit packed"? Can you tell a bit more so i dont have to work it out as well? =) nvm, got it :)
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
CA$H/TRiAD
rikib80
Alakran_64
ΛΛdZ
fenz/SCC
zscs
Guests online: 89
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.6)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 No Listen  (9.6)
3 Party Elk 2  (9.6)
4 Cubic Dream  (9.6)
5 Copper Booze  (9.6)
6 Rainbow Connection  (9.5)
7 Dawnfall V1.1  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top NTSC-Fixers
1 Pudwerx  (10)
2 Booze  (9.7)
3 Stormbringer  (9.7)
4 Fungus  (9.6)
5 Grim Reaper  (9.3)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.037 sec.