Last visit was: Thu May 01, 2025 12:18 pm
It is currently Thu May 01, 2025 12:18 pm



 [ 41 posts ]  Go to page Previous  1, 2, 3  Next
 Octal computers 69+ 
Author Message

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
How about Moon-nux for the Owl 75, with free computer time 2:30 to 6:30 am... Note No PIZZA or COLA after 3:00 AM.

The real news is I filled up the order code, to get 4 extra scratch registers, or base registers like a frame or i/o pointers.
They don't do to much, but they were a easy upgrade. This is about as far as I can go with my design and not need
hardware changes.
Ben
PS. Updated the hardware for BCC/BSR but not the software.


Sun Mar 23, 2025 12:20 am

Joined: Sun Mar 27, 2022 12:11 am
Posts: 58
oldben wrote:
My biggest problem is rollbacks is I don't have version control software. If a design idea fails or I make a bad mistake
like updating the or deleting the wrong version it hard to get back from a save a few generations before. Was that foo98 or foobar23?
The other catch is need my software at some point to be self hosting, and Small C from Dr Dobbs is the only portable compiler
that I could find that has a simple code generator and still only needs 16 addressing.

I have the chicken and the egg problem, I need a OS to port a compiler, but I need the Compiler now to write the OS.
I was wishing many many moons ago, to get something like Minux ported but it uses X86 memory management
rendering it non portable for a non intel cpu.
A fat indexed style of file I/O is my best option something like here:
File Integrity in a Disc-Based Multi-Access System see Operating Systems Techniques, C. A. R. Hoare and R. H. Perrott, Eds., Academic Press, New York, 1972, 227–248.

Minix seems like quite a heavy OS for a retro 16-bit computer. I recall Bill Buzbee spent quite a bit of effort getting it to run on Magic-1.

It wouldn't take much to make that compiler run bare metal. It kind of depends what you are using for storage though. For solid state storage it's super easy. When I was bootstrapping a z80 my file allocation table was pencil and paper. On power up the CPU is halted and a hex based keypad programmer / bus monitor was used to program a JMP <to some address in ROM> instruction into RAM. No USART or keyboard, output was to one of those little Hitachi LCDs.

The rest of the BIOS will be routines for terminal IO.


Sun Mar 23, 2025 8:09 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
Minux was a mini-unix, so it is kinda bigger than other os's. I also was looking at ELKS as well. This was from a time when
K&R was the C standard, so porting seemed reasonable,and still 16 bit code. Floppy disks was still the norm so developing
software was left to some big machine with large drives and fast printers. Sadly by the time Open Source came around you needed
24 bit addressing for any kind of code, and that is too big for what I consider a Small text based computer.

My bios will also have floating point in rom, but I need to get a basic shell written. Most of the stuff is now tweaking the system
to see what works best. IRQ service needs to be revised and other logic needs to be cleaned up. By then I will have version 1
implemented, with the newer ideas left version 2 and perhaps a simple mmu.


Sun Mar 23, 2025 11:20 am

Joined: Sun Mar 27, 2022 12:11 am
Posts: 58
Ouch, ELKS requires 512k. All the modern minimal Unix OSs seem to require quite a bit of RAM, even FUZIX was something like 128k.

Would Unix V6 be an option? 1975, open source and 16-bit. It did use an MMU. But porting the kernel is much easier because of the J. Lions book "A commentary on the sixth edition Unix operating system".


Mon Mar 24, 2025 3:34 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
DockLazy wrote:
Ouch, ELKS requires 512k. All the modern minimal Unix OSs seem to require quite a bit of RAM, even FUZIX was something like 128k.

Would Unix V6 be an option? 1975, open source and 16-bit. It did use an MMU. But porting the kernel is much easier because of the J. Lions book "A commentary on the sixth edition Unix operating system".


They all use virtual memory, and swap to disk. Disk is slow because of all the swapping, so they make a ram disk from what little
memory they have. Since this is time sharing, you need to have the fastest machine,memory and high RPM disks,
To pay for all this, you needed to share the costs, thus more users. But with more users you need more virtual memory so you add a token 8Kb more RAM and the computer gets bigger and slower and slower over time.
Had UNIX been really a been a un-multiplexed operating system, I might give it more thought.

I went to 18 bits, so could have ample addressing space of 64kb or more for a single process, and several addressing modes for bytes and words in a single instruction word. Indexing or word immediate requires a second word of course.
AT&T do have a UNIX with no MMU, but I can't remember what was called. I think FUZIX is based on that.
Small C is the best I can do for now, with the file system in ROM. Going is slow because I keep changing things around,
The file system is slow to write because it is in assembler.


Mon Mar 24, 2025 8:34 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
File systems are roughed out, and most of the code is in rom. I have hooks for subdirectories, but for now it is a single root
directory of 64 files. A 8.2 file name is used, and a time stamp is planned for when I get RTC. Time is just AM,PM and a date 1970+,day,month. I get about 1.5 Mb per disk, not great but better than 8 inch floppies.
Fixed a logic bug with the shift encoding.


