Last visit was: Fri Jul 30, 2021 7:50 am
It is currently Fri Jul 30, 2021 7:50 am



 [ 25 posts ]  Go to page Previous  1, 2
 ben's20 bit cpu. 
Author Message

Joined: Mon Oct 07, 2019 1:26 pm
Posts: 43
Hi Ben, I'm looking for a simple OS for my Kobold computer. It's a computer with 20 address lines, so around the same size as yours.

That OS that you use, does it have free C source ? And/or did you make it yourself ? Would you recommend it ?


Sun Jun 14, 2020 6:32 pm

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
It is my own os, but written in my own language so it rather not portable to other
machines because of the way subroutines are called. Frame based rather than stack based.
The compiler and the assembler are both written in C ("USS Enterprise NCC 1701. No bloody A-B-C-D or E!" Scotty).
The os is a simple CP/M style os, using a block size of 1526 bytes (3 512 byte sectors).
I have a fat table of one sector and directory of one block. This gives ample space for
the I/O at the time (1975-1980) using GCR. The simple OS is placed in
the last 64Kb of memory and the bottom memory is used for programs.
I have 1KB bios that provides the basic I/O read char / write char / read block write
block,boot from paper tape,boot from disk.
The OS is written in 4 segments, so I have bootstrap version and the DOS using
the same code, with just a few routines in the main body.
Ben.


Sun Jun 14, 2020 7:24 pm

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
Here are the files. This is for a 8/16/32 bit cpu
This software requires a CPU with a long branches
and set ac to 0/1 on condition codes.

bengol.zip is the bengol compiler + microcode test
cpu.lst (txt) is the microcode roms
benos.zip is the os written in bengol
The bengol compiler is being revised to make it easy to port
simple c programs. { after a function define C like operands
other wise a algol like syntax begin end if eif else endif while repeat
do until. Structures are defined as offset to a array
Ben.


You do not have the required permissions to view the files attached to this post.


Sun Jun 14, 2020 8:46 pm

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
Now upgrading the hardware this week, for the 20 bit cpu. Moving the SD card from the DE1
to the expansion bus using Sparkfun's SD card adaptors, once FedEx delivers them.WOW 2
1970 IBM 2315 disk cartridge drives (software emulated). 32K words ram make this a MID SIZED
micro computer. ( still need to add more serial ports and printer ).

Tweeking the hardware for BCD floating point routines, and some general software revsions
as well.
I have come to the conclusion that 12K (words) is needed for the OS and I/O buffers+ Stack.
24 K (words) is needed for program space. CP/M got away with a small footprint by having 128 byte
sectors and the user program handles buffer and stack space. Flex (6800) had 256 byte sectors
and a 8K footprint. Apple and the other machines had a 'ROM BASIC' O/S.
12/16 bit machines had fancy DMA Discs that swapped core and disk to give virtual memory
and often timesharing in 16K words.


Thu Aug 06, 2020 5:32 pm

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
Hardware has added a micro SD card, so now I have a "two floppy" system.
Decoding has been tweeked, to be faster. Still have no idea what to set the
core memory speed (TTL) for ~1974. ~ 6 amps for 20 bit alu card. .1.0 us cycle time?
LS/MOS memory version ~ 1975 .5 to .7 us?
Toying with a 24 version the cpu, but it has a few glitches still. Simple decoding
and carry lookahead makes it faster. 2 alu cards makes for a better layout.
Now back to debugging.


Sat Aug 29, 2020 3:22 am

Joined: Sat Feb 02, 2013 9:40 am
Posts: 1441
Location: Canada
Quote:
CP/M got away with a small footprint by having 128 byte
sectors and the user program handles buffer and stack space. Flex (6800) had 256 byte sectors
and a 8K footprint. Apple and the other machines had a 'ROM BASIC' O/S.
12/16 bit machines had fancy DMA Discs that swapped core and disk to give virtual memory
and often timesharing in 16K words.

I can't believe how compact the OS is of some earlier machines.

Quote:
core memory speed (TTL) for ~1974. ~ 6 amps for 20 bit alu card. .1.0 us cycle time?
LS/MOS memory version ~ 1975 .5 to .7 us?
6 amps just for the ALU? How many for the whole machine?

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


Mon Aug 31, 2020 3:52 am WWW

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
This is just paper design, TTL chips run at about 50 ma for gates, MSI 100 or 150 ma per chip.
A 4 bit slice is about 1.25 amps for the data path. I guess about 20 amps with a serial port
and 8K (words of core). With core memory, the alu took most of the power. After core memory
memory took most of the power. Add a few amps for blinking lights ~ 1973. 74LS came out I
guess about 1975, with cheaper $10? 4k drams.
The fpga card I have uses about 1 amp.
Ben.


Mon Aug 31, 2020 7:20 pm

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
Floating point routines have been coded for a larger 24 bit cpu, with a 2901 alu (emulated fpga).
What software I have needs be rewriten for 2 words floating point. A 40 bit floating point
serves my needs better than 48 bits and looks be simplier if I have word size
operations (40 bits) in hardware.
I plan to use 3 eproms for microde
and 22v10's to decode the proms. 22v10's will be ever where other some small gates
for the clocks and simple logic. The 22V10's have 20 ns delay and are Quarter power
thus replacing 74LS MSI makes sense, mostly for better PCB pinouts.
Exact timing will depend of the speed of the eproms, but still core memory speeds and timing.
Here the dead memory write cycle can be used for the second ALU pass for 2 word instructions.

The memory model can have up to 512Kb of ram, but only 32 KB for the O/S and stack and 128KB for programs is planned for the system. 4K rom will be for BIOS and bootstrap routines.

128KB is the same 32K words so I have computer similar to the big iron of the late
1950's.
I expect to have someting around mid January, running on DE1 FPGA computer.Ben.


Fri Dec 11, 2020 8:13 am

Joined: Sat Feb 02, 2013 9:40 am
Posts: 1441
Location: Canada
One of the nice things about using an FPGA is components can be made as wide as needed one does not have to worry about pin limits. The 2901 ALU could be 48 bits wide. Are there other 29xx series chips being emulated? Nostalgia moment. I remember drooling over some 2901’s as a teenager a bit pricey for my budget. I found some 74S181’s instead. Got some 29xxx rams floating around someplace. I used to have the data-book for the 29xx series.

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


Sat Dec 12, 2020 4:39 am WWW

Joined: Mon Oct 07, 2019 2:41 am
Posts: 255
The 2901 is a bit tricky emulate in a FPGA because it uses tristate logic on some of the pins.
In my case I don't need a 100% emulation, and have a modified interface to the 2901 alu section
and just have the features I use. That saves me two bits of microcode rom. Q is a scratch register
only and
Code:
B = A op B
is not used.
A real 2901 model is floating around on the web, but have not seen anyting else. I suspect
anybody that used a bitslice computer have long moved to a FPGA verson, or switched something more modern. Extra RAM can be added to the 2903.


Sat Dec 12, 2020 6:42 am
 [ 25 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users 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