News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

printer roms (dmp-2000 etc)

Started by arnoldemu, 17:12, 12 August 10

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Devilmarkus

Here's the dmp2000 font:
(I used a small code to convert it)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Bryce

The left column of each character looks like it's a binary value that the Processor uses for something else (amount of ribbon movement or something perhaps?)

But just out of interest (because I was too lazy to read the entire thread).... Why bother??? What use is the content of the printer ROM? What will you do with the info if you do manage to decypher the format? It's not like the code is of any use and the Fonts (NLQ / LQ etc) can be found on the interweb.

Or am I missing something important?

Bryce.

arnoldemu

#52
Quote from: Devilmarkus on 15:04, 27 August 10
Here's the dmp2000 font:
(I used a small code to convert it)



Looking at the lower case 'y' some of that extra data must be used for vertical position? It seems quite high compared to the other chars. A print out of all the letters on the dmp would solve this for us.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: Bryce on 15:06, 27 August 10
The left column of each character looks like it's a binary value that the Processor uses for something else (amount of ribbon movement or something perhaps?)

But just out of interest (because I was too lazy to read the entire thread).... Why bother??? What use is the content of the printer ROM? What will you do with the info if you do manage to decypher the format? It's not like the code is of any use and the Fonts (NLQ / LQ etc) can be found on the interweb.

Or am I missing something important?

Bryce.

Well it seems that each manufacturer could choose to have a different font in their re-badged printers. Probably their own rom code too if you read the 7811 pdf.

And it's true we'll not get the actual printer program code out of the cpu.

But if, for instance, your name was Markus and you wanted to emulate/simulate the printer for true nostalgia, now you can use the real font to get the real result.  ;D He's already done some of it already but used a font he found on the internet.

Well, printers may not be interesting, but it is good to have as much info as possible about Amstrad specific printers and
if somebody (Markus) was crazy enough to emulate it then we can have real looking output.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Devilmarkus

Hehehehe...
Who wants to play with the DMP font: I attached the short program I coded to convert it.

To run:
java -jar dmp2font.jar

Or double click on the jar file.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

robcfg

When is your printer test page with the new font scheduled?  ;D


In a few days it seems I'll be able to get a DMP3000 rom so, stay tuned!

Devilmarkus

Quote from: robcfg on 16:28, 27 August 10
When is your printer test page with the new font scheduled?  ;D


In a few days it seems I'll be able to get a DMP3000 rom so, stay tuned!

It would be cool if you could printout a test page with the fonts and NLQ/DRAFT and scan it.

Important for me to know is:
- How many chars per line in NLQ or/and DRAFT
- How many lines per page in NLQ/DRAFT?
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

I made 2 little basic progs to print a small test:
10 WIDTH 66
20 PRINT #8,CHR$(27);"x";CHR$(1);"TL"
30 t = 0
40 FOR g=1 TO 17
50 FOR k=32 TO 97
60 PRINT #8,CHR$(k+t);:NEXT
70 PRINT #8
80 t=t+1
90 NEXT


10 PRINT #8,"control tests"
20 PRINT #8,CHR$(27);"4";"ITALIC test"
30 PRINT #8,CHR$(27);"5";"BACK to standard"
40 PRINT #8,CHR$(27);"E";"Bold test 1234567890abcdefghijklmnopqrstuvwxyz"
50 PRINT #8,CHR$(27);"F";"BACK to standard"
60 PRINT #8,CHR$(27);"4";CHR$(27);"E";"Bold/Italic test 1234567890abcdefghijklmnopqrstuvwxyz"
70 PRINT #8,CHR$(27);"5";CHR$(27);"F";"BACK to standard"
80 PRINT #8,CHR$(27);"M";"Minitext text 1234567890abcdefghijklmnopqrstuvwxyz"
90 PRINT #8,CHR$(27);"P";"BACK to standard"
100 PRINT #8,CHR$(27);"x";CHR$(1);"NLQ text 1234567890abcdefghijklmnopqrstuvwxyz"
110 PRINT #8,CHR$(27);"x";CHR$(0);"BACK to standard"
120 PRINT #8:PRINT #8:LIST #8
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

Here's the same font without the marks:


Perhaps useful for the wiki...

I am wondering where the 2nd font is...
Handbook tells about 2 fonts (Pica and Elite)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

arnoldemu

Quote from: Devilmarkus on 16:59, 27 August 10
Here's the same font without the marks:


