On 26 Jul 2010 at 11:22, Jim Stephens wrote:
I'm curious what you found to make you think the
call was D3, etc.? I
looked and found a some other processors which might have 16 bit
immediate and wondered how you figure the call, vs. branch, etc. I
can guess, but thought I'd ask a few blobs of hex might put more
eyeballs on the puzzle.
Easy--inspecting the code that I have, the call to display (print) a
message takes the form:
D3 08 00
(size of ASCII string)
(ASCII string)
next instruction
If you think about it, the only way this will work is if the called
routine takes the return address from the D3 instruction and uses it
to access the inline data and then resumes after the end of the
string has been reached.
Similarly, 2C xx xx appears to be a load immediate of some sort, as
it's used to set up constant data before a D3 xx xx instruction.
The code is peppered with D3 xx xx for the various other statement
types that I can recognize (I have a couple of less-than-one page
JPEGs of old program listing). I don't have much of a Rosetta stone,
but I'm satisfied that instructions are 24 bits long and addresses
appear to be no more than 16 bits.
Thanks to Brent giving a starting point and from the date of the
code, I believe the equipment to be a Fairchild Series 70 ATE rig
using a Fairchild FST-2 CPU. The weird 8" floppy formats confirm the
time period (i.e., both hard sector FM and soft sector MFM, with
utterly non-standard encodings).
Thanks,
Chuck
P.S. Here's some sample code:
00A320 50 52 4F 47 52 41 4D 20-49 53 20 46 4F 52 D3 74
00A330 0C 80 D3 41 00 00 00 01-D3 74 0C 8A 90 3F 8C 00
00A340 90 36 99 03 B0 74 D3 2D-00 01 90 3F 99 02 30 70
00A350 90 3B 00 1A 90 3F 8C 03-8D 01 90 36 99 04 B0 36
00A360 D3 08 00 24 20 20 20 20-20 20 20 20 5A 4F 4F 4D
00A370 20 26 20 48 49 53 20 42-4F 41 52 44 20 4F 4E 4C
00A380 59 20 20 20 20 20 20 20-D3 74 0C 8A D3 41 00 80
00A390 00 01 D3 74 0C 94 90 3F-8C 00 90 36 99 03 B0 74
00A3A0 D3 2D 00 01 90 3F 99 02-30 70 90 3B 00 1A 90 3F
00A3B0 8C 04 8D 01 90 36 99 04-B0 36 D3 08 00 24 20 49
00A3C0 4E 53 45 52 54 20 55 55-54 20 41 4E 44 20 53 59
00A3D0 4E 43 53 20 47 45 4E 45-52 41 54 4F 52 20 43 41
00A3E0 52 44 D3 74 0C 94 D3 41-00 80 00 01 D3 74 0C 9E
00A3F0 90 3F 8C 00 90 36 99 03-B0 74 D3 2D 00 01 90 3F
00A400 99 02 30 70 90 3B 00 10-90 3F 8C 06 8D 0C 90 36
00A410 99 04 B0 36 D3 08 00 10-50 52 45 53 53 20 47 4F
00A420 20 54 4F 20 54 45 53 54-D3 74 0C 9E D3 41 00 00
It starts in the middle of a display screen "PROGRAM IS FOR". At
00A363, you'll see " ZOOM & HIS BOARD ONLY". Then, at 00A3BD,
the display text "INSERT UUT AND SYNCS GENERATOR CARD". Finally, at
00A417, "PRESS GO TO TEST".