Psion MC400 - emulator?

classic non-acorn hardware, software & languages
User avatar
zedstarr
Posts: 24
Joined: Tue Jun 14, 2022 9:35 am
Contact:

Re: Psion MC400 - emulator?

Post by zedstarr »

Can't find those strings but did find these

Code: Select all

HwSetA2Control1Bits	EPOC	$04,$8E,al
HwClearA2Control1Bits	EPOC	$05,$8E,al
HwReadA2Control1	EPOC	$06,$8E
HwWriteA2Control1	EPOC	$07,$8E,al
HwSetA2Control2Bits	EPOC	$08,$8E,al
HwClearA2Control2Bits	EPOC	$09,$8E,al
HwReadA2Control2	EPOC	$0A,$8E
HwWriteA2Control2	EPOC	$0B,$8E,al
HwSetA2Control3Bits	EPOC	$0C,$8E,al
HwClearA2Control3Bits	EPOC	$0D,$8E,al
HwReadA2Control3	EPOC	$0E,$8E
HwWriteA2Control3	EPOC	$0F,$8E,al
In an INC directory that I think s3aemul.exe creates when it runs. (EDIT: my mistake) was created by S3ASM
Attachments
INC.zip
(6.96 KiB) Downloaded 6 times
Last edited by zedstarr on Wed Jun 22, 2022 1:42 pm, edited 1 time in total.
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

Extract from hdk.pdf:
Ossibo.inc is an important header file that contains the defines for all the ASIC2 and ASIC9 register addresses. Ospack.inc contains similar information but for ASIC4.
Found ossibo.inc in the SIBO C SDK! It gives us names of all ASIC1 and ASIC2 registers, so now to match it up with my logfile. It suggests the keyboard is a serial device.
Attachments
5224.SIBO C SDK v2.10 - Disk1 (SDK core parts).zip
(1.17 MiB) Downloaded 6 times
4452.SIBO C SDK v2.10 - Disk2 (Optional components).zip
(1.03 MiB) Downloaded 6 times
OSSIBO.zip
(2.4 KiB) Downloaded 7 times
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

zedstarr wrote:
Wed Jun 15, 2022 10:44 pm
I've just done a reset on a real MC400 and either the keyboard (ESC, or RETURN) or the touchpad will complete/clear the "Continue" dialog (if that helps?)
Does it make any sound when you do a reset, waiting for the Continue?
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
zedstarr
Posts: 24
Joined: Tue Jun 14, 2022 9:35 am
Contact:

Re: Psion MC400 - emulator?

Post by zedstarr »

yes,. there is some sound -

Sequence is:
  • push tiny recessed "reset" button
  • 3 beeps from the piezo buzzer
  • copyright dialogue waiting for "continue" confirmation
video

Note: (erratic, hard to control ;-) ) pointer is only ever displayed when you touch the touchpad
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

zedstarr wrote:
Sat Jun 18, 2022 12:45 pm
yes,. there is some sound -

Sequence is:
  • push tiny recessed "reset" button
  • 3 beeps from the piezo buzzer
  • copyright dialogue waiting for "continue" confirmation
video

Note: (erratic, hard to control ;-) ) pointer is only ever displayed when you touch the touchpad
Thanks, small progress, my emulation now does the 3 beeps! I'm sure I read somewhere a detailed description of the beeper frequency, but didn't take notes and can't seem to find it again.

I'm losing momentum with the emulation. I'd expect it to be polling the keyboard rather than hitting a HALT, so wonder whether it's thinking I'm holding whatever keys to put it in standby mode.
zedstarr wrote:
Fri Jun 17, 2022 5:30 pm
My Psion 3a screen died a couple of months ago, maybe I should repeat the de-solder/dump trick :idea: ?
A dump from your Psion 3a could be useful, definitely wanted.

So is the MC400 dump from a plain MC400 or is it a MC Word? I get the impression we'll eventually need the SSD's dumping too, rather than the currently available file based dumps.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
zedstarr
Posts: 24
Joined: Tue Jun 14, 2022 9:35 am
Contact:

Re: Psion MC400 - emulator?

Post by zedstarr »

