Werben ++++ Informieren english

Discuss the games, programs, utilities... and vaporware!
Post Reply
User avatar
@username@
Posts: 335
Joined: Tue Oct 22, 2013 6:59 pm
Location: Scotland

Werben ++++ Informieren english

Post by @username@ » Sun Dec 28, 2014 8:39 pm

Today I was looking at the Werben Homebrew/Demo/Prototype rom image.

To complete it's transformation to english ( Y for yes, and not J ) apply the following

Code: Select all

00001096: 4A 59
00001104: 4A 59
0000118B: 4A 59
00001287: 4A 59
0000138E: 4A 59
00001665: 4A 59
Although this is a 10K rom, this is completely in error. What we have is an 8K ROM, with a 2K EEPROM located at $4000.

This becomes clear when you look at the routine at $B9CA

Code: Select all

ROM:B9CA sub_B9CA:                               ; CODE XREF: ROM:B074p
ROM:B9CA                 LDA     $4060
ROM:B9CD                 CMP     #$55 ; 'U'
ROM:B9CF                 BEQ     loc_BA08
ROM:B9D1                 LDA     $4061
ROM:B9D4                 CMP     #$55 ; 'U'
ROM:B9D6                 BEQ     loc_BA08
ROM:B9D8                 JSR     sub_B97B
ROM:B9DB                 LDA     #0
ROM:B9DD                 STA     $89
ROM:B9DF                 LDA     #$F
ROM:B9E1                 STA     $8A
ROM:B9E3
ROM:B9E3 loc_B9E3:                               ; CODE XREF: sub_B9CA+27j
ROM:B9E3                 LDY     $89
ROM:B9E5                 INC     $89
ROM:B9E7                 LDA     $89
ROM:B9E9                 STA     $4070,Y
ROM:B9EC                 JSR     sub_B97B
ROM:B9EF                 DEC     $8A
ROM:B9F1                 BNE     loc_B9E3
ROM:B9F3                 LDY     $89
ROM:B9F5                 LDA     #$55 ; 'U'
ROM:B9F7                 STA     $4070,Y
ROM:B9FA                 JSR     sub_B97B
ROM:B9FD                 LDA     #$F
ROM:B9FF                 STA     $8B
ROM:BA01
ROM:BA01 loc_BA01:                               ; CODE XREF: sub_B9CA+3Cj
ROM:BA01                 JSR     sub_B98D
ROM:BA04                 DEC     $8B
ROM:BA06                 BNE     loc_BA01
ROM:BA08
ROM:BA08 loc_BA08:                               ; CODE XREF: sub_B9CA+5j
ROM:BA08                                         ; sub_B9CA+Cj
ROM:BA08                 JSR     sub_B97B
ROM:BA0B                 LDA     #$55 ; 'U'
ROM:BA0D                 STA     $4060
ROM:BA10                 JSR     sub_B97B
ROM:BA13                 LDA     #$55 ; 'U'
ROM:BA15                 STA     $4061
ROM:BA18                 JSR     sub_B97B
ROM:BA1B                 RTS
This routine checks for updates/errors by checking that location $4060 and $4061 contain $55.

When you update a screen, the data is then written back to screen number * 128 + $4000. So screen 1 as at $4080, 2 at $4100 and so on.

The EEPROM data is loaded to $7000, then mirrored to $4000 - this is why the program still works in emulators which don't block writing to ROM space.

Here's the "code" at $7000, magically mirrored to $4000

Code: Select all

00000000   33 01 FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  3...............
00000010   BF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000020   DF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000030   EF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000040   F7 FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000050   FB FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000060   55 55 FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  UU..............
00000070   01 02 03 04  05 06 07 08  09 0A 0B 0C  0D 0E 0F 55  ...............U
00000080   48 45 4C 4C  4F 21 20 20  48 45 4C 4C  4F 21 20 20  HELLO!  HELLO!
00000090   20 49 20 41  4D 20 54 48  45 20 20 20  20 4E 45 57   I AM THE    NEW
000000A0   20 43 4F 4D  50 55 54 45  52 20 20 20  46 52 4F 4D   COMPUTER   FROM
000000B0   20 53 41 4E  59 4F 20 20  20 43 52 45  41 54 49 56   SANYO   CREATIV
000000C0   49 53 49 4F  4E 20 12 16  71 FF FF FF  FF FF FF FF  ISION ..q.......
000000D0   FF FB FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
000000E0   FF FD FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
000000F0   FF FE FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000100   20 41 54 20  50 52 45 53  45 4E 54 20  49 20 20 20   AT PRESENT I
00000110   41 4D 20 41  43 54 49 56  45 20 20 20  49 4E 20 41  AM ACTIVE   IN A
If you add $4000 to the offsets, you begin to see how the data is stored in the EEPROM. At $60/$61($4060/$4061) is $55 as expected.
$4070-$407E contain the sequence of display. $80 is the first screen, text followed by $12, $16 and $71.
These bytes are just border, banner and font colours. Knowing this, you can put together better colour schemes than the UI permits :)

The good news is that the CSL does have RAM at $4000 - so it will be possible to have an 8K loadable program, and a separate 2K loadable banner set.

With the original Multicart - it would be interesting to know what this image does on real hardware. If you can change the text / outputs - I would be interested to know where the 2K RAM is being taken from.
User avatar
MADrigal
Site Admin
Posts: 1267
Joined: Sun Sep 15, 2013 1:00 pm
Contact:

Re: Werben ++++ Informieren english

Post by MADrigal » Mon Dec 29, 2014 4:38 am

@username@ wrote:Although this is a 10K rom, this is completely in error.
Hey no one has ever said that was a normal ROM program. :)

Quoting from the CVE website:

"Demo cartridge with programmable slideshow and text banners (data is written/read from the included EEPROM)."

I have personally dumped the cartridge (both the ROM and the EEPROM) around 2007.

The circuit on the PCB has additional analog components allowing to write into the included EEPROM. It's a very fascinating piece of hardware.
@username@ wrote:The good news is that the CSL does have RAM at $4000 - so it will be possible to have an 8K loadable program, and a separate 2K loadable banner set.
That's absolutely great news!

Unfortunately, when we decided to include the Werben demo in the Multicart, we had no other choice than making a non-changeable ROM program out of the whole set of ROM+EEPROM. Then I added the English version in order to let non-Germans enjoy the demo, too. That was the best we could do at that time.

Also, we couldn't find any other copy of the Werben demo cartridge, possibly including the original "data" in it. The only copy we had found, had that silly "advertisement" rolling demo for BASIC courses, etc. IT must have been used in some computer shops.
@username@ wrote:With the original Multicart - it would be interesting to know what this image does on real hardware.
Unfortunately on the Multicart, any change you operate to the "data" is not written anywhere. The program works well, but you can't change the data.

Thanks very much for your clear explanations. :)
Post Reply