Perhaps useful for the wiki...

I am wondering where the 2nd font is...
Handbook tells about 2 fonts (Pica and Elite)
Only thing I can think of is that those extra pixels are controls to tell how to modify the font to make pica/elite etc.
but also for y positioning too (look at the lower y for example).

Nice for the wiki though :)
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Devilmarkus

Quote from: arnoldemu on 17:12, 27 August 10
Only thing I can think of is that those extra pixels are controls to tell how to modify the font to make pica/elite etc.
but also for y positioning too (look at the lower y for example).

I also first suggested that (y positioning)
But when you look closer, the same marks are on other chars, too...
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

nocash

#61
Great work! Thanks for the dump!

I've found one character set, it's the same format as the user-defined ones (via ESC "&" NUL code): The charset is at 3400h-3FFFh, 256 characters, each 12 bytes long: first byte is a prefix (vertical offset flag, and start/end for proportional chars), the other 11 bytes are the bitmap (90' rotated since the printer outputs vertical rows, unlike video output). The space is at 3580h, exclamation mark at 358Ch, double quotes at 3598h etc.

No idea if there are more charsets (for elite, superscript, draft/nlq styles, etc.) Via ESC codes once can define only the above format - so maybe the printer does have only that one charset, and it squeezes that characters for elite/subscript/etc.

Oops, no above are TWO charsets, with 128 chars each, the second set starts at 3A00h, and has the ASCII space at 3B80h.

---

Yup, a disassembler (and assembler) would be nice. If there's code in the EPROM, then one could change it to output the content of the CPUs on-chip 4K ROM... as paper print-out... or, (idea from nilquader), transfer it serially to the CPC via BUSY signal.

Btw. did you take photos of the mainboard? I am wondering if the PCB is made by Amstrad or not (in the service manual, it looks like so). And if the CPU is marked somehow (if there's a custom amstrad-rom in it, then the chip may be marked accordingly)?

Devilmarkus

I added the ripped font to the DMP 2000 wiki page.
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

nocash

Wow, that was fast. Is that the data at 3400h and up?

It doesn't look as expected... theoretically chars should be 11x8 pixels, with a 1-pixel vertical shift flag (so they'd be drawn in a 11x9 pixel field, either using the upper or lower 8 pixels therein).

But your chars are 9x16 pixels? And they do look as if there should be a bigger vertical shift-offset (for "p,q,g,y,etc").

Devilmarkus

Quote from: nocash on 20:04, 27 August 10
But your chars are 9x16 pixels? And they do look as if there should be a bigger vertical shift-offset (for "p,q,g,y,etc").

Well read the last replies carefully there you can read how I ripped the font ;)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

nocash

#65
Whoops, I seem to have missed page 4 of the forum thread :-)
Downloaded the readme.txt... still don't know what you did.
Looks to me as if you deciphered something else than the 3400h..3FFFh bytes (?)
EDIT: Or looking  closer... it looks like that bytes. (right?)

arnoldemu

Quote from: nocash on 20:44, 27 August 10
Whoops, I seem to have missed page 4 of the forum thread :-)
Downloaded the readme.txt... still don't know what you did.
Looks to me as if you deciphered something else than the 3400h..3FFFh bytes (?)
EDIT: Or looking  closer... it looks like that bytes. (right?)
The ROM seems to only contain char data. You are correct it is stored 1 byte per column it seems.
However, when the data is put together the chars don't look correct and pixels are missing. It seems the rom has 1 charset split over two parts of the rom, with one part of the rom having the even lines and the other having the odd lines.
Maybe this interpretation is wrong? but it definitely seems to give the correct result.
So that 1 byte has all even pixels and the other byte for the char has all the odd pixels.
Yes it seems the chars are 16 pixels tall or so..? I think this seems sensible. Perhaps the font we are seeing is for NLQ, and it is processed to make draft, condensed etc?
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

nocash