I've decoded the whole keyboard matrix (I had the bits handy as I wanted to "USB" the keyboard for another project anyway: Teensy LC sketch here). The "ESC" key (which is also the "On" key) is unique in that it is the only key that has 2 dedicated lines to ASIC2, obviously needed as when the hw is "off" it's not scanning the keyboard.
MC400 keyboard matrix
MC400 keyboard matrix
Of the 18 pins on the main keyboard it's a 9x9 matrix, but pins 1 & 2 are dedicated to "On/ESC" so it's 8x8 for the other 60 keys.
Pernod wrote:
Sun Jun 19, 2022 7:57 pm
I'm losing momentum with the emulation. I'd expect it to be polling the keyboard rather than hitting a HALT, so wonder whether it's thinking I'm holding whatever keys to put it in standby mode.
Keypress for OFF is Alt-Ctrl-1. Not a watchdog timer related thing? Or just getting upset as it's not getting the right status/value when reading one of ASIC1/2 registers and it's deciding that the hardware is dead/broken? Or maybe SYS$NULL process is confused (system ticks running fast?) and turning off?
from https://palmtop.cosi.com.pl/wp-content/uploads/2013/07/Programming-Psion-Computers.pdf
from https://palmtop.cosi.com.pl/wp-content/uploads/2013/07/Programming-Psion-Computers.pdf
Pernod wrote:
Sun Jun 19, 2022 7:57 pm
So is the MC400 dump from a plain MC400 or is it a MC Word?
MC Word. I'll see what I can do with the 3/3a ROM...
albrow
Posts: 6
Joined: Mon Jun 20, 2022 7:58 pm
Contact:

Re: Psion MC400 - emulator?

Post by albrow »

Hi all. Thank you to @zedstarr for letting me know about this thread, and sorry for coming so late to the party.

Thank you so much for working on this! There are DOS "emulators" for a few models (Series 3, 3a, 3c and Workabout), but they use modified ROMs and don't emulate the hardware. (FYI, the debugger in the SDK is basically an MC400 emulator running a debugging app.) Having a proper emulator running on a modern OS (i.e. not requiring DOSbox) would be a major step forward.

The docs at psion.info, by my own admission, aren’t the best. I took a long break from breaking Psions at the end of 2019 for various reasons, occasionally popping back to fiddle with things every few months. It was only in April when I got back into it properly. I’m short on time at the moment, but I’m trying to spend the odd half hour here and there on it.

I've had a skim through the thread so far and picked up on a few questions. I'll do my best to answer them here, but if I've missed anything do point them out to me.

Psion docs don't go into great detail about the ASICs, to be honest. You've already seen the Hardware Reference Manual on psion.info - that's pretty much it. The HDK does seem to have been written as an afterthought. I've been begging numerous former Psion employees for information for about 5 years now, and come up with very little on the ASICs themselves. I even got in touch with the man who had a hand in designing them (Mark Gretton), but he was unable to give me anything. I do have an archive of an Psion VAX server dated 1993 but doesn't seem to have anything beyond 1991. I'm a bit worried about posting its contents in a public forum, especially as there are personal emails and other details in it, but I can pull bits out and DM them to people if needed. For example, there’s a folder called PIZZA that has a few schematics for the MC machines in an old OrCAD format. I did spend some time converting the ones I could open to PDF. Ask, and I’ll see what I can do.

I see you've found the include files in the HDK! It doesn't look like they've changed much since 1990, so should still work absolutely fine for the MC400.

The SIBO Serial Protocol (SIBO-SP) is a bit like I2C. It's synchronous, uses only DATA and CLK, and relies on the master to tell the slave when to reply (based on control commands). It's reasonably well described in the HDK from a transport point of view, but I do have Sigrok captures available for people to look at if that helps. From the master’s side, there’s one good thing about SIBO-SP - you can pretty much go as fast or as slow as you like. In testing, I’ve been able to talk to an SSD as slow as 100 KHz and up well beyond the ~4 MHz that the HDK suggests (I think it was 15 MHz). It also means that you don’t have to be consistent with the clock - very useful when bit-banging. However, it makes emulating ASIC4/5 in software much harder, as you need to be ready to ship data when the master asks.

I will find a more permanent location for the full SDK and HDK with the original PDFs, both at psion.info and archive.org. For now, here's a link to it on Google Drive.

https://drive.google.com/drive/folders/ ... sp=sharing

