Atom roms dumped at ABUG

emulators, hardware and classic software for atom + system machines
Post Reply
Prime
Posts: 3055
Joined: Mon Jun 01, 2009 12:52 am
Contact:

Atom roms dumped at ABUG

Post by Prime »

Hi all,

These are the two ROMS I dumped at ABUG :
atom_sign.rom is the one from the black atom that was used to control illuminated signs.
toolkit.rom was sumped from another Atom, not it may well be an already known ROM but posting here just in case.

Update, fixed forgotten attachment :)
AtomRoms-ABUG-2023-11-11.zip
(6.08 KiB) Downloaded 26 times
Cheers.

Phill.
Last edited by Prime on Mon Nov 13, 2023 9:36 pm, edited 1 time in total.
User avatar
hoglet
Posts: 12682
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Atom roms dumped at ABUG

Post by hoglet »

Prime wrote: Sun Nov 12, 2023 9:22 pm These are the two ROMS I dumped at ABUG :
I think you forgot to attach the files....
User avatar
Pernod
Posts: 3439
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Atom roms dumped at ABUG

Post by Pernod »

Here's the ROM from the Black Atom (ES5700 LED Electronic Message System).
DSC06261.JPG
All we need now is the manual to understand it's usage, and a sign would be useful too! The sign must contain some form of character generator, likely a ROM, to convert the received ASCII into characters on the LED display.
217502851_1674620456063294_7487955398562827816_n.jpg
Attachments
es5700.zip
(2.86 KiB) Downloaded 23 times
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
Prime
Posts: 3055
Joined: Mon Jun 01, 2009 12:52 am
Contact:

Re: Atom roms dumped at ABUG

Post by Prime »

hoglet wrote: Sun Nov 12, 2023 9:27 pm
Prime wrote: Sun Nov 12, 2023 9:22 pm These are the two ROMS I dumped at ABUG :
I think you forgot to attach the files....
Doh! I zipped them and then got distracted :(

Cheers.

Phill.
User avatar
Pernod
Posts: 3439
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Atom roms dumped at ABUG

Post by Pernod »

Prime wrote: Sun Nov 12, 2023 9:22 pm toolkit.rom was sumped from another Atom, not it may well be an already known ROM but posting here just in case.
This is a match for the Ross Utility ROM.
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
hoglet
Posts: 12682
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Atom roms dumped at ABUG

Post by hoglet »

SNAP

The toolkit is the Ross Software Utility ROM - it matches the version in the Atom Software Archive (Atom CRC 4B99), and also the version MAME has archived (SHA1SUM 9d6dd5d4bce4ea2c0d65131b56d666fecf590492).

The manual can be found here;
http://tinyurl.com/atomroms

Dave
Prime
Posts: 3055
Joined: Mon Jun 01, 2009 12:52 am
Contact:

Re: Atom roms dumped at ABUG

Post by Prime »

Yeah I figured toolkit.rom would be one of the known roms but dumped it just in case :)

Cheers.

Phill.
User avatar
hoglet
Posts: 12682
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Atom roms dumped at ABUG

Post by hoglet »

Hi all,

Here's a quick disassembly of the Atom Sign ROM:
https://github.com/hoglet67/AtomSign/bl ... m_sign.asm

The ROM allows you to edit a message upto 506 characters in length, held in a buffer from #8200-#83F9, then send this to the sign.

