• Please review our updated Terms and Rules here

Olivetti M21/M24 with BIOS version 1.44

Have you tested, if that works for M21/M24? I think, M24 BIOS is 2x 2764, so it is 16 kB in total, but that instruction saves files of 8 kB length. The vendor agreed already to me to save the BIOS and forward the file to me.
 
The instructions I forwarded create a 64K file of the entire F000h segment, so it will grab anything that is there. Some relocation/trimming may be necessary afterwards.
 
I'd love to get my hands on a copy of this BIOS as well.

I had an M21 as a kid, my dad brought it home from the car dealer he was working at the time. I recall it had a green phosphor CRT instead of amber most M21s seem to have. I also believe it was the system I played Space Quest 3 for the first time on.

I'm not sure what ever happened to it, but I'd love to get my hands on another one someday.

In any event, I'd like see this BIOS.
 
The vendor now sent me the files, and in one of them I found the string "Resident Diagnostics Rev 1.44".

View attachment m24_1.44.zip

Please split into 2x files for 2764 EPROM and reattach to this posting, that everyone who wants to test, can do, And if you analyze, please tell us, what has been changed.
 
Excellent! The last 16K of file MYF800.BIN appears to contain the entire v1.44 BIOS and is indeed a little different looking than v1.43.

I've extracted it to a single 16K binary as well as split into ODD/EVEN images suitable for burning to a pair of 8K EPROMS.

I should get some time to test these in my 6300 this week but if anyone beats me to it, please report back whether or not these images work.

View attachment BIOS_M24_144.ZIP

Cheers!
 
Some obvious differences:

1.43: 4/3/1986
1.44: 5/5/1987

The BIOS POST routine is slightly altered (it looks like the entire thing is different, until you realize it's just offset by about ~30 bytes; when you line that section up, most of it matches). In 10 minutes of looking, I see mostly just offset changes to new string locations. So what shifted it? The first major difference is at 11D6:

Code:
seg000:D1D4 B8 00 00                       mov     ax, 0
seg000:D1D7 CD 40                          int     40h             ; Hard disk - Relocated Floppy Handler (original INT 13h)?
seg000:D1D9 72 0F                          jb      short loc_FD1EA
seg000:D1DB BB 00 7C                       mov     bx, 7C00h
seg000:D1DE B8 01 02                       mov     ax, 201h
seg000:D1E1 51                             push    cx
seg000:D1E2 B9 01 00                       mov     cx, 1
seg000:D1E5 CD 40                          int     40h             ; Hard disk - Relocated Floppy Handler (original INT 13h)?
seg000:D1E7 59                             pop     cx

I only have a commented disassembly of 1.00 so I can't match this up apples to apples, but it looks like these are redirected calls to the original INT 13h BIOS hard disk interrupt. If that's the case, this code is resetting the hard disk, then reading one sector into 7C00h, so this is definitely part of the boot process. But in 1.44, it looks like this:

Code:
seg000:0000 BB 00 7C                       mov     bx, 7C00h
seg000:0003
seg000:0003                loc_3:                                  ; CODE XREF: seg000:001Aj
seg000:0003 33 C0                          xor     ax, ax
seg000:0005 CD 13                          int     13h             ; DISK - RESET DISK SYSTEM
seg000:0005                                                        ; DL = drive (if bit 7 is set both hard disks and floppy disks reset)
seg000:0007 72 0C                          jb      short loc_15
seg000:0009 B8 01 02                       mov     ax, 201h
seg000:000C 51                             push    cx
seg000:000D B9 0A 00                       mov     cx, 0Ah
seg000:0010 CD 13                          int     13h             ; DISK - READ SECTORS INTO MEMORY
seg000:0010                                                        ; AL = number of sectors to read, CH = track, CL = sector
seg000:0010                                                        ; DH = head, DL = drive, ES:BX -> buffer to fill
seg000:0010                                                        ; Return: CF set on error, AH = status, AL = number of sectors read
seg000:0012 59                             pop     cx
seg000:0013 73 3E                          jnb     short near ptr 53h
seg000:0015
seg000:0015                loc_15:                                 ; CODE XREF: seg000:0007j
seg000:0015 80 FC 80                       cmp     ah, 80h
seg000:0018 74 02                          jz      short loc_1C
seg000:001A E2 E7                          loop    loc_3
seg000:001C
seg000:001C                loc_1C:                                 ; CODE XREF: seg000:0018j
seg000:001C B2 80                          mov     dl, 80h
seg000:001E 1E                             push    ds
seg000:001F 2E 8E 1E 74 E5                 mov     ds, word ptr cs:0E574h
seg000:0024 80 3E 75 00 00                 cmp     byte ptr ds:75h, 0
seg000:0029 74 26                          jz      short near ptr 51h

Still part of the boot process (loading to 7C00h), but more more int 13h->40h redirection. So this tells me that the 1.44 BIOS's major changes were rewriting the disk routines somewhat. I don't know why the 1.44 BIOS is reading sector 0A instead of sector 01 though.
 
Interesting, please continue to analyze. What would be the reason to change that what you found? Does that BIOs have maybe a bigger list of supported harddisks? Does it have maybe better floppy code / controller initialisation - you remember, that I have a lot of IRQ issues with lowlevel floppy tools (like IMD, Teledisk, ...)?
 
I'm spread too thin to continue in a reasonable amount of depth, sorry. Was hoping someone else with more time and less projects could take up the mantle.

Based on a very cursory look over the entire thing, the only major changes I could see was to hard disk operations. I'm guessing they added support for later hard disk models.
 
I just replaced the original v1.43 ROMs in my 6300 with a pair of EPROMs containing the split binary files I attached to this thread the other day. I'm pleased to report this BIOS extract works just fine!

The system boots normally from the original ST-225 and I don't perceive any differences to v1.43 yet.

IMG-5869.jpg

IMG-5870.jpg
 
Hello,

I recently got an M24 and it has bios version 1.36 i believe. I will try to source a 2764 and a programmer for it. In @TiBos Retro Computers video a programmer is mentioned but i can't figure what's the model.
Some will not program this old eproms that may require up to 21v and such.

Any advice on programmers?

I'm also trying to fix this M24 power supply with shorted 5v rail. 😆
 
Back
Top