I think I have almost every SIBO machine now; I'm missing the MC200, MC600 and a few HC models. Once I work out how to use Matt Gumbley's tool again, I will be able to get UK ROMs for the Series 3, 3a (both versions), 3c, 3mx, Siena, Workabout (a few versions) and Workabout mx (my HC120 is dead at the moment). If I remember correctly, I've got the source code to the tool, so I might be able to modify it to dump in a more sensible manner than just blocks of memory.

An original part of my little project was to reverse engineer ASIC4 and recreate it in FPGA format. Unfortunately my VHDL skills are way off being ready, so instead I'm focussing on making a USB SSD Drive with a Raspberry Pi Pico. The code can already dump SSDs and I've got Sigrok captures showing how a SIBO machine reads and writes to various types of SSD (ROM, RAM, Flash I and Flash II, and both ASIC4 and ASIC5).

A relatively cheap source of ASIC5s are the 3Link parallel printer adapters. The only way to get hold of an ASIC4 is in old SSDs, but you have to know what you're looking for before you buy it. All the early SSDs are ASIC5, because the ASIC4 wasn't ready when the MC400 was launched in 1989. I've never seen a Flash I SSD that isn't ASIC5, or a Flash II that isn't ASIC4, but both ASICs are capable of being Flash I and II. (Interesting aside: ASIC4 is 5v TTL, whereas ASIC5 is 5v CMOS. Properly screwed me up when trying to talk to ASIC5 with a 3.3v microcontroller. I now have level shifters.)

Just looking at the MC400 ROM that zedstarr dumped, I can see that there’s a Psion Flash filesystem starting at 0xDDD1 - the clue is the A5 F1 signature (reverse the bytes - F1A5h). I’ve written a tool called SIBODUMP that can extract files from a Psion Flash filesystem, so if I trim the file I can pull the files out if that’s useful for anyone.

If there's any information I can give you to help with this, please let me know. I can't promise to be able to answer every question, nor can I promise to be quick at replying, but I'll do my best.

Alex
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

albrow wrote:
Tue Jun 21, 2022 12:35 pm
I will find a more permanent location for the full SDK and HDK with the original PDFs, both at psion.info and archive.org. For now, here's a link to it on Google Drive.

https://drive.google.com/drive/folders/ ... sp=sharing
Hi Alex, great to have you here on this journey. The more input I have on this certainly encourages me to persevere. And thanks for the documents, the set I'd previously found was incomplete, ie. missing the Hardware Reference PDF and some others.

I've sent you a PM about the schematics, hope you're able to email them to me, and hope they give me some more clues.

I'm currently focusing on interrupts as I believe they're the key to getting the machine running.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
BigEd
Posts: 4944
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Psion MC400 - emulator?

Post by BigEd »

Welcome Alex, this is great material and very promising. There are people here with Pico and with FPGA experience who might be interested in joining in on that front too. If you need PMs enabled at any point, use the 'Contact Us' button at the bottom of the page and that'll be sorted out within in a few days.
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

In OSSIBO.INC we have:
ASIC1

Code: Select all

A1Ent	struc
A1Dummy			dw	?
A1Control		dw	?
A1LcdSize		dw	?
A1LcdControl		dw	?
A1InterruptMask		dw	?
A1NonSpecificEoi	dw	?
A1TimerEoi		dw	?
A1FrcEoi		dw	?
A1ResetWatchDog		dw	?
A1FrcControl		dw	?
A1ProtectionOn		dw	?
A1ProtectionUpper	dw	?
A1ProtectionLower	dw	?
A1SoundLsw		dw	?
A1SoundMsw		dw	?
A1SoundControl		dw	?
A1Ent ends
;
A1Status		equ	A1Control
A1ProtectionOff		equ	A1ProtectionOn
A1InterruptStatus	equ	A1LcdControl
;
A1StatusR record LcdData:2,Rtc4Hz:1,SldMsw:1,ComboBusy:1,Rtc32Hz:1,ExternalNmi:1,WatchDogNmi:1,SldTx:1,A1SldEnable:1,LcdEnable:1,Ram512:1,Ram128:1,FrcSource:1,TickRate:1,FrcMode:1
A1LcdSizeR record LcdMLineEnable:1,LcdNumberOfPixels:5,LcdEndOfFrame:10
A1LcdControlR record LcdMode:2,LcdMLineRate:5,LcdRate:5
A1InterruptMaskR record SldTransmit:1,SldReceive:1,FrcExpired:1,Asic2Int:1,ExpIntLeftA:1,ExpIntRightB:1,Mains:1,Timer:1
ASIC2

