Genie/Genie Junior by PMS

want to request software or documentation that you can't find online? post in here!
User avatar
Pernod
Posts: 1539
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Genie/Genie Junior by PMS

Post by Pernod » Mon May 13, 2019 10:37 pm

tripmeup wrote:
Mon May 13, 2019 9:37 pm
(Genie Junior's Easter Egg screen)

Derek.
I'd read about that, how is it accessed?
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS

Post by tripmeup » Tue May 14, 2019 10:09 am

Pernod wrote:
Mon May 13, 2019 10:37 pm
I'd read about that, how is it accessed?
To quote the manual:
Cunningly concealed within these lines
There are two key for you to find
Revealing GENIE's secret screen
Letting you meet the PMS team

P.S. keys unlock things!
Basically you need to lock the Genie then press CTRL-P .

Take Care! You will need to know the Genie Password to be able to unlock it again!

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS

Post by tripmeup » Sun Jun 09, 2019 9:27 pm

Sorry for the silence....
billcarr2005 wrote:
Sun May 12, 2019 4:09 pm
If you think it might help, it would be trivial to dump the (battery backed) RAM sections, just after resetting the device, in case the ROM code is looking for something specific?
It won't reveal very much. the first page of the battery backed RAM was used for bookkeeping. Everything else was data storage. From a bit of memory & reverse engineering. The data is arranged as 4 singly linked lists. The pointers begin at &8080 (from the start of GENIE RAM). The last used byte is held in &8088.

Unfortunately, the code is not smart enough to recognise an 'empty' Genie so it needs to be formatted. This simply initialises the first page of the battery backed RAM, and puts my name starting at &8070.
Pernod wrote:
Sun May 12, 2019 4:26 pm
Unlikely, but I'll let Derek comment on whether that may be useful. I think current issues are due to having bad dumps of the latch region &1F00-1FFF, as the banks will change during the dump process. Page &1F is identical in all ROMs which seems rather wasteful, maybe intended?
Looks like CJE have one for sale without casing, ready for dumping. http://www.cjemicros.co.uk/micros/indiv ... PMS-GENINT
I don't think there is any code in page &1F, but with a friend, and an arduino, we have a clean dump of an original Genie (see my later post).
Pernod wrote:
Sun May 12, 2019 4:26 pm
Out of curiosity, there was also a Master cartridge version, see http://8bs.com/see/genie.jpg. Would that have been identical to the BBC version or maybe reworked to make use of the Write line?
The hardware was the same, only some tweaks to make it work with the different Master shadow ram (etc.) hardware. I didn't manage to get my version to work on a Master yet... But I'll see if there is another dump that would work.

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Genie/Genie Junior by PMS - clean ROM dumps

Post by tripmeup » Sun Jun 09, 2019 9:31 pm

With the help of Colin Cameron (son of the one of the founders of PMS). We got a clean dump from the original ROMs for BBC Genie. I've tested it (under emulation) on BBC B and BBC B+ and it works fine, however so far no luck on Master 128. I'll see if we can find a different version for that one.

Attached is also new dump of Genie Junior. This one works fine with disk image already posted.

Best regards,

Derek.
Attachments
genie_v1.01.rom
(32 KiB) Downloaded 3 times
genie_junior_v1.1u.rom
(16 KiB) Downloaded 3 times

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS - clean ROM dumps

Post by tripmeup » Sun Jun 09, 2019 9:39 pm

tripmeup wrote:
Sun Jun 09, 2019 9:31 pm
With the help of Colin Cameron (son of the one of the founders of PMS). We got a clean dump from the original ROMs for BBC Genie.
Just for interest, this is how the ROM got dumped!
IMG_4929.JPG
... and lurking in Gordons garage was a box of old stuff, among which were some master copies of PMS ROMS.
IMG_4762.JPG
Let's see what he finds!

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS

Post by tripmeup » Sun Jun 09, 2019 9:51 pm

Pernod wrote:
Sun May 12, 2019 4:26 pm
Page &1F is identical in all ROMs which seems rather wasteful, maybe intended?
I can confirm that Page &1F, &3F, &5F, and &7F are identical in the clean dump of the ROM. I don't remember if it was used. However in similar hardware (Publisher, 64k PMS NTQ module, etc.) I sometimes put the code that read from the RAM, or for flow control (jumping to subroutines that lived in a different page).

User avatar
billcarr2005
Posts: 1331
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Genie/Genie Junior by PMS - clean ROM dumps

Post by billcarr2005 » Mon Jun 10, 2019 12:26 am

tripmeup wrote:
Sun Jun 09, 2019 9:31 pm
With the help of Colin Cameron (son of the one of the founders of PMS). We got a clean dump from the original ROMs for BBC Genie. I've tested it (under emulation) on BBC B and BBC B+ and it works fine, however so far no luck on Master 128. I'll see if we can find a different version for that one.
I've combined the 4 x 8k ROMs i posted earlier and did a file compare and MD5 checksum against genie_v1.01.rom and they are identical! :wink:
tripmeup wrote:
Sun Jun 09, 2019 9:51 pm
I can confirm that Page &1F, &3F, &5F, and &7F are identical in the clean dump of the ROM.
And in the "dirty" dump too :lol:
tripmeup wrote:
Sat May 11, 2019 9:54 pm
Thanks. I guess I must have mixed up somewhere. The order of the images seem to be mixed up somehow... If I reassemble them in the order of 80 B0 90 A0 it seems to work "more" successfully. but I still can get it to work. My friend might have found the original source code of Genie (on 5.25" disk). I guess there is a >50% chance that is is long gone but I see if he can read anything off of it (not sure I'd like to risk posting it).
Does that still mean that v1.02 is a erroneous dump, or has the emulation improved?
Last edited by billcarr2005 on Mon Jun 10, 2019 12:28 am, edited 1 time in total.

User avatar
Pernod
Posts: 1539
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Genie/Genie Junior by PMS - clean ROM dumps

Post by Pernod » Mon Jun 10, 2019 1:02 am

tripmeup wrote:
Sun Jun 09, 2019 9:31 pm
With the help of Colin Cameron (son of the one of the founders of PMS). We got a clean dump from the original ROMs for BBC Genie. I've tested it (under emulation) on BBC B and BBC B+ and it works fine, however so far no luck on Master 128. I'll see if we can find a different version for that one.
Excellent work, thanks =D>
billcarr2005 wrote:
Mon Jun 10, 2019 12:26 am
tripmeup wrote:
Sat May 11, 2019 9:54 pm
Thanks. I guess I must have mixed up somewhere. The order of the images seem to be mixed up somehow... If I reassemble them in the order of 80 B0 90 A0 it seems to work "more" successfully. but I still can get it to work. My friend might have found the original source code of Genie (on 5.25" disk). I guess there is a >50% chance that is is long gone but I see if he can read anything off of it (not sure I'd like to risk posting it).
Does that still mean that v1.02 is a erroneous dump, or has the emulation improved?
It performs the same as v1.01 in MAME, so am tempted to say it's good.
tripmeup wrote:
Sun Jun 09, 2019 9:39 pm
... and lurking in Gordons garage was a box of old stuff, among which were some master copies of PMS ROMS.

Let's see what he finds!
Yes please. I'm sure they'll be some MIA's amongst those.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS - clean ROM dumps

Post by tripmeup » Mon Jun 10, 2019 11:31 am

billcarr2005 wrote:
Mon Jun 10, 2019 12:26 am
Does that still mean that v1.02 is a erroneous dump, or has the emulation improved?
For the the 1.02 looks good. I fixed the changes I made within emulator (my biggest problem was that I had forgotten to 'format' the Genie). Now, both look good to me. See screengrabs below...


Genie1.01.png
1.01 running in a modified BeebEm


Genie1.02.png
1.02 running in a modified BeebEm

:( I also just noticed a bug in 1.02 where the vertical lines in the status panel are 1 pixel too long and go outside the top of the box... :(

User avatar
billcarr2005
Posts: 1331
Joined: Fri Sep 09, 2005 3:01 pm
Location: UK
Contact:

Re: Genie/Genie Junior by PMS

Post by billcarr2005 » Mon Jun 10, 2019 10:25 pm

tripmeup wrote:
Mon Jun 10, 2019 11:31 am

For the the 1.02 looks good. I fixed the changes I made within emulator (my biggest problem was that I had forgotten to 'format' the Genie). Now, both look good to me.
I think that was my thinking behind the following #-o :roll:
billcarr2005 wrote:
Sun May 12, 2019 4:09 pm
If you think it might help, it would be trivial to dump the (battery backed) RAM sections, just after resetting the device, in case the ROM code is looking for something specific?

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS

Post by tripmeup » Tue Jun 11, 2019 3:46 pm

billcarr2005 wrote:
Mon Jun 10, 2019 10:25 pm
I think that was my thinking behind the following #-o :roll:
Yes, you're right. I modified my copy of BeebEm to automatically format the battery-backed RAM on first use... I really don't know why I didn't add the code to Genie in the first place.

Code: Select all

void GenieFormat()
{
	unsigned char initVals1[] = {
		0x37, 0x1B, 0x36, 0x1E, 0x1E, 0x35, 0x12, 0x10, 0x36, 0x34, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01,
		0xFF, 0x01, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0xF7 };

	unsigned char initVals2[] = {
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x81 };

	memcpy(&GenieRam[4][0x00], initVals1, sizeof(initVals1));  // Set default password to GENIE, and init some structures
	memcpy(&GenieRam[4][0x70], "Derek", 5);  // Magic word
	memcpy(&GenieRam[4][0x80], initVals2, sizeof(initVals2));  // Initialise linked lists and free memory pointer.

	GenieRam[4][0xF0] = 0x6E;
}

User avatar
Pernod
Posts: 1539
Joined: Fri Jun 08, 2012 10:01 pm
Location: Croydon, UK
Contact:

Re: Genie/Genie Junior by PMS

Post by Pernod » Tue Jun 11, 2019 4:25 pm

tripmeup wrote:
Tue Jun 11, 2019 3:46 pm
I modified my copy of BeebEm to automatically format the battery-backed RAM on first use... I really don't know why I didn't add the code to Genie in the first place.

Code: Select all

void GenieFormat()
{
	unsigned char initVals1[] = {
		0x37, 0x1B, 0x36, 0x1E, 0x1E, 0x35, 0x12, 0x10, 0x36, 0x34, 0x00, 0x00, 0x03, 0x01, 0x01, 0x01,
		0xFF, 0x01, 0x01, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0xF7 };

	unsigned char initVals2[] = {
		0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x81 };

	memcpy(&GenieRam[4][0x00], initVals1, sizeof(initVals1));  // Set default password to GENIE, and init some structures
	memcpy(&GenieRam[4][0x70], "Derek", 5);  // Magic word
	memcpy(&GenieRam[4][0x80], initVals2, sizeof(initVals2));  // Initialise linked lists and free memory pointer.

	GenieRam[4][0xF0] = 0x6E;
}
So is this essentially all the formatter does?
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.

User avatar
tripmeup
Posts: 18
Joined: Wed May 08, 2019 9:48 pm
Location: France
Contact:

Re: Genie/Genie Junior by PMS

Post by tripmeup » Tue Jun 11, 2019 4:55 pm

Pernod wrote:
Tue Jun 11, 2019 4:25 pm
So is this essentially all the formatter does?
Yes, I think so. I remember the process was pretty simple...

Post Reply