Hey guys!
I was contacted by gentleman who was asking if there was any list of things to code (a tasks list) for the computer. At least for its early development and functioning and it occurred to me that it could actually be a good idea to post one and start looking into it.
I understand that till we have actual hardware, it is going to be a bit of pain... But, actually, from the time there is a board (Somewhere in August) things could get moving pretty quickly.
At this point, for anybody interested... Anything to do with the SuperIO chip could actually be implemented ahead of time, since the documentation abound for it and since it is register level is 100% compatible with a PC, it ought to be even better.
So, here the preliminary list, I probably forgot a lot of things, but let's get started:
KERNEL:
--SUPER IO
PS2 Keyboard Interrupt Management
PS2 Keyboard Low-Level API
PS2 Mouse Interrupt Management
PS2 Mouse Interrupt Low-Level API
3.5" Floppy Low Level Controller - Init
3.5" Floppy Low-Level API
Serial Port Initialization
Serial Port Low-Level API
Parallel Port Initialization
Parallel Port Low-Level API
(CIA0)
(C64) Keyboard Layout Interrupt Management
Timer1/2 Low-Level API (This is Tied up the Interrupt Controller)
(CIA1)
IEC Controller (1541/1571/1581) Support
Timer3/4 Low-Level API (This is Tied up to the Interrupt Controller)
(RTC)
Real-Time Clock Interrupt Management (This is Tied up to the Interrupt Controller)
--GAVIN
Memory Manager Low-Level API DMA Controller Low-Level API
--VICKY
Graphic Engine Init
Graphic Engine Low-Level API Interrupt Controller Init
Interrupt Controller Low-Level API
--BEATRIX
Sequencer Init
Sequencer Low-Level API
SID Init
SID Low-Level API
YM3812 Init
YM3812 Low-Level API
Disk Operating System
(IEC Connector) CBM Disk Support Command
(Local Floppy)
CBM Disk Support Command + Extended Command
FAT32 Disk Support Command + Extended Command
Monitor/Text Editor
Tom seems to be on top of that one...
BASIC Interpreter...
Well this is a big chunk that would need to be divided, but Tom is the one to kind of leading the effort (or will be I am sure) ;o) Sorry Tom to put so much pressure on you!
Stef
" 8- Build more boards and Provide at least one to Tom so he can get the monitor to work. Subsequently, I will provide one for you Richard so you can contribute, if you have time to. "
I would be willing to contribute but I would be willing to help out. As for August 23, that sounds like a lot to get done by. Don't be surprised if the schedule isn't met but I hope so.
" I think the first iteration of the system will likely boot straight to a monitor prompt. Later, you'll get the BASIC ROM, with (I think) some cool new tricks.
I haven't looked at how Supermon handles this yet, but I've already done the basic design work on this.
Right now, my plan is to use the BRK vector, which pushes the current PC and K onto the stack. The Monitor's entry code will then write all the other register values into a block of Direct Page RAM used for that specific purpose. Those locations will also be used to prime the registers when the user runs an ML routine with the SYS command or the Go command in the monitor. "
Temporarily, BASIC can be implemented in as stripped down as it gets.... the Monitor command, Ready prompt and very limited command set. As for Supermon.... actually, it would be Jammon because it is 65c816 version of "SuperMon" which was for 6502 & 6510 and 8502. While we are at it.... we are talking Jammon which is PD... thanks to Stephen Judd who eliminated a step in converting SuperMon to 65c816. I would start with the Jammon version by Stephen Judd. While it is based on SuperMON, it is done up for 65c816 because of the SuperCPU.
Guys,
You will have to fight with each other for a while guys about what should be done... ;o)
I agree that the monitor ought to be amongst the first thing to be present. But in order for anything to happen, I have to do the following:
1- Finish the Board and get it manufactured
2- Build the first prototype.
3- Power Bring Up/Debug.
4- Preliminary work on the GAVIN and VICKY chips.
5- Get the Debug Port functioning so we can have access to the external memory and that very memory can be programmed from a PC and code can be downloaded and executed.
6- Get the LPC bus to work and get the keyboard to work. (if LPC work, then a bunch of other stuff will begin to be available, i.e: More serial ports, etc...)
7- Get a Sample Text Mode to work for the display.
8- Build more boards and Provide at least one to Tom so he can get the monitor to work. Subsequently, I will provide one for you Richard so you can contribute, if you have time to.
I need to accomplish all that before the 23rd of August, so it can be ready for CRX.
Do you think we can achieve that Tom?
Cheers,
Stef.
PS: Guys, btw, starts to look for a PS2 Keyboard, a VGA (DVI) compatible monitor and a good set of Monitor speaker... ;O)
PPS: Seriously, when the CRX will be over, if you are seriously ready to be major contributor, we will sit down and distribute the tasks and agree on the structure of the Kernal so we are all on the same page.
I think the first iteration of the system will likely boot straight to a monitor prompt. Later, you'll get the BASIC ROM, with (I think) some cool new tricks.
I haven't looked at how Supermon handles this yet, but I've already done the basic design work on this.
Right now, my plan is to use the BRK vector, which pushes the current PC and K onto the stack. The Monitor's entry code will then write all the other register values into a block of Direct Page RAM used for that specific purpose. Those locations will also be used to prime the registers when the user runs an ML routine with the SYS command or the Go command in the monitor.
Stef, how about I help port the Jammon. We'll need a Kernal and BASIC. Lets first get Kernal then we can get BASIC interpreter and ML Monitor. We can basically rob the routines from Plus/4 or C128 for entering the ML Monitor from BASIC and exiting Monitor for re-entry back into BASIC prompt.
Sounds good me Tom!
Please add anything that I might have forgotten... I created that list off the top of head.
Cheers!
S
Heh. Worst case, my head explodes and you see the alien monster pretending to be me.
I'll open up a Google Drive folder and add these entries to a spreadsheet. Then you can track people's progress as they go.