Code: Select all

A2Ent struc
A2Dummy			db	080h dup(?)
A2Index			dw	?
A2Control		dw	?
A2Control1		dw	?
A2Control2		dw	?
A2Control3		dw	?
A2SerialData		dw	?
A2SerialControl		dw	?
A2ChannelControl	dw	?
A2Ent ends
;
A2External		equ	A2Control1
A2InterruptStatus	equ	A2Control2
A2Status		equ	A2Control3
A2KeyData		equ	A2SerialControl
A2SlaveData		equ	A2ChannelControl
A2IControl0		equ	0
A2IControl1		equ	1
A2IWrite		equ	2
A2IDDR			equ	3
;
A2InterruptStatusR record SlaveDataOverrun:1,SlaveDataControl:1,SlaveDataValid:1,ExpansionInterrupt:1,DoorInterrupt:1
A2StatusR record A2RevId:1,A2XExt:1,A2Sdis:1,SerialBusy:1,SerialClockState:1,A1ResetFlag:1,WakeUp:1,A1OnKey:1
A2Control1R record SerialClockRate:2,KeyScan:4
A2Control2R record ClockEnable7:1,ClockEnable6:1,ClockEnable5:1,BuzzerMode:1,BuzzerVolume:1,BuzzerToggle:1,XySwitch:1,DigitizerEnable:1
A2Control3R record ElEnable:1,VhControl:1,ExpansionEnable:1,DoorEnable:1,SerialEnable:1,A2SldEnable:1,Ps34Acknowledge:1,SerialNull:1
A2ChannelControlR record MultiplexEnable:1,ChannelSelect:3,Pack4Enable:1,Pack3Enable:1,Pack2Enable:1,Pack1Enable:1
These appear to tell us the register names in the ASICs but leave the actual address undefined. We know that the IO mapping is:
0080 - 008F I/O space in ASIC2
0000 - 001F Internal I/O in ASIC1
but the number of A1 and A2 registers don't fit into this mapping, the inclusion of the Dummy references doesn't make any sense either. Can anyone make any sense of this, or is it really just giving us some names?
At least the record lines seem to tell us what the bits of some of the registers represent.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
BigEd
Posts: 4944
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Psion MC400 - emulator?

Post by BigEd »

Is it anything like the CRTC, where one register sets an internal address and another is used for access? (If it were, the pattern of accesses in the code might give it away)
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

BigEd wrote:
Tue Jun 21, 2022 6:59 pm
Is it anything like the CRTC, where one register sets an internal address and another is used for access? (If it were, the pattern of accesses in the code might give it away)
The mention of A2Index may suggest that, but I've implemented the buzzer which gives the startup beeps by assuming the A2Control2 register is at $86 and control the buzzer according to the bits described in A2Control2R. This is one of the very few facts I've been able to take from this, everything else just seems ambiguous and raises more questions.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
tom_seddon
Posts: 530
Joined: Tue Aug 30, 2005 12:42 am
Contact:

Re: Psion MC400 - emulator?

Post by tom_seddon »

Pernod wrote:
Tue Jun 21, 2022 6:54 pm
These appear to tell us the register names in the ASICs but leave the actual address undefined. We know that the IO mapping is:
0080 - 008F I/O space in ASIC2
0000 - 001F Internal I/O in ASIC1
but the number of A1 and A2 registers don't fit into this mapping, the inclusion of the Dummy references doesn't make any sense either. Can anyone make any sense of this, or is it really just giving us some names?
At least the record lines seem to tell us what the bits of some of the registers represent.
A1Ent has 16 word size fields, so that looks like a good match for 32 bytes of I/O? (Assuming 0000-001f is inclusive!) The dummy one must simply mean that I/O port 0 is unused.

A2End has 128 dummy bytes so that A2End.A2Index==$80, reflecting its I/O address. Then 8 word-size fields, an exact match for $80...$8f inclusive.

--Tom
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

tom_seddon wrote:
Tue Jun 21, 2022 9:51 pm
A1Ent has 16 word size fields, so that looks like a good match for 32 bytes of I/O? (Assuming 0000-001f is inclusive!) The dummy one must simply mean that I/O port 0 is unused.

