Page 1 of 1

LUnix port

Posted: Thu Sep 21, 2006 10:45 pm
by mmu_man
Hi there, good to see the ORIC scene is still active.
I didn't use my Atmos for a while, switched to PC before getting the net, but got some nostalgia...

I started porting LUnix NG sunday, and got to the point where the kernel wants to load the shell.

Next step will require disk support, but due to the multiple hw and fs around, and the fact that the only disk support in LUnix is for a higher level C64 interface I'll have to design this from 0.


Other screenshots and test bins here:

For now it must be loaded from tape, must write something to put them in a floppy image.
I managed to copied it to a sedoric floppy in the latest zip, just call LUNIX.COM, but it seems to not always work ... and just locks up on telestrat (actually from the debugger it seems the code is running but it doesn't display anything), which is a shame as it would be the best machine to use it (RS232, 80 col...). I moved the loader from $500 to $1000 but didn't help (also tried to HIMEM#0FF0 before; the kernel itself starts at $2000)

A Jasmin or Microdisc is still needed though to enable overlay ram, else it'll complain and reboot. Requires 48K, well, actually 64K.
Current binary also checks for 2nd VIA to select bank 0.

At least console and keyboard now mostly work, just some scolling issue.


I hope I'll have something demoable for Alchimie 6, in case anyone is in France in october feel free to have a go. I know they had some ORIC demos in the past.

Posted: Thu Sep 21, 2006 11:37 pm
by mmu_man
I just zipped up my current source and uploaded it.
Not much to see yet though.
The code in kernel/oric/reset.s and kernel/oric/reboot.s to detect the drive to disable the ROM and get the overlay, and get back the ROM to reboot might be of some interest to others.
I spent some time getting the keyboard to work... current code is probably not optimal. It only checks for one column per IRQ, so produces a keycode once every 8 IRQs. sometimes it doesn't pick a key but it works enough to be usable.

Posted: Fri Sep 22, 2006 9:15 am
by Chema
This is a very interesting project!

A port of some kind of mini-linux was on the original projects page many years ago and, to my knowledge, nobody took it (can't imagine why :) )

Anyway I allways found it challenging and now that you have started with it, I will follow your progress with a lot of interest!

Fabrice and I had to implement a virtual memory system for our Infocom interpreter (emulating a machine with 128K) with raw disk access (no filesystem) because we eat up all the overlay ram, and that gave me an idea of the complexity of just one very small part of such a project...

Keep up the good work! Maybe in the end you can integrate the TCP/IP stack I think Fabrice developed... :)

Posted: Fri Sep 22, 2006 11:02 am
by mmu_man

The console now scrolls correctly.

LUnix already has its own TCP/IP stack, including PPP support though.

Posted: Mon Sep 25, 2006 2:22 am
by mmu_man
I wrote a simple vtapefs to transfer files from euphoric in a simple way.
I switch the ROM back, put the file name at $27f or so and call the k7 funcs and let euphoric trap those and return bytes from the file.
Should be able to run the shell by

Code: Select all

But it seems the loader doesn't like the shell binary. it loads the first 256 bytes then locks up or so...

I added some code to expand the boot prompt for testing...
k was to test calling the ROM GETSYN and RDBYTE (shouldn't work as lunix takes over page 0, but in euphoric the code is not actually run).
m dumps the memory allocation bitmap

sources updated at the same location.

I'd like to port Contiki's ui on top of that if it works... but it seems C support is not really there yet. the calling convention is not really consistent.

It'd be funny to run an IRC client there with AY music in the background though =) (unlike contiki it's preemptive so it's more likely to be possible)