Hardware Hobbyists vs. Emulator Enthusiasts vs Replica Recreators
Roger Holmes
roger.holmes at microspot.co.uk
Sat Jun 20 16:50:44 CDT 2009
On 18 Jun 2009, at 20:06, cctalk-request at classiccmp.org wrote:
>
> From: Ray Arachelian <ray at arachelian.com>
>
>> I now plan to publish my emulator on the web, along with original
>> software which non programmers can run on it. I am very unsure of how
>> many people will be interested in such a thing. I need to get the
>> physical machine running to retrieve said software from unique ten
>> track mag tapes and from standard 80 column cards, though I could
>> probably get the latter read elsewhere, I don't want to have to
>> transport about 150,000 card somewhere to have them read, probably at
>> great cost.
> Hey, I'd happily play with it. I probably won't get very deep into
> it,
> but I would like to interact with it and see what it was like. (Which
> mainframe btw?)
The ICT 1301 dating from 1962. It is possibly unique in not having a
program counter. Of course there is a way to get the next pair of
instructions or a double length instruction. If you think of it as a
three instruction pipeline which (in normal operation) always contain
an instruction to do the instruction fetch that gives you the idea.
The fetch instruction is an absolute jump, so contains the address.
After execution it re-enters the pipeline with one added. There can of
course be more than one absolute jump in the pipeline, it can even be
all jumps, and the jump instruction can be used to jump to a
subroutine which saves some of the pipeline in memory as its first
instruction.
> Hopefully you'll add various things to make the experience more
> authentic, such as sounds and pictures/animation of actual tapes,
> punch
> cards, etc. (As much as possible.)
Yes that would be nice.
> You've done a wonderful thing by letting people look inside a large
> machine. Hopefully you'll get the chance to do it again and get to
> see
> lots of smiles on the little kiddies faces.
Thanks. Not so much smiles as wide eyed amazement.
>> For micro computers I agree, not quite sure this applies to
>> mainframes. I guess it depends on how you define software. If a
>> single
>> instruction is software then I suppose so. At the lowest level
>> debugging I can set an instruction into control register one, set the
>> machine to single cycle and watch the lights on the console as I send
>> single clock pulses through the hardware every time I press a button.
> Sorry, that's still running software. Microcode is still software
My machine has no microcode its all hard wired logic. Confusingly
there are two instructions, the multiply and the block move which
proceed in small steps in what the manuals micro instructions but
there is no memory of any sort they are read from, no micro
instruction set, just logic which decides if the multiplier, or word
count has reached zero and if a (decimal) digit is more or less than
five to decide to subtract or add the multiplier.
> You can hold a programming class. Maybe provide actual documentation
> ahead of time so they know what to expect and can have an idea of what
> sort of programs that they can execute, maybe provide some samples for
> them to start with and tweak as they go along.
For ordinary visitors we don't have contact beforehand. We could
possibly have days in the same way as preserved steam railways have
days when they sell people the experience of being a steam engine
driver, under strict supervision of course. Car racing tracks have
days when you are taught the safety rules and the allowed to drive
around the track in a fast car accompanied by a professional racing
driver. This costs a lot of money of course. For computers maybe
something could be done on the web for free with emulation. This could
be worldwide all year around. Any local people could arrange to come
and run their programs on the real hardware in the warmer months.
> If you can get actual
> terminals to the mainframe, once they're done using the emulator, you
> could fire up the real thing and let them play with that for a short
> time. Maybe if you're worried about the cost of the electricity, you
> could charge a bit of cash for that purpose and let them know what the
> cost is for.
Forget terminals, the machine never had them. A very small number of
them had the optional teleprinter but I have never seen one. I could
hook up a teletype, Flexowriter or a Creed but there is no operating
system to use it with. There are 400 words of protected drum storage
to hold a punched card bootstrap and a few utilities.
> I don't think several hundred visitors a day would write code, they
> might just want to see it in action, but maybe a few dozen would
> like to
> get deeper.
Maybe I could ask people this year if they would like to do that. Too
soon for this year anyway, 12th July is too soon to do anything much.
> Sure, there will be much better 3D modeling software out there by that
> time, but I imagine many would want to go back and see what it was
> like
> in the day and experience that for themselves.
Hmm, I suppose I am falling into the same trap as the people who
scrapped the mainframes, assuming that because things are no longer
useful they have no reason to exist.
> Myself, I have two little ones, they're not quite old enough to
> understand computers yet, though I've given them one to play with -
> right now they just use it to watch videos or listen to kids'
> audiobooks
> on. Rarely they play games on them. But when they're about 9 or so I
> imagine I can show them a lot more and let them play with the machines
> I've collected over the years and maybe they can play with the ROM
> BASIC
> and code a bit. :-) Something I'm looking forward to.
Yes, before they become teenagers and have no patience.
>> One aspect of emulators I have not yet explored is, well hold on a
>> second and I'll explain. When looking through the 1301's
>> documentation, circuit diagrams and instruction set, I am very
>> tempted
>> to add improvement which could have been done by the designer, but
>> for
>> some reason, either budgetary or lack of knowledge (some software
>> techniques had not been invented yet). In an emulator I could add
>> indexing or indirect addressing, or immediate mode data, or relative
>> mode, or branch on NOT some condition without having to modify the
>> actual hardware. I could then try programming the machine in that
>> configuration and see how it affected the program size and ease of
>> programming.
>>
>> It would be even more fun if the emulator was done at logic gate
>> level
>> and even more so if mated to an interactive 3D model of the hardware
>> where you could open the cover, insert emulated scope probes and look
>> at the signals. You could even emulate random logic failures for
>> educational reasons, though to do so as a game would probably be a
>> step too far for me, though programming the emulator to do it WOULD
>> be
>> fun.
> Right, a logic simulator could be used to model this, and later you
> could change the emulator around to match the proposed change. Gate
> level emulation is very difficult. Not so much difficult to write,
> but
> its going to require a lot of processing power, and the timing aspects
> will be very hard to get right.
Fortunately I have a very slow machine to model, the faster
instruction takes 12 microseconds. There are about 4000 PCBs, 1000 of
which are JK flip-flops. The other 3000 have at most 4 And gates on
each, plus wire-or so I would guess about 15,000 gates and 1000 flip-
flops. I have scanned the 'Address Book' which lists all the
interconnections in the machine. I want to OCR it and then write a
program which generates C code to recursively process all changes in
logic level for that clock cycle and then latch the data into the flip-
flops at the end of the clock pulse. As there are so few logic levels
which change on each clock cycle I would think that could be done in
real time, after all a modern machine has a clock speed about 2000
times greater my 1301's 1MHz clock.
> It has been done in the past, mainly to help designers test out their
> designs, but they typically run several thousand times slower than the
> actual machine.
Presumably someone designing a new computer would be designing
something faster than what already exists so the simulation would be
often be running on a slower machine in the first place.
> I remember there was something, possibly Java or such on that page,
> but
> it's long gone now. Unfortunately it wasn't something one could
> download. That's one of the things that utterly sucks about the web.
> You can archive it, but things that depend on a back end server
> can't be
> replicated without having what runs there (or a simulation thereof.)
> It's sad that it wasn't released publicly.
Now we have been appointed as the '1301 working group' of the CCS, the
other half of the team gets a seat on the CCS committee (I'm too busy
earning a living to keep going up to London every few months) so
perhaps he can see if that is a possibility.
> Most of Colossus was just circuitry, not much to program there, but
> you
> could code simulations of those circuits and provide code that does
> similar enough things. (At least what little I know if it comes from
> the book.)
I think you need a knowledge of basic cryptography to make much sense
of what the plug-able 'menus' do, knowledge I don't have.
Roger Holmes.
More information about the cctalk
mailing list