A2End has 128 dummy bytes so that A2End.A2Index==$80, reflecting its I/O address. Then 8 word-size fields, an exact match for $80...$8f inclusive.

--Tom
Thanks for explaining, it was the

Code: Select all

080h dup(?)
that was throwing me off. This gives me a little more confidence with the registers.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

In the context of setting registers A1NonSpecificEoi, A1TimerEoi, and A1FrcEoi, what does Eoi stand for?
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
albrow
Posts: 6
Joined: Mon Jun 20, 2022 7:58 pm
Contact:

Re: Psion MC400 - emulator?

Post by albrow »

Pernod wrote:
Wed Jun 22, 2022 6:19 pm
In the context of setting registers A1NonSpecificEoi, A1TimerEoi, and A1FrcEoi, what does Eoi stand for?
Looking through my VAX archive, the only times I'm seeing it mentioned are for resetting interrupts. For example:

Code: Select all

out A1NonSpecificEoi, al ; Reset the PIC
out A1TimerEoi, al ; Clear the RTC int
out A1FrcEoi, al ; Clear any FRC interrupts
User avatar
hoglet
Posts: 11305
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Psion MC400 - emulator?

Post by hoglet »

Pernod wrote:
Wed Jun 22, 2022 6:19 pm
In the context of setting registers A1NonSpecificEoi, A1TimerEoi, and A1FrcEoi, what does Eoi stand for?
In this context, possibly it stands for "End of Interrupt", though I'm not sure that helps much.
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

albrow wrote:
Thu Jun 23, 2022 10:40 am
Looking through my VAX archive, the only times I'm seeing it mentioned are for resetting interrupts. For example:

Code: Select all

out A1NonSpecificEoi, al ; Reset the PIC
out A1TimerEoi, al ; Clear the RTC int
out A1FrcEoi, al ; Clear any FRC interrupts
I don't seem to have these code references, what is the value of al being written to clear them?
hoglet wrote:
Thu Jun 23, 2022 10:46 am
In this context, possibly it stands for "End of Interrupt", though I'm not sure that helps much.
That would've been my guess too, but not sure if it fits with the following description.

Edit: from code snippets it does seem that writing to these Eoi registers simply clears the interrupt, and the value written is irrelevant.

From the Hardware Reference:
A general 16 bit count down timer is provided by ASIC1. When the system is not in the standby state i.e. the processor is running, the clock source can be programmed to be either a fast (512 KHz) clock or a slow (32 Hz) clock. Any 16 bit value can be written into the timer at any time. This value will then be decremented on the next rising edge of the clock. The current value in the timer can be read at any time. When the value in the timer reaches zero an interrupt is generated. When the system is in the standby state the timer is clocked from the 32 Hz real time clock oscillator in ASIC3 so that time can be kept while the processor is powered down.

The timer can operate in two modes controlled by a programmable bit, free running mode or prescale mode. In free running mode, when the timer decrements to zero an interrupt is generated and the counter just wraps around to -1 (FFFF). In prescale mode when the interrupt is generated the original value written to the timer is re-loaded automatically, this allows the interrupt to become a rate programmable pulse stream. This pulse stream is also an output from ASIC1.
In ASIC1 the relevant registers seem to be: (Frc = Free Running Counter)
Write: 16bit
A1NonSpecificEoi
A1TimerEoi (being set to &FF)
A1FrcEoi
A1FrcControl (not documented, but likely sets timer mode, free running or prescale)
A1Control (being set to &FF)

I haven't noticed any of these registers being read yet. ASIC1 apparently only has one timer so the references to Timer and Frc are confusing. Need to find more code examples of these registers being used to get a better understanding of them.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
zedstarr
Posts: 24
Joined: Tue Jun 14, 2022 9:35 am
Contact:

Re: Psion MC400 - emulator?

Post by zedstarr »

albrow wrote:
Tue Jun 21, 2022 12:35 pm
FYI, the debugger in the SDK is basically an MC400 emulator running a debugging app.
dosbox screenshot:
Screenshot from 2022-06-23 17-17-03_inverted.png
I'm guessing Psion re-wrote portions of the OS for it to be able to do this - the OS version reported in the SDBG screenshot says V3.20F (1993) compared with V2.36F (1991-2) reported by PANSHLL from the actual MC 400/MC WORD hardware.

