PDA

View Full Version : My utter waste of time project


Paul C. Anagnostopoulos
19th September 2006, 07:23 PM
I've wasted a lot of time in my life, but this new project takes the cake. I've decided to create an emulator for a fictitious 1960s style SISC computer, write a high-level assembler for it, and then write an operating system. Call me crazy.

The machine is called the Linq 1695. The name refers to two of my favorite old-fashioned computers; huzzahs to anyone who can figure out which ones. I first wrote an architecture spec for it. It's not finished, but if anyone gets a kick out of this sort of thing, PM me for a copy.

Then I wrote a quick and dirty assembler called Lak, for low-level assembler K. It's based on the rudimentary concept used by the PDP-8 assembler: The opcode and operand symbol values are simply ORed together to form the final data or instruction. Lak supports arbitrarily deep forward references.

Now I've started implementing the emulator, using Lak to write the diagnostics.

Once the emulator is done, I'll write Haq, the high-level assembler Q. This will be a full-blown assembler like IBM's HLASM. Only with such an assembler could I possibly stomach writing the operating system: LTOS, Linq Tape Operating System.

I love this. Does anyone else get a kick out of nonsense like this?

~~ Paul

kevin
19th September 2006, 07:37 PM
i thought the guys behind this were crazy
http://minivmac.sourceforge.net/

now you're emulating a machine that never even existed. How can that be an emulator?

Dog Boots
20th September 2006, 04:24 AM
Paul, I think maybe some people would consider a deliberate waste of such much talent a crime. If someone were to legislate against it, making it literally illegal, it would not even be the most stupid law I've heard of...

But I do know what makes you do something like that ;) I have some of that in me as well...

Blue Bubble
20th September 2006, 04:48 AM
Paul, that sounds like Knuth's MIX for his hypothetical MIX 1009 (MIX being the Roman numerals for decimal 1009).

How do you find time at your age to do something like this ?

Get back to VMS (we miss you) ;)

Complexity
20th September 2006, 06:53 AM
I love this. Does anyone else get a kick out of nonsense like this?

Yep. Me. I dream of having the time to write a simulator for an emergent-network dataflow processor. There's no such processor - its all in my head; started during a computer architecture class as the result of a misunderstanding - but I think it is beautiful and would love to watch it in operation.

Keep having fun.

Paul C. Anagnostopoulos
20th September 2006, 07:55 AM
now you're emulating a machine that never even existed. How can that be an emulator?
It can't. But it can't be a simulator, either. What the hell should I call it?


How do you find time at your age to do something like this ?
I don't really have the time, but I need a break from real work. What the hell.


Get back to VMS (we miss you)
It's good to be missed!


Keep having fun.
Will do.

~~ Paul

logical muse
20th September 2006, 08:44 AM
(snip)

I love this. Does anyone else get a kick out of nonsense like this?

~~ Paul

Yep! I've done this kind of thing too. My first was actually an emulator/assembler/disassembler/debugger for the National Semiconductor PACE chip, and i kinda got the bug then.

Since then I've designed my own and written simulators and tools for them.

It really is a lot of fun.

richardm
20th September 2006, 09:38 AM
I've wasted a lot of time in my life, but this new project takes the cake. I've decided to create an emulator for a fictitious 1960s style SISC computer, write a high-level assembler for it, and then write an operating system. Call me crazy.


I don't know if you're crazy, but you are impressive. I had to write a simple compiler as part of my degree, and it nearly drove me round the twist.

Orangutan
20th September 2006, 09:50 AM
Paul,

As it's not quite and Emulator and It's not quite a Simulator and it's only purpose is to keep you excited, it must be a Stimulator.
;)

Paul C. Anagnostopoulos
20th September 2006, 05:17 PM
The Linq 1695 Stimulator. I love it!

Okay, explanation of name: "Linq" is a tribute to the DEC Linc, with its tape drives that could be directly addressed. "1695" is a tribute to the IBM 1130. 1695 = 1.5 * 1130, because the Linq has 24-bit words = 1.5 x 16-bit words.

~~ Paul

a_unique_person
20th September 2006, 07:44 PM
Paul,

As it's not quite and Emulator and It's not quite a Simulator and it's only purpose is to keep you excited, it must be a Stimulator.
;)

Dreamulator?