Wed Apr 02, 2025 6:09 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
Revised and simplified the order code,now that I have the general encoding done. Needed to wire in the last *two* inputs to the Control CPLD frpm the bus. Now I have most of the features I wanted - now on version --- owl 1973. Most of the problems were
updating the CPLD's from the wrong subdirectory, and not having the serial cable connected after changing the cards.
The major change was encoding of register and index modes, and now having set of 15 GP registers plus the PC.
Now that it all saved to the bit bucket, I am calling it a night.


Mon Apr 07, 2025 5:58 am

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2307
Location: Canada
Quote:
The major change was encoding of register and index modes, and now having set of 15 GP registers plus the PC.

15 is a lot for 1973. 74'189 chips? I am beginning to appreciate that only a few registers can get a lot done if coding in assembler.

_________________
Robert Finch http://www.finitron.ca


Mon Apr 07, 2025 1:23 pm WWW

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
The original concept was 3 bit alu slice with 74x181 and 2 74x170 4x4 ram and other hardware on a pcb,
with the fact that TTL logic was so cheap (compared to memory) you could waste a few chips.
6 -3 bit slices would make a 18 bit alu. You had 4 registers A,B,X,S and PC. Two addressing modes,
# and indexed, a 6800 style cpu.
This was before the cheap PCB's , so I decided to use a FPGA card to emulate the design.
The FPGA card never compiled the logic correctly, so would have timing issues between code changes.
It may work, it ,may not work.
Some time later I decided to use SMALL C as the compiler, and that required a design change for a real
stack pointer.
Now with cheap PCB's, I dropped all the FPGA stuff. and moved to the more stable CPLD's.
Here I am using 74X219's a non inverting 16x4 ram. The same concept of a 3 bit slice, still works with
a 16x4 ram. Since this a microcoded design, the exact details are not needed for the 1973 microcode
other than a 256 x 16 rom is needed. PROM's and PLA's came out in 1973.
PS: I forgot I am using a more modern ALU, I need to change things for a 74181.


Mon Apr 07, 2025 8:14 pm

Joined: Sun Mar 27, 2022 12:11 am
Posts: 58
I'm guessing those 64-bit SRAM chips were cheaper than the equivalent TTL because they all switched to using it for their register files around that point.


Tue Apr 08, 2025 4:36 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
Oddly INTEL made the first 16x4 ram at about $100 each in the late 60's.
TI had a 16x1 ram in the early 70's, used in the PDP-11. Around 1972 most
MSI chips became common, but many suppliers had their in house, ram chips at that time.
Signetics 25120 is a typical example. The NOVA computers used a TI 74172
8x2 dual port ram $40? each.
Before the 1970's scratch pad core was used instead. The late 60's gave low cost (< $10 each)
SSI gates but even then it was about 2 chips per bit.
1969 to 1973 really marked the growth of micro chip logic.


Tue Apr 08, 2025 6:50 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
Cp/m is up and running. Control Program for Mini-computers.
Since most of the file calls are in rom, the shell is really small and stupid.
Changes drive A or B
Runs a *.SV file
Now I can start getting small C working and then port the assembler.


Thu Apr 10, 2025 7:42 pm

Joined: Sat Feb 02, 2013 9:40 am
Posts: 2307
Location: Canada
Quote:
Cp/m is up and running.
Congrats!
I thought CP/M was written in assembler for the 8080/Z80, did you port the whole thing?

_________________
Robert Finch http://www.finitron.ca


Fri Apr 11, 2025 2:14 am WWW

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
CP/M is control programs for microprocessors.(8 /16 bits)
mine is Cp/m control programs for minicomputers.(9/18 bits)
All the good names have been taken years ago.
I want to add sub directories later so I have to use a FAT type of OS.
DOS would be a option, but there is no source and it all x86 segmented.
The same goes for Minix.
Flex (68xx) is long gone with no source code.
StarDos had source, but it all gone as well.
All the small computers in the 70's other than the PDP11 or TI-990 are too limited in the
instruction set and addressing modes to have well developed software and programing
languages, but even then a MMU is required. There is nothing I can steal in software
for me to use that generates good code.
Having said that, my order code seems stable, and I can port the design for 20 bit
cpu, and have good chance of it working. This will give me a bigger address space
to handle bloated code sizes. Then I will have Cp/M Control programs for MainFrames.
(10/20 bits)
Ben.


Fri Apr 11, 2025 3:53 am

Joined: Mon Oct 07, 2019 2:41 am
Posts: 768
I decided to try porting Dunfield's C compiler, for my cpu.
Stupid C standard, wants both signed and unsigned bytes.
I had a spare bit around, so I am using that as a unsigned flag bit.
Took all my versions from this month and backing it up to the CD rom.
Ran out names , so the directory is T18 - transistor 18.
Ben.
PS Since I am starting from the 6809 model, I plan to add the 6809
indirection [x] as a assembler macro, using a scratch register for indirection.


Sat Apr 12, 2025 11:44 pm
 [ 41 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: claudebot and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software