Poking around with a hex editor looks like there's a ROM image embedded in SDBG.EXE - 0x400 onwards looks remarkably similar to the start of the ROM image I extracted from the hardware, the end of both SDBG.EXE and the extracted ROM image contain the files from the embedded disk image - system fonts, environment variables in the SYS$ENV.INI file although there's no F1A5h (A5 F1) header I can see in SDBG.EXE

So do any of the other files in the SIBO debugger's directory perform any MC hardware emulation/abstraction? Maybe SYS$BOOT.IMG ? SYS$STUB.IMG handles the comms for debugging on a remote machine so there appear to be no other candidates, unless it's all done with SDBG.EXE itself, or there's just no need for it?

(I managed to get this screenshot with the standard PSION(Alt)-Ctrl-S keypress from within the debugger itself :-D noticed a SCREEN.PIC file in the same directory later)
SDBG_PIC.PNG
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

With adding the Timer and Interrupt Controller it recognises me pressing Esc to Continue and we now have:
0005.png
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
BigEd
Posts: 4944
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Psion MC400 - emulator?

Post by BigEd »

Hurrah! So glad you're still making forward progress.
EDPR
Posts: 5
Joined: Sat Jun 18, 2022 2:32 pm
Contact:

Re: Psion MC400 - emulator?

Post by EDPR »

What a great project!
After 20-odd years I still get excited reading about anything SIBO. I'm a former Psion employee - a junior developer at that time but always keen to find stuff happening backstage. I was like a corporate spy, serving my personal passion for the brand. Company internals were more relaxed at the time, genuine interest was not frowned upon. If I'd do the same at eg. Apple today, such appetite most probably would raise suspicion and get me fired.

Would it be safe to assume that base work on this would open the path for a Series 3* emulator running on a Mac - or perhaps even a web browser?
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

EDPR wrote:
Sun Jun 26, 2022 9:53 am
What a great project!
After 20-odd years I still get excited reading about anything SIBO. I'm a former Psion employee - a junior developer at that time but always keen to find stuff happening backstage. I was like a corporate spy, serving my personal passion for the brand. Company internals were more relaxed at the time, genuine interest was not frowned upon. If I'd do the same at eg. Apple today, such appetite most probably would raise suspicion and get me fired.
Welcome, and nice to see interest from a former Psion employee.
EDPR wrote:
Sun Jun 26, 2022 9:53 am
Would it be safe to assume that base work on this would open the path for a Series 3* emulator running on a Mac - or perhaps even a web browser?
Yes, my understanding in that the Series 3 is very similar hardware, but with ASIC1 and ASIC2 combined into the ASIC9. What I'm working on should provide a solid foundation for the Series 3. We're only seeing progress on the MC400 now because this is the first time someone has provided a dump of the ROM, for any Series 3, HC, and other MC emulation we need owners to provide dumps of their ROMs.
MAME is open-source and cross-platform and monthly releases are available for Windows/Mac/Linux.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
zedstarr
Posts: 24
Joined: Tue Jun 14, 2022 9:35 am
Contact:

Re: Psion MC400 - emulator?

Post by zedstarr »

Pernod wrote:
Sun Jun 26, 2022 3:16 am
With adding the Timer and Interrupt Controller it recognises me pressing Esc to Continue and we now have:
Nice! Excellent work :-D
Pernod wrote:
Sun Jun 26, 2022 11:11 am
Yes, my understanding in that the Series 3 is very similar hardware, but with ASIC1 and ASIC2 combined into the ASIC9.
Machine internals:
Series 3 has NEC V30H + ASIC1/2, 128k or 256k RAM so very similar to the MC's architecture.
(240 x 80 monochrome graphics)
ROM V1.77F in 2 x Toshiba TC54100F one-time-write ROMs
20220626_112120.jpg
.
Series 3a has ASIC9 and 256k, 512k, 1M or 2M RAM
(480 x 160 graphics white/grey/black)
ROM V3.40F in custom TSOP48 package
20220623_111953.jpg
Last edited by zedstarr on Sun Jun 26, 2022 1:19 pm, edited 1 time in total.
EDPR
Posts: 5
Joined: Sat Jun 18, 2022 2:32 pm
Contact:

Re: Psion MC400 - emulator?

Post by EDPR »