Dark Jaguar
20th September 2006, 09:28 PM
Don't mention this around philosophy students. They might call you stupid and evil for doing such a thing, simply on the grounds of some sort of definition issue making it "impossible" from the start.

rockoon
21st September 2006, 10:08 PM
Paul, that sounds like Knuth's MIX for his hypothetical MIX 1009 (MIX being the Roman numerals for decimal 1009).

How do you find time at your age to do something like this ?

Get back to VMS (we miss you) ;)

Did you know that there is an open source MIX emulator? :D

Zombified
22nd September 2006, 02:25 PM
I love this. Does anyone else get a kick out of nonsense like this?
Yup.

Have you been tempted to implement it in an FPGA yet? ;)

Paul C. Anagnostopoulos
22nd September 2006, 05:48 PM
Have you been tempted to implement it in an FPGA yet?
That would be a hell of a thing!

~~ Paul

monoman
25th September 2006, 04:27 PM
I've wasted a lot of time in my life, but this new project takes the cake. I've decided to create an emulator for a fictitious 1960s style SISC computer, write a high-level assembler for it, and then write an operating system. Call me crazy.

The machine is called the Linq 1695. The name refers to two of my favorite old-fashioned computers; huzzahs to anyone who can figure out which ones. I first wrote an architecture spec for it. It's not finished, but if anyone gets a kick out of this sort of thing, PM me for a copy.

Then I wrote a quick and dirty assembler called Lak, for low-level assembler K. It's based on the rudimentary concept used by the PDP-8 assembler: The opcode and operand symbol values are simply ORed together to form the final data or instruction. Lak supports arbitrarily deep forward references.

Now I've started implementing the emulator, using Lak to write the diagnostics.

Once the emulator is done, I'll write Haq, the high-level assembler Q. This will be a full-blown assembler like IBM's HLASM. Only with such an assembler could I possibly stomach writing the operating system: LTOS, Linq Tape Operating System.

I love this. Does anyone else get a kick out of nonsense like this?

~~ Paul

The first thing i'd do is register a domain name. There's going to be a hell of a lot of interest out there for his kind of thing :p

Have fun :)

Paul C. Anagnostopoulos
28th September 2006, 06:45 PM
Today I took my first interrupt. From the timer.

~~ Paul

Paul C. Anagnostopoulos
4th October 2006, 06:29 PM
I'm just about finished implementing the emulator. So it's time to start thinking about the assembler. I have a design that's way over the top.

Anyone have opinions about what an assembler needs? Heck, how many of you even use an assembler anymore?

~~ Paul

rockoon
4th October 2006, 08:04 PM
An assembler should have the standard symbol referencing (both forward and reverse, although forward is sometimes left out or 'hacked in' in a less-than-optimal fashion.) Without this its like programming with the old dos DEBUG program... wrong tool for the job.

A preprocessor is totally optional (including macros)

Paul C. Anagnostopoulos
5th October 2006, 01:13 PM
The assembler will allow arbitrarily deep forward definitions, and resolve them with as many passes as necessary.

I cannot imagine coding more than 50 lines of assembler without macros. I'm writing the diagnostics using a quick-and-dirty assembler without macros and it's making me crazy. There is a reason that all real assemblers have a macro processor. There is a reason why the VAX assembler was called VAX Macro.

~~ Paul

hodgy
5th October 2006, 02:46 PM
Good stuff - this is the model engineering of the future. Move aside 1/24th steam engineers, Paul C.A. is dragging hobby engineering into the 21st Century :)

roger
5th October 2006, 03:05 PM
Wait a minute. Are you writing an assembler, or cross-assembler? I trust you already wrote a cross-assembler, and are using that cross assembler to write an assember for your emulator, yes?

Paul C. Anagnostopoulos
7th October 2006, 02:15 PM
Wait a minute. Are you writing an assembler, or cross-assembler? I trust you already wrote a cross-assembler, and are using that cross assembler to write an assember for your emulator, yes?
I wrote a quick and dirty cross-assembler just so I could write diagnostics for the emulator.

Now I am going to write a real cross-assembler and cross-linker with which to write the operating system.

Whether I ever write a native assembler is anyone's guess. I doubt it.

~~ Paul