Either processed... or there are more fonts in the ROM.
For draft printing, chars should be max 9pix in height (since it's a 9pin printer).
I did see only the chars in the last C00h bytes at the end of the ROM.
You mean all bytes are charset data, including 0000h..3400h?


arnoldemu

Quote from: nocash on 21:11, 27 August 10
Either processed... or there are more fonts in the ROM.
For draft printing, chars should be max 9pix in height (since it's a 9pin printer).
I did see only the chars in the last C00h bytes at the end of the ROM.
You mean all bytes are charset data, including 0000h..3400h?
I thought it was the entire rom from 0000h-3fffh but now I look at it,  am not sure.
I don't know what the other data is.
I did dissassemble some of it, but it didn't make sense so I don't think any of it is code. (but I could be wrong ;)

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Devilmarkus

Quote from: nocash on 20:44, 27 August 10
Downloaded the readme.txt... still don't know what you did.
Looks to me as if you deciphered something else than the 3400h..3FFFh bytes (?)
EDIT: Or looking  closer... it looks like that bytes. (right?)

Forget the readme.txt and have a closer eye on dmp2font.jar
The readme is only in this zip because winrar denies to rar single jar files (it wants to extract them)
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

Devilmarkus

Well to show what I did:
I used WinApe and loaded the rom to #4000.
Then I searched the font with WinApe's graphics viewer function:


I took a screenshot of it and used a photo program to remove the grey lines between the single fields, rotated the image around 90° and also mirrored it horizontally.

The result:

For this result I coded a small Java program which sorted the lines to the final image.
Result:
When you put your ear on a hot stove, you can smell how stupid you are ...

Amstrad CPC games in your webbrowser

JavaCPC Desktop Full Release

robcfg

Good evening, Gentlemen!  8)


I uploaded the DMP3000 rom dump, so grab it here while it's still hot!

Cpcmaniaco

And another good news.

Miguel Duran from Museo de 8 bits.

Send me an email telling me that now the link of his page are OK.

http://www.museo8bits.es/impresoras/manuales/index.html

And now you can download the dmp1 service manual :

http://www.museo8bits.es/impresoras/manuales/Amstrad/Amstrad_DMP1_Printer_Service_Manual_300dpi_Agujereado.rar

Enjoy it.

nocash

#73
Nice news! Thanks to both of you!

Just downloaded the DMP1 service manual. Great to have it! I'll put a copy on cpcwiki tomorrow. I'll check the other three service manuals, too. (They are already on cpcwiki, but the museo scans are in higher resolution, so some pages with schematics/etc. could be useful.)

---

There should be more the DMP3000. According to the DMP2000/3000 schematic, http://cpcwiki.eu/imgs/5/56/DMP2000_Schematic.png, the DMP3000 can be fitted with one 32K EPROM, or with two 8K+16K EPROMs. I guess you have the latter combination, and missed the 8K chip...?

Did you take photos? Please yes! Would be nice to see the PCB, markings/stickers on EPROMs, and on the CPU... Judging from this thread, http://cpcwiki.eu/forum/index.php/topic,312.0.html, the CPU in the DMP2000 is marked "Amstrad 40036" (rather than anonymous NEC uPD7811). I guess the one in the DMP3000 has a similar Amstrad number?

---

I've started disassembling the NLQ401 and DMP2000 eproms, and did some research on the MODE pins...

On the NLQ401 the internal ROM is disabled (so the 16K EPROM dump should contain the complete code & data). The eprom is mapped to 0000h-3FFFh. The last ~2000h contain a NLQ character set with ~135 characters, 2x39 bytes/char. The preceeding bytes contain a draft charset, ~220 chars with 12 bytes/char. Both contain ASCII and german umlaut symbols, the draft charset also includes most of the CPC "graphics" symbols.

On the DMP2000, the internal ROM is enabled (and isn't dumped yet). The EPROM is mapped to 2000h and up, and it contains uPD7811 opcodes, so it should be possible to dump the internal ROM; by replacing the EPROM with a dumping-program.

---

Oh, and not to forget, Terje scanned the english DMP3000/3160/3250di user manual. It's now on cpcwiki, too. The strange thing is that (except for the cover) it doesn't contain any info on the 3250di (unlike the french version that describes the extra DIP switches in the preface). Anyways, it contains the complete 3000/3160 programming specs in english, so it's useful enough.

arnoldemu

Quote from: robcfg on 21:58, 01 September 10
Good evening, Gentlemen!  8)


I uploaded the DMP3000 rom dump, so grab it here while it's still hot!
Thanks.

The font data is from &1000-&3fff.
There seems to be more than one font. It seems to be in a similar form to the dmp2000 font.

The first &0000-&fff, looks like code bytes to me, but I've not dissassembled it yet.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Powered by SMFPacks Menu Editor Mod