Interesting to see the S3 had a writeable rom. Development on this machine was long finished when I joined. The S3a's we used we called preproduction machines and had Intel Flash units installed in the middle solder pads instead of the top one. I have never seen S3c's with flash roms. We used the S3a's to test the new firmware. I remember seeing the S3c hardware quite late in the development process, as if it was a last minute decision. Nightly builds often had funny 'About' screens, one of them had a S3b label, a later one S3c. As I was happy enough to get my hands on those roms I didn't dare to ask more questions. Also the new 1 and 2MB versions were just launched so I assumed it was eventually going to be shipped on those.
User avatar
Pernod
Posts: 3004
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Psion MC400 - emulator?

Post by Pernod »

BigEd wrote:
Sun Jun 26, 2022 8:08 am
Hurrah! So glad you're still making forward progress.
From the screenshot it looks like it's trying to populate the System dialog with apps. I'm suspecting this is where I need to start looking at implementing the SIBO serial protocol to access the filesystem.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
zedstarr
Posts: 24
Joined: Tue Jun 14, 2022 9:35 am
Contact:

Re: Psion MC400 - emulator?

Post by zedstarr »

EDPR wrote:
Sun Jun 26, 2022 12:45 pm
Interesting to see the S3 had a writeable rom.
That's "one time write", after being programmed they're totally read-only. Probably written outside of the S3 and then just treated like any other ROM.
EDPR wrote:
Sun Jun 26, 2022 12:45 pm
Nightly builds often had funny 'About' screens, one of them had a S3b label, a later one S3c.
I saw reference to "S3b" when I was poking around in the debugger, I wondered if it was an early reference to the Workabout :D
EDPR
Posts: 5
Joined: Sat Jun 18, 2022 2:32 pm
Contact:

Re: Psion MC400 - emulator?

Post by EDPR »

zedstarr wrote:
Sun Jun 26, 2022 1:16 pm
I saw reference to "S3b" when I was poking around in the debugger, I wondered if it was an early reference to the Workabout :D
The S3B was indeed the internal codename for the Workabout. It was also silkscreened on the preproduction mainboards.
albrow
Posts: 6
Joined: Mon Jun 20, 2022 7:58 pm
Contact:

Re: Psion MC400 - emulator?

Post by albrow »

A wild Psion engineer appears! Welcome along.

As we're talking about preproduction models, I've been lucky enough to be sent a few by Psion employees in the past, including a boxed Workabout and a beautiful green Series 3a. But the one I have in bits is a preproduction 3mx.
signal-2022-06-26-165644.jpeg
The top board is a production 3mx (Board Rev 2.0), the bottom the preproduction (Board Rev A) complete with bodge wires. The big chip on both is the MX version of ASIC9 (R2 or R3?), with the V30MX core and integrated (and updated) ASIC1/2.
signal-2022-06-26-164917_003.jpeg
signal-2022-06-26-164917_002.jpeg
Notice that the Flash version has an LM317L voltage regulator to enable flashing, in place of the ROM chip. I did receive a Flash SSD with the Workabout that looks like it could be some sort of flashing tool, but I've never wanted to risk rendering a device unbootable.

@EDPR: Do you remember if it's possible to boot the preproduction models from an SSD, or did the Flash chips have to be pre-programmed?

Also, given that there's a nice spot for another RAM chip at the top, I wonder if it's possible to upgrade a 3mx to 4MB on-board?
EDPR
Posts: 5
Joined: Sat Jun 18, 2022 2:32 pm
Contact:

Re: Psion MC400 - emulator?

Post by EDPR »

albrow wrote:
Sun Jun 26, 2022 5:06 pm
Do you remember if it's possible to boot the preproduction models from an SSD, or did the Flash chips have to be pre-programmed?
I don't remember what the process was. Either via the SSD toaster or via 3coms link. What I am sure with is we got the roms via email (cc:mail) so we could do the upgrades ourselves.

I never seen a green S3a.. Perhaps you're talking about the green S5? These were sold at the developers conference. They came after the yellow models still called "Protea". The preproduction Workabout was a yellow one. Nicknamed the bathtub duck. That casing was so thin it often cracked.

The chip on your S3mx is exactly the one I remember on the S3a. 'Intel Flash' IIRC there were bodge wires on my S3a and Workabout. Some machines also had external bodge wires to simulate different keyboard layouts and languages.
Post Reply

Return to “other vintage hardware, software and languages”