The top half of the Atom screen shows a 256 character window onto the message. The message can contain control characters, and these are rendered on the screen with a yellow block graphics character. The bottom half of the Atom screen is used as a prompt area for loading/saving/searching within messages.
Screenshot from 2023-11-15 11-34-08.png
Some notes on usage:
- ^C clear screen
- ^D delete character at cursor
- ^H ] move cursor right
- ^U [ move cursor left
- ^L toggle upper/lower case
- ^I load message from tape and/or send message to sign
- ^O save message tape
- ^N search message for string
- ^Q send character 0x11 to message board

The ROM is started with LINK #A000, and will work on a minimal Atom with just 2K of RAM.

The sign connects to Port A (#B801) of the 6522 (the Atom Printer port) which is setup for output only. Bit 7 is used as a character strobe bit and bits 6-0 carry 7-bit ASCII data . It looks like control codes 0x11 and 0x12 do something special on the sign - I'm not sure what. The Atom is not responsible for scrolling the message on the sign, that's seems to be done by the sign itself.

Interestingly, all of this functionality takes up the just the first half of the ROM. The second half is filled with unknown data that doesn't seem to be accessed in any way from the first half.

If you load the ROM into the Atom screen memory in CLEAR 4, you can see some kind of periodicity in the data:
Screenshot from 2023-11-15 11-27-09.png
I can't make much sense of the data - its not 6502 code, and it's not obviously a character ROM.

Here's a hex dump of that data, formatted to show the two strong vertical lines in columns 23 and 31.

Code: Select all

000000 0a 20 00 10 40 02 00 00 ba 10 a8 0a 00 88 80 2b 24 14 01 00 00 20 30 fd 24 04 50 05 66 21 00 74
000020 aa 00 20 90 00 00 81 00 0a 8a a6 8a 52 88 00 02 d0 00 00 01 02 01 10 64 54 04 05 00 20 90 41 62
000040 20 02 86 00 88 80 00 00 ca 00 80 82 0a 08 00 9a 01 00 00 10 00 11 00 64 00 04 20 04 10 24 05 66
000060 08 04 a0 02 80 00 80 00 a2 81 28 02 20 0a 0f 01 00 10 00 00 10 00 00 76 06 00 40 05 14 00 04 67
000080 aa 00 10 00 c2 00 30 0a 60 89 08 01 88 08 14 2a 00 01 00 00 81 40 04 64 11 40 41 80 32 51 11 64
0000a0 80 00 98 00 02 80 20 00 8c 00 28 a0 0a c0 0c a0 00 40 44 00 00 96 04 65 44 44 c0 c5 00 40 54 66
0000c0 0a 88 90 80 00 10 00 82 fa 88 23 98 48 2a 22 08 00 40 00 60 00 01 00 64 1e 65 c6 94 74 40 04 76
0000e0 28 60 00 00 80 00 10 20 3a 3c c2 18 c0 88 38 0e 00 10 04 05 00 01 01 66 16 94 45 44 01 00 09 6e
000100 28 82 08 00 20 02 20 80 02 80 00 0a 46 e2 0a a8 14 04 03 00 44 00 40 e5 11 06 45 55 20 54 04 64
000120 02 00 00 08 08 0a 20 42 0a 28 22 80 82 a8 00 00 41 44 00 00 04 10 00 60 00 24 11 45 25 21 95 66
000140 20 00 00 98 00 00 20 88 9a 2c aa 08 38 02 20 20 04 01 40 00 58 01 05 66 02 13 24 50 16 24 07 66
000160 0a 00 90 10 00 20 82 0a 7a 02 11 22 20 22 88 00 14 a0 04 01 00 02 00 64 07 45 65 41 c4 55 05 66
000180 a2 00 22 89 04 10 30 08 28 80 9a 28 8a 9a 02 80 01 40 04 00 00 01 20 64 35 11 c0 04 10 40 a1 67
0001a0 02 8a 00 02 22 00 00 02 0a c2 0c 40 01 2a e2 82 01 00 04 40 20 01 00 64 05 50 05 08 85 81 40 64
0001c0 28 00 00 20 00 22 00 a0 4a 82 06 62 a0 2c a0 1b 01 00 01 40 40 00 05 64 05 40 45 90 50 10 01 67
0001e0 42 0a 00 00 00 02 00 08 08 2a 00 0b 12 82 18 8a 40 15 01 00 00 00 04 64 45 05 05 45 01 00 05 66
000200 20 20 00 08 00 00 02 00 2f 0a 00 02 18 00 82 60 80 60 42 50 01 00 10 64 01 90 11 44 04 20 2a 64
000220 0a 00 02 00 00 00 10 00 43 a8 8e 83 29 ca 0a 00 40 04 90 04 00 01 00 74 10 c0 15 59 85 04 01 65
000240 8a 20 20 00 32 1a 00 00 0a 01 12 18 02 08 a2 c2 44 11 14 04 55 50 40 64 25 45 15 40 b1 01 74 6d
000260 72 08 20 00 20 08 80 0a 29 0a 40 ae 22 22 62 02 14 80 00 00 00 05 10 64 08 45 84 c4 20 84 65 66
000280 ca 28 00 08 00 02 00 00 5a 8a 0a 70 48 88 0a 0a 00 04 00 04 80 00 00 60 44 44 01 14 10 8d 24 e4
0002a0 08 08 a8 10 00 80 08 00 3e 00 02 82 09 82 2e b8 14 45 00 05 01 50 00 64 01 01 65 01 01 14 41 67
0002c0 a2 00 40 0d 00 10 00 80 2b 8a 08 2a 06 82 16 00 50 00 01 00 00 44 00 64 01 c4 05 05 05 40 45 66
0002e0 4c 00 00 40 02 02 20 02 19 ab 26 b8 22 02 2a 62 00 00 00 00 05 00 00 74 00 08 97 48 05 2e 01 64
000300 28 12 00 00 00 80 88 28 db 80 0a 3b 08 08 82 02 44 45 01 81 05 00 41 65 01 04 04 85 21 44 01 f6
000320 1a 0a 02 00 00 42 00 08 72 80 8b 02 08 18 83 38 05 10 84 01 00 04 10 64 84 04 44 44 14 04 37 76
000340 a2 40 02 02 0a 00 42 00 8b 00 82 9c 82 09 1a 09 04 80 41 41 00 00 00 66 c0 a4 85 14 05 05 44 e5
000360 28 08 00 08 00 02 02 00 4a 0a 08 19 68 0e 0c 0a 00 04 00 40 84 00 00 64 84 00 10 1c 04 44 15 66
000380 08 80 9a 08 08 08 22 40 2e 22 e0 50 22 02 a8 9a 00 24 04 21 41 20 01 64 03 00 01 11 51 8c 4c 64
0003a0 28 92 80 00 10 00 02 20 22 8a 98 0a 0a 01 02 02 00 30 00 00 44 00 21 64 45 17 01 04 89 1d 4f 64
0003c0 4a 00 00 28 00 82 88 02 89 20 2a 18 0a 0a 33 0b 58 04 20 04 41 05 01 66 0c 4d 01 91 00 75 09 66
0003e0 2a 00 00 08 40 08 0a 00 8a 00 0a 00 0a 60 90 0a 00 80 10 01 01 00 01 64 45 35 94 11 09 05 15 66
000400 8c ac 01 00 80 04 09 00 a4 30 a4 04 81 a0 25 24 08 5c 10 12 42 10 02 5f 42 5a 1b 51 10 50 12 56
000420 21 24 00 0c 80 00 05 05 23 a1 25 21 00 88 a4 22 02 13 02 12 14 12 08 4e 32 28 49 50 52 48 56 66
000440 00 85 a5 0d a0 25 85 81 f4 21 81 88 08 84 00 a4 0a 02 08 11 42 00 48 46 42 08 50 58 40 12 40 66
000460 af 08 04 01 01 a2 05 06 a9 24 a0 20 04 24 a1 08 03 12 10 50 00 02 4a 66 52 50 10 08 50 12 42 66
000480 06 05 80 20 28 00 0c 01 ac a0 81 00 a0 25 a1 31 44 5a 0a 00 03 50 04 46 10 51 40 60 06 50 58 66
0004a0 28 20 88 00 00 a0 0d 01 e0 80 80 01 86 80 a0 20 48 0f 03 02 08 02 12 6e 50 48 19 50 58 4f 58 66
0004c0 0d 00 01 80 20 08 84 04 26 b0 8a 80 60 81 20 00 03 08 0a 40 00 01 42 67 00 7d 53 80 00 03 1a 66
0004e0 85 25 21 00 00 85 04 a9 84 04 22 a0 e0 80 a0 40 00 08 02 0b 14 03 00 46 50 32 10 08 58 48 00 66
000500 25 0c 00 85 21 04 03 01 e0 a0 80 90 24 08 e9 0e 53 4a 52 08 4a 10 44 46 10 10 00 d2 50 18 5e 56
000520 2d a4 25 cc 04 85 8c 00 6d 01 10 24 02 20 8d 02 40 01 00 08 02 06 12 4e 40 52 42 18 00 4b 50 76
000540 2b 00 05 01 22 29 81 26 64 a0 24 a4 8c 04 80 a1 40 72 36 0e 58 08 10 46 06 50 4d 12 18 52 48 56
000560 a5 22 00 00 08 05 a1 04 24 20 e4 e0 b4 00 24 a0 10 30 40 08 08 02 12 46 c0 00 58 c2 00 40 08 76
000580 a5 09 25 80 04 01 01 04 2c 41 8d 84 a0 a0 b4 84 40 14 10 1c 10 01 01 46 80 da 45 50 58 10 12 66
0005a0 04 00 00 0c 20 04 0c 80 a5 84 80 80 a4 20 80 a1 4c 40 4a 0a 02 52 01 26 40 e8 5c 52 4b 52 52 46
0005c0 a5 29 04 44 05 20 0c 20 a2 80 e0 81 ad 49 b5 a0 5a 40 03 1a 16 40 14 56 90 60 10 40 41 51 14 56
0005e0 20 00 0c 05 20 24 01 04 ae 08 a4 24 c3 20 a1 a1 02 4c 42 02 06 c0 08 46 40 10 40 58 40 52 60 46
000600 a8 24 a2 85 00 25 21 21 b4 80 00 a0 54 a0 25 02 44 0a 18 02 18 12 15 46 02 50 40 90 48 08 42 66
000620 06 a0 80 04 21 22 a8 81 a8 a5 a0 05 a0 01 a0 20 00 05 02 0b 40 42 40 66 40 1a 46 34 50 54 05 66
000640 2c 24 a6 2c 0c 80 04 80 c0 61 b6 90 24 04 87 05 50 42 50 02 00 00 02 46 42 40 5c 50 50 68 32 66
000660 0d 09 00 84 00 a0 a0 00 a1 a0 10 24 a0 a4 90 24 41 4a 00 0d 08 03 47 46 40 52 00 50 12 16 50 ce
000680 88 21 a2 81 24 01 00 00 e4 a4 20 80 25 81 00 a0 08 48 00 59 58 0a 16 4f 00 10 12 92 92 58 52 56
0006a0 2f 21 0d 08 21 26 07 00 20 81 40 20 84 03 00 a8 10 02 02 0a 0c 5c 40 46 43 18 12 50 12 40 02 76
0006c0 0d 02 80 08 85 07 a4 04 a5 c0 a0 a0 a0 88 80 80 00 10 00 04 1e 40 0c 46 50 12 5c 00 10 09 52 76
0006e0 0d 80 82 04 81 b0 25 21 c1 e0 a4 a0 a9 30 00 a6 10 00 0d 01 12 0c 0b 46 44 72 41 50 10 50 10 66
000700 84 0c 85 04 20 00 00 22 b4 84 20 20 20 c1 10 60 42 1a 00 58 0f 00 11 4e 00 59 59 40 4a 04 50 66
000720 a5 04 28 0d 21 00 01 04 a0 10 e0 20 a8 80 05 88 03 03 53 1c 06 00 00 56 02 92 50 19 18 40 52 46
000740 00 23 22 00 84 a2 05 80 60 a4 a1 a2 80 84 a1 28 00 58 80 48 08 00 12 ce 48 18 04 10 40 50 5c 56
000760 86 01 25 60 00 04 00 00 a5 01 80 00 04 20 01 29 09 00 18 08 10 5a 1a 46 40 48 89 1a c2 52 16 7e
000780 00 08 00 04 00 21 00 a5 a1 01 81 8c 20 24 90 c0 4a 44 0e 40 08 00 42 66 00 40 50 5c 00 00 44 7e
0007a0 ae 04 05 01 20 00 21 28 54 00 86 21 28 40 00 a0 0a 12 1e 00 02 12 54 47 52 10 40 08 52 1e 53 76
0007c0 2b 85 04 01 00 01 08 a0 a0 8d 20 c0 24 a0 09 65 08 00 09 18 00 12 02 66 70 18 10 56 40 58 74 f6
0007e0 25 81 00 2c 80 88 0a 80 a1 24 21 80 84 85 00 98 1b 18 1a 12 08 0e 00 06 51 28 12 50 40 03 84 76
Dave
User avatar
Pernod
Posts: 3439
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Atom roms dumped at ABUG

Post by Pernod »

hoglet wrote: Wed Nov 15, 2023 11:54 am Some notes on usage:
- ^C clear screen
- ^D delete character at cursor
- ^H ] move cursor right
- ^U [ move cursor left
- ^L toggle upper/lower case
- ^I load message from tape and/or send message to sign
- ^O save message tape
- ^N search message for string
- ^Q send character 0x11 to message board

The ROM is started with LINK #A000, and will work on a minimal Atom with just 2K of RAM.

The sign connects to Port A (#B801) of the 6522 (the Atom Printer port) which is setup for output only. Bit 7 is used as a character strobe bit and bits 6-0 carry 7-bit ASCII data . It looks like control codes 0x11 and 0x12 do something special on the sign - I'm not sure what. The Atom is not responsible for scrolling the message on the sign, that's seems to be done by the sign itself.

Interestingly, all of this functionality takes up the just the first half of the ROM. The second half is filled with unknown data that doesn't seem to be accessed in any way from the first half.

If you load the ROM into the Atom screen memory in CLEAR 4, you can see some kind of periodicity in the data:
Thanks for the excellent write up, I'd already worked out most of the functionality and also have a fake sign partially emulated (will demo at tomorrow's ABUG if I make it).

Some further observations:
- ^B sends character 0x02 to sign, I'm assuming this is BOLD (double width characters). Maybe ^Q reverts back to normal text.
- every character typed is sent to the sign, and whole message is re-sent with ^I.
- suspect sign contains a MCU with ROM to control, and RAM to store the current message.
- pressing Return sends ^M, assume this is interpreted as a blank line of 20 chars.
- lots of other ^ characters are acknowledged and sent to sign, not obvious which should have an effect.

I also agree top half of ROM seems unused, but doesn't look random. This could've been used to make the ROM a bit friendlier/informative to use, or even contain an example demo message.
0001.png
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
IanS
Posts: 2541
Joined: Mon Aug 31, 2009 7:02 pm
Location: UK
Contact:

Re: Atom roms dumped at ABUG

Post by IanS »

hoglet wrote: Wed Nov 15, 2023 11:54 am The ROM is started with LINK #A000, and will work on a minimal Atom with just 2K of RAM.
One a real Black atom that should be done by the extra board generating an interrupt at power up (if the switch is in the right position).
viewtopic.php?p=46392#p46392
User avatar
Diminished
Posts: 1245
Joined: Fri Dec 08, 2017 9:47 pm
Contact:

Re: Atom roms dumped at ABUG

Post by Diminished »

hoglet wrote: Wed Nov 15, 2023 11:54 amThe second half is filled with unknown data that doesn't seem to be accessed in any way from the first half.

If you load the ROM into the Atom screen memory in CLEAR 4, you can see some kind of periodicity in the data:
Screenshot from 2023-11-15 11-27-09.png

I can't make much sense of the data - its not 6502 code, and it's not obviously a character ROM.
Sorting byte values by frequency of occurrence yields some interesting results.

Code: Select all

$ for N in `dd if=atom_sign.rom bs=1 skip=$[ 0x800 ] | hexdump -C | grep -o -e '  [0-9a-f ]*  [0-9a-f ]*  '` ; do echo $N ; done | sort | uniq -c | sort -n -r
Results depict the number of occurrences first, followed by the byte value in question:

Code: Select all

 261 00
  72 01
  66 40
  65 08
  63 02
  62 04
  57 80
  55 20
  55 10
  41 50
  41 0a
  36 05
  33 a0
  33 66
  28 12
  26 64
  24 44
  23 24
  20 46
  19 22
  18 84
  18 42
  18 18
  17 81
  17 52
  17 21
  16 58
  16 28
  16 14
  15 88
  15 45
  15 0c
  15 03
  14 a4
  14 85
  14 82
  14 60
  13 48
  13 25
  13 11
  12 c0
  12 a1
  12 90
  12 41
  11 06
  10 56
  10 4a
  10 09
   9 a8
   9 76
   9 1a
   9 0d
   8 65
   7 5c
   7 2a
   6 a5
   6 8c
   6 8a
   6 74
   6 51
   6 16
   6 15
   6 0e
   5 e0
   5 c2
   5 a2
   5 98
   5 67
   5 32
   5 30
   5 2c
   5 26
   5 0b
   4 9a
   4 92
   4 72
   4 5a
   4 59
   4 54
   4 53
   4 4c
   4 29
   4 1e
   4 19
   4 07
   3 c4
   3 94
   3 8d
   3 89
   3 86
   3 62
   3 55
   3 4f
   3 4e
   3 38
   3 2e
   3 2b
   3 23
   3 1c
   3 1b
   3 0f
   2 f6
   2 e5
   2 e4
   2 e2
   2 ce
   2 ca
   2 c1
   2 b8
   2 b0
   2 ae
   2 ac
   2 a9
   2 a6
   2 83
   2 7e
   2 6e
   2 6d
   2 68
   2 4d
   2 4b
   2 47
   2 43
   2 35
   2 2f
   2 13
   1 fd
   1 fa
   1 f4
   1 e9
   1 e8
   1 db
   1 da
   1 d2
   1 cc
   1 c6
   1 c5
   1 c3
   1 ba
   1 b6
   1 b4
   1 b1
   1 ab
   1 aa
   1 97
   1 96
   1 95
   1 91
   1 8e
   1 8b
   1 87
   1 7d
   1 7a
   1 75
   1 70
   1 61
   1 5f
   1 5e
   1 49
   1 3e
   1 3c
   1 3b
   1 3a
   1 37
   1 36
   1 34
   1 33
   1 31
   1 2d
   1 1d
   1 17
Null bytes are overwhelmingly the most common type, but it is telling that all eight next most frequent byte values have just a single bit set; 01, 40, 08, 02, 04, 80, 20, 10:

72 01
66 40
65 08
63 02
62 04
57 80
55 20
55 10

Then you get 50, 0A, 05, A0 (which are 0101 and 1010-style patterns):

41 50
41 0a
36 05
33 a0

It feels like a bitmap, at least.
Post Reply

Return to “acorn atom and acorn system series”