jeremyp
10th October 2006, 01:48 PM
I've wasted a lot of time in my life, but this new project takes the cake. I've decided to create an emulator for a fictitious 1960s style SISC computer, write a high-level assembler for it, and then write an operating system. Call me crazy.

I'm doing the same thing but for a real processor, the 68000. That way, I don't have to write my own assembler. In fact, I'm planning to use gcc to make a cross compiler. That should ease the pain of building the OS.

FreeChile
18th October 2006, 10:23 PM
I've wasted a lot of time in my life, but this new project takes the cake. I've decided to create an emulator for a fictitious 1960s style SISC computer, write a high-level assembler for it, and then write an operating system. Call me crazy.

The machine is called the Linq 1695. The name refers to two of my favorite old-fashioned computers; huzzahs to anyone who can figure out which ones. I first wrote an architecture spec for it. It's not finished, but if anyone gets a kick out of this sort of thing, PM me for a copy.

Then I wrote a quick and dirty assembler called Lak, for low-level assembler K. It's based on the rudimentary concept used by the PDP-8 assembler: The opcode and operand symbol values are simply ORed together to form the final data or instruction. Lak supports arbitrarily deep forward references.

Now I've started implementing the emulator, using Lak to write the diagnostics.

Once the emulator is done, I'll write Haq, the high-level assembler Q. This will be a full-blown assembler like IBM's HLASM. Only with such an assembler could I possibly stomach writing the operating system: LTOS, Linq Tape Operating System.

I love this. Does anyone else get a kick out of nonsense like this?

~~ Paul
Isn't that like what Shor's algorithm is all about--except he was going for a future machine. You may want target your simulator for QC systems instead. You may get insanely rich in the future.

Quantum Computer with Molecules
http://www.media.mit.edu/physics/publications/papers/98.06.sciam/0698gershenfeld.html

Zep
19th October 2006, 04:39 AM
The Linq 1695 Stimulator. I love it!

Okay, explanation of name: "Linq" is a tribute to the DEC Linc, with its tape drives that could be directly addressed. "1695" is a tribute to the IBM 1130. 1695 = 1.5 * 1130, because the Linq has 24-bit words = 1.5 x 16-bit words.

~~ PaulAhem.

We have a real DEC Linc in our museum. Two of them, actually.

And I strongly recommend you contact Bob Supnik about computer simulation: http://simh.trailing-edge.com/

Paul C. Anagnostopoulos
19th October 2006, 05:45 PM
Man, I loved the DEC Linc. It was like having a personal computer in the 1960s.

Bob Supnik lives in my town. Glad to see him resurrecting some of these great old machines.

I've changed the name to Linq 2260. Now it's twice an IBM 1130, even though it still has 24-bit words. Linq 1695 just didn't do it for me.

~~ Paul

Beerina
19th October 2006, 08:06 PM
I'm just about finished implementing the emulator. So it's time to start thinking about the assembler. I have a design that's way over the top.

Anyone have opinions about what an assembler needs? Heck, how many of you even use an assembler anymore?

~~ Paul

It's typically just menmon, mneman, manom, simple words standing in place of machine code. If you've designed the machine code, have a ball coming up with simple names for each instruction. With SISC, that's pretty much ALU operations + load and store.

Macros optional.

Jimbo07
19th October 2006, 08:44 PM
It's typically just menmon, mneman, manom, simple words standing in place of machine code.

Ooh! You could have fantastically overbearing mnemonics! That or confusing ones like:

rrc (roll right then complement! :D )

Paul C. Anagnostopoulos
20th October 2006, 03:37 PM
I have JIG and JIGA.

~~ Paul

jimlintott
20th October 2006, 04:17 PM
When you finish the assembler will you use it to port a PERL interpretor to it?

:D

Paul C. Anagnostopoulos
20th October 2006, 05:14 PM
Uh, no. There shall be no Perl running on the Linq. First I have to write an operating system. Then perhaps I'll write a Lisp system.

~~ Paul

Jimbo07
20th October 2006, 05:59 PM
I have JIG and JIGA.

~~ Paul

JIZ could be fun (if rude :o )

Paul C. Anagnostopoulos
21st October 2006, 05:30 PM
JIG shifts left n bits, then right n bits. JIGA does the same, but shifts right arithmetically.

So JIZ, let's see. Jump If Zero. Jiggle Zero. Jump In Zone.

~~ Paul