FUZIX.git
6 years agopropio2: and lo .. there was I/O
Alan Cox [Sat, 1 Sep 2018 21:10:05 +0000 (22:10 +0100)]
propio2: and lo .. there was I/O

6 years agoz80fixedbank: Split into two
Alan Cox [Sat, 1 Sep 2018 21:09:22 +0000 (22:09 +0100)]
z80fixedbank: Split into two

This allows someone to opt out of the default fork bank copier if they have
say a DMA engine or want to write their own fast platform specific code.

6 years agofsck: jump up and down on it to save memory
Alan Cox [Sat, 1 Sep 2018 20:56:21 +0000 (21:56 +0100)]
fsck: jump up and down on it to save memory

A 32K machine can now reasonable fsck a 16MB file system.

6 years agoinittab: remove the early boot shell
Alan Cox [Sat, 1 Sep 2018 00:06:15 +0000 (01:06 +0100)]
inittab: remove the early boot shell

6 years agosetdate: polish and add a manual page
Alan Cox [Fri, 31 Aug 2018 23:15:23 +0000 (00:15 +0100)]
setdate: polish and add a manual page

6 years agolocaltime: apply correct fix instead
Alan Cox [Fri, 31 Aug 2018 22:25:01 +0000 (23:25 +0100)]
localtime: apply correct fix instead

6 years agotzset: fix parser bugs
Alan Cox [Fri, 31 Aug 2018 22:22:33 +0000 (23:22 +0100)]
tzset: fix parser bugs

6 years agolocatime: we can shift day if we are close enough to midnight
Alan Cox [Fri, 31 Aug 2018 22:22:06 +0000 (23:22 +0100)]
locatime: we can shift day if we are close enough to midnight

6 years agocpuinfo: first cut at 6502 series info
Alan Cox [Fri, 31 Aug 2018 20:21:50 +0000 (21:21 +0100)]
cpuinfo: first cut at 6502 series info

6 years agoMakefile: updates
Alan Cox [Thu, 30 Aug 2018 22:11:01 +0000 (23:11 +0100)]
Makefile: updates

6 years agolibs/time: shuffle localtime/gmtime and the _r versions around
Alan Cox [Thu, 30 Aug 2018 22:01:59 +0000 (23:01 +0100)]
libs/time: shuffle localtime/gmtime and the _r versions around

This makes the code rather nicer

6 years agoLibrary: remove bogus difftime and add a proper one
Alan Cox [Thu, 30 Aug 2018 22:01:32 +0000 (23:01 +0100)]
Library: remove bogus difftime and add a proper one

6 years agolevee: needs a make clean for 6502 even if nothing else yet
Alan Cox [Thu, 30 Aug 2018 22:00:57 +0000 (23:00 +0100)]
levee: needs a make clean for 6502 even if nothing else yet

6 years agotime: put together the test local time support
Alan Cox [Thu, 30 Aug 2018 21:51:43 +0000 (22:51 +0100)]
time: put together the test local time support

We now have the support all present. Whether it's present and correct will
require some testing.

6 years agohdflba: tool I forgot to add
Alan Cox [Thu, 30 Aug 2018 21:49:45 +0000 (22:49 +0100)]
hdflba: tool I forgot to add

Makes an HDF emulated hard disk acquire LBA support

6 years agotools: decb tool
Alan Cox [Thu, 30 Aug 2018 21:47:59 +0000 (22:47 +0100)]
tools: decb tool

6 years agokernel.h: add Z280 CPU type
Alan Cox [Thu, 30 Aug 2018 21:44:35 +0000 (22:44 +0100)]
kernel.h: add Z280 CPU type

6 years agoversion: -rc2
Alan Cox [Thu, 30 Aug 2018 21:44:24 +0000 (22:44 +0100)]
version: -rc2

6 years agokernel: very initial Z280 sketch of a port
Alan Cox [Wed, 29 Aug 2018 21:27:25 +0000 (22:27 +0100)]
kernel: very initial Z280 sketch of a port

Doesn't really use Z280 features properly yet. Basically a Z80 port running
entirely supervisor mode and faking banking with the MMU.

6 years agosbcv2: tiny changes for clarity
Alan Cox [Wed, 29 Aug 2018 21:27:11 +0000 (22:27 +0100)]
sbcv2: tiny changes for clarity

6 years agotimer: Fix broke preprocessor rule
Alan Cox [Tue, 28 Aug 2018 16:02:39 +0000 (17:02 +0100)]
timer: Fix broke preprocessor rule

6 years agozetav2: fix a comment
Alan Cox [Tue, 28 Aug 2018 16:02:24 +0000 (17:02 +0100)]
zetav2: fix a comment

6 years agosbcv2: more documentation
Alan Cox [Tue, 28 Aug 2018 16:01:59 +0000 (17:01 +0100)]
sbcv2: more documentation

6 years agosbcv2: Update link file after changes
Alan Cox [Tue, 28 Aug 2018 16:01:43 +0000 (17:01 +0100)]
sbcv2: Update link file after changes

6 years agosbcv2: update Makefile
Alan Cox [Tue, 28 Aug 2018 16:01:12 +0000 (17:01 +0100)]
sbcv2: update Makefile

6 years agopropiov2: note a limitation
Alan Cox [Tue, 28 Aug 2018 12:50:11 +0000 (13:50 +0100)]
propiov2: note a limitation

6 years agosbc2: comment platform_ide.h for completeness
Alan Cox [Tue, 28 Aug 2018 12:49:54 +0000 (13:49 +0100)]
sbc2: comment platform_ide.h for completeness

6 years agosbcv2: comment extensively and move driver stuff that should be shared out
Alan Cox [Tue, 28 Aug 2018 12:47:24 +0000 (13:47 +0100)]
sbcv2: comment extensively and move driver stuff that should be shared out

We now have something approaching a clean reference port, and a long list of
cleanups to do the other trees !

6 years agoppide: Make the N8VEM/Retrobrew file shareable and also fix some bugs
Alan Cox [Tue, 28 Aug 2018 12:45:39 +0000 (13:45 +0100)]
ppide: Make the N8VEM/Retrobrew file shareable and also fix some bugs

6 years agosbcv2: add lots of comments as this is meant to be a porting reference
Alan Cox [Mon, 27 Aug 2018 23:22:06 +0000 (00:22 +0100)]
sbcv2: add lots of comments as this is meant to be a porting reference

6 years agosbcv2: clarify why we have turned off HD FD
Alan Cox [Sun, 26 Aug 2018 15:10:19 +0000 (16:10 +0100)]
sbcv2: clarify why we have turned off HD FD

6 years agosbcv2: Use the sketched out 9266 FDC driver
Alan Cox [Sun, 26 Aug 2018 15:08:43 +0000 (16:08 +0100)]
sbcv2: Use the sketched out 9266 FDC driver

6 years ago9266 fdc driver for RBC style systems
Alan Cox [Sun, 26 Aug 2018 15:07:25 +0000 (16:07 +0100)]
9266 fdc driver for RBC style systems

Could do with the data loops optimizing a bit more. They should be good for
high density at 6MHz but we ought to be able to do HD at 4Mhz with some loop
unrolling and repeat check tricks.

6 years agosbcv2: First cut at Zeta floppy support
Alan Cox [Sun, 26 Aug 2018 13:06:07 +0000 (14:06 +0100)]
sbcv2: First cut at Zeta floppy support

6 years agodevfd: Allow for hardware without CCR or HD.
Alan Cox [Sun, 26 Aug 2018 13:04:17 +0000 (14:04 +0100)]
devfd: Allow for hardware without CCR or HD.

Minimal changes. This can all get properly addressed when we tackle unifying the
floppy driver support

6 years agosbcv2: Change default nomenclature, add explanation of file system building
Alan Cox [Sun, 26 Aug 2018 11:21:46 +0000 (12:21 +0100)]
sbcv2: Change default nomenclature, add explanation of file system building

6 years agosbcv2: Add support for timer hack mode (DSR wired to a 10Hz clock)
Alan Cox [Sat, 25 Aug 2018 20:57:07 +0000 (21:57 +0100)]
sbcv2: Add support for timer hack mode (DSR wired to a 10Hz clock)

Specify timermsr on the command line for this and the kernel will instead of
polling the timers look for DSR signal events on the UART, effectively using
the UART as an interrupt controller.

Still need to support routing ECB interrupts this way.

6 years agosbcv2: adjust the UDATA size and stash in the asm side
Alan Cox [Sat, 25 Aug 2018 20:56:38 +0000 (21:56 +0100)]
sbcv2: adjust the UDATA size and stash in the asm side

6 years agodevtty: Various uart fixes for baud etc
Alan Cox [Sat, 25 Aug 2018 20:56:09 +0000 (21:56 +0100)]
devtty: Various uart fixes for baud etc

6 years agosbcv2: move the udata stash up 256 bytes
Alan Cox [Sat, 25 Aug 2018 20:55:41 +0000 (21:55 +0100)]
sbcv2: move the udata stash up 256 bytes

We don't need to keep a copy of the istack

6 years agon8vem4/p112: Add in the full RTC support
Alan Cox [Sat, 25 Aug 2018 18:37:14 +0000 (19:37 +0100)]
n8vem4/p112: Add in the full RTC support

Again now it's in common code it's just a define.

6 years agozetav2: Turn on full rtc support
Alan Cox [Sat, 25 Aug 2018 18:26:59 +0000 (19:26 +0100)]
zetav2: Turn on full rtc support

Now it's in the common driver code it's a matter of a define

6 years agoMakefile: add N8VEM v2 to the list
Alan Cox [Sat, 25 Aug 2018 18:21:39 +0000 (19:21 +0100)]
Makefile: add N8VEM v2 to the list

6 years agods1302: Move the rtc_read/write helpers to the common code
Alan Cox [Sat, 25 Aug 2018 18:19:42 +0000 (19:19 +0100)]
ds1302: Move the rtc_read/write helpers to the common code

6 years agosetdate: Fix bugs in BCD mode
Alan Cox [Sat, 25 Aug 2018 18:16:08 +0000 (19:16 +0100)]
setdate: Fix bugs in BCD mode

With these fixed it now works correctly against the DS1302

6 years agosbcv2: default to 115200 baud
Alan Cox [Sat, 25 Aug 2018 18:15:38 +0000 (19:15 +0100)]
sbcv2: default to 115200 baud

Even better would be to see what ROMWBW set and use it perhaps.

6 years agosbcv2: remove boot time debug
Alan Cox [Sat, 25 Aug 2018 18:15:18 +0000 (19:15 +0100)]
sbcv2: remove boot time debug

6 years agosbcv2: More UART features
Alan Cox [Sat, 25 Aug 2018 18:14:28 +0000 (19:14 +0100)]
sbcv2: More UART features

In particular set up the port properly rather than relying on ROMWBW. Also
turn on the interrupts.

6 years agosbcv2: initial basic PropIO probe
Alan Cox [Sat, 25 Aug 2018 18:13:59 +0000 (19:13 +0100)]
sbcv2: initial basic PropIO probe

Use the uart console if we have no PropIO, otherwise default to the PropIO

6 years agokernel: don't make the console block on carrier
Alan Cox [Sat, 25 Aug 2018 18:08:07 +0000 (19:08 +0100)]
kernel: don't make the console block on carrier

It's really annoying if you've not got it wired and you can't work out why
it hangs on boot!

6 years agoplatform-sbcv2: N8VEM Mark 2
Alan Cox [Sat, 25 Aug 2018 14:21:53 +0000 (15:21 +0100)]
platform-sbcv2: N8VEM Mark 2

A nice simple tickless platform to use as a reference.

Supports the PPIDE and PropIOv2. Currently only works with PropIOv2 present
until I fix a bit of probing logic.

6 years agods1302: update header
Alan Cox [Sat, 25 Aug 2018 14:20:56 +0000 (15:20 +0100)]
ds1302: update header

Export more bits people need outside of the driver

6 years agokernel: Document the new tickless kernel
Alan Cox [Sat, 25 Aug 2018 14:19:13 +0000 (15:19 +0100)]
kernel: Document the new tickless kernel

No it's not like the Linux one - this is for hardware with no timer tick!

6 years agosam: Further fixing and cleanups
Alan Cox [Sat, 25 Aug 2018 14:16:30 +0000 (15:16 +0100)]
sam: Further fixing and cleanups

We now start running init but blow up weirdly when opening the inittab

6 years agotimer: last bits needed for a platform without a timer interrupt
Alan Cox [Sat, 25 Aug 2018 14:16:04 +0000 (15:16 +0100)]
timer: last bits needed for a platform without a timer interrupt

6 years agoubee: remove duplicate include
Alan Cox [Sat, 25 Aug 2018 14:15:43 +0000 (15:15 +0100)]
ubee: remove duplicate include

6 years agods1302: note some code should be shared better
Alan Cox [Sat, 25 Aug 2018 14:14:59 +0000 (15:14 +0100)]
ds1302: note some code should be shared better

6 years agoubee: fix bogus copied comment
Alan Cox [Sat, 25 Aug 2018 14:14:37 +0000 (15:14 +0100)]
ubee: fix bogus copied comment

6 years agoz80-thunked: More assorted fixes
Alan Cox [Sat, 25 Aug 2018 14:13:57 +0000 (15:13 +0100)]
z80-thunked: More assorted fixes

We are now at the point some syscalls sort of work

6 years agotrs80/genie: Fix rtc handling
Alan Cox [Sat, 25 Aug 2018 14:13:07 +0000 (15:13 +0100)]
trs80/genie: Fix rtc handling

It's not active yet but fix the bug I noticed

6 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Sat, 25 Aug 2018 13:07:19 +0000 (14:07 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

6 years agoMerge pull request #655 from beretta42/cave
EtchedPixels [Sat, 25 Aug 2018 13:05:32 +0000 (14:05 +0100)]
Merge pull request #655 from beretta42/cave

cave: install database to where advent expects it

6 years agocave: install database to where advent expects it
Brett Gordon [Fri, 24 Aug 2018 04:22:53 +0000 (00:22 -0400)]
cave: install database to where advent expects it

6 years agokernel Introduce tickless kernel support
Alan Cox [Wed, 22 Aug 2018 10:24:51 +0000 (11:24 +0100)]
kernel Introduce tickless kernel support

This isn't the same as a Linux tickless kernel. Rather it's support (such as
there can be) for systems that have interrupts for serial but no actual
timer tick.

6 years agosyscall_exec16: Rework close_on_exec a bit to fix SDCC crap code generation
Alan Cox [Wed, 22 Aug 2018 10:24:07 +0000 (11:24 +0100)]
syscall_exec16: Rework close_on_exec a bit to fix SDCC crap code generation

6 years agousermem-std-thunked: add a comment
Alan Cox [Wed, 22 Aug 2018 10:23:50 +0000 (11:23 +0100)]
usermem-std-thunked: add a comment

6 years agosam: optimize kernel return path a tiny bit
Alan Cox [Mon, 20 Aug 2018 23:05:09 +0000 (00:05 +0100)]
sam: optimize kernel return path a tiny bit

6 years agosam: add a low 512 byte buffer ready for ramdisk support
Alan Cox [Mon, 20 Aug 2018 23:04:13 +0000 (00:04 +0100)]
sam: add a low 512 byte buffer ready for ramdisk support

6 years agoatom: remove dead comment
Alan Cox [Mon, 20 Aug 2018 23:03:56 +0000 (00:03 +0100)]
atom: remove dead comment

6 years agoz80thunked: Fix some more bugs
Alan Cox [Mon, 20 Aug 2018 23:03:00 +0000 (00:03 +0100)]
z80thunked: Fix some more bugs

- Interrupt return to kernel must restore the saved low page or an interrupt
  during a user copy explodes
- System call and interrupt entry routines must be high

6 years agobank32k: Handle high/low stubs
Alan Cox [Mon, 20 Aug 2018 23:02:16 +0000 (00:02 +0100)]
bank32k: Handle high/low stubs

In 32K/32K mode we have stubs high and low so program_vectors is needed
if we shrink space too

6 years agoz80-thunked: doexec needs to be in high space
Alan Cox [Sun, 19 Aug 2018 22:13:17 +0000 (23:13 +0100)]
z80-thunked: doexec needs to be in high space

6 years agousermem: Fix the thunked z80 uput and some other bugs
Alan Cox [Sun, 19 Aug 2018 22:12:36 +0000 (23:12 +0100)]
usermem: Fix the thunked z80 uput and some other bugs

This gets us to the point we are creating the user bits and reading them
sufficiently to begin loading /init

6 years agosam: video and stub fixes
Alan Cox [Sun, 19 Aug 2018 20:12:14 +0000 (21:12 +0100)]
sam: video and stub fixes

Rearrange our logic a bit so we can copy the stubs where we need them
Copy stubs into the top of the video 32K so we can in theory at some point
re-arrange the video logic and maps to keep interrupts on by using a private
low stack and high mapping video.
Fix the last character on a line being corrupted
Add initial (not used) colour support for the console

6 years agosam: more work on the ATA disk interface
Alan Cox [Sun, 19 Aug 2018 14:19:26 +0000 (15:19 +0100)]
sam: more work on the ATA disk interface

We can now detect Atom and Atom Lite, as well as select the right 8 or 16bit
handling for them. The 16bit handlers are hairy because we can be doing an
I/O that crosses a page boundary. This needs a bit of thought to keep it
efficient. Atom Lite on the other hand appears to be trivial.

6 years agodevide: Add the ability to have a mix of 8 and 16bit interfaces
Alan Cox [Sun, 19 Aug 2018 14:18:51 +0000 (15:18 +0100)]
devide: Add the ability to have a mix of 8 and 16bit interfaces

The SAM we need to do this and RC2014 will also eventually need it.

6 years agosam: update the keyboard logic and tables
Alan Cox [Sun, 19 Aug 2018 00:29:35 +0000 (01:29 +0100)]
sam: update the keyboard logic and tables

With this done it seems the keyboard is working properly

6 years agosam: more work on the IDE layer
Alan Cox [Sun, 19 Aug 2018 00:28:32 +0000 (01:28 +0100)]
sam: more work on the IDE layer

I think it probably works for kernel now (user is broken and the split word
case is nasty so will need some thinking).

Need to update to the 1.1 alpha emulator as SimCoupe 1.0 can't do LBA and
has other ATA bugs

6 years agokeycode: add another code
Alan Cox [Sun, 19 Aug 2018 00:27:48 +0000 (01:27 +0100)]
keycode: add another code

6 years agodevide: allow for 16bit ports
Alan Cox [Sun, 19 Aug 2018 00:27:26 +0000 (01:27 +0100)]
devide: allow for 16bit ports

We don't need it yet but add it ready

6 years agosam: further keymap work
Alan Cox [Sat, 18 Aug 2018 21:57:20 +0000 (22:57 +0100)]
sam: further keymap work

6 years agokernel: add KEY_COPYRIGHT and KEY_EDIT
Alan Cox [Sat, 18 Aug 2018 21:57:03 +0000 (22:57 +0100)]
kernel: add KEY_COPYRIGHT and KEY_EDIT

6 years agousermem-z80-thunked: Fix offsets for 32K/32K mode
Alan Cox [Sat, 18 Aug 2018 19:40:55 +0000 (20:40 +0100)]
usermem-z80-thunked: Fix offsets for 32K/32K mode

With this fixed we can attempt (and fail) to mount a file system

6 years agosam: base keyboard map
Alan Cox [Sat, 18 Aug 2018 19:40:22 +0000 (20:40 +0100)]
sam: base keyboard map

Still need to do all the shift stuff

6 years agotty: note an optimization area
Alan Cox [Sat, 18 Aug 2018 19:34:16 +0000 (20:34 +0100)]
tty: note an optimization area

6 years agosam: fix keyboard scan logic
Alan Cox [Sat, 18 Aug 2018 19:16:50 +0000 (20:16 +0100)]
sam: fix keyboard scan logic

With this fixed we now get key events. We don't get the right keys because the
keyboard map isn't yet correct.

6 years agosam: Fix scrolling
Alan Cox [Sat, 18 Aug 2018 19:16:37 +0000 (20:16 +0100)]
sam: Fix scrolling

6 years agosam: correct check for timer interrupt
Alan Cox [Sat, 18 Aug 2018 19:15:54 +0000 (20:15 +0100)]
sam: correct check for timer interrupt

6 years agosam: call the keyboard scanner
Alan Cox [Sat, 18 Aug 2018 19:15:36 +0000 (20:15 +0100)]
sam: call the keyboard scanner

6 years agosam: turn off debug stop loop
Alan Cox [Sat, 18 Aug 2018 19:15:20 +0000 (20:15 +0100)]
sam: turn off debug stop loop

6 years agosam: further debugging work
Alan Cox [Sat, 18 Aug 2018 15:18:05 +0000 (16:18 +0100)]
sam: further debugging work

We now get to the bootdev prompt with interrupts running. No keyboard input
yet but that's next to investigate.

Note that there's a stop after loading so if you are using simcoupe you need
to hit shift-F10, ctrl-downarrow escape to set it loose (or set up debugger
stuff first as needed)

6 years agofontexpand: fix the bug
Alan Cox [Sat, 18 Aug 2018 00:01:04 +0000 (01:01 +0100)]
fontexpand: fix the bug

Now the fonts look right

6 years agosam: note bug in program_vectors
Alan Cox [Sat, 18 Aug 2018 00:00:53 +0000 (01:00 +0100)]
sam: note bug in program_vectors

6 years agofontexpand: fix endian dependancy
Alan Cox [Fri, 17 Aug 2018 23:52:44 +0000 (00:52 +0100)]
fontexpand: fix endian dependancy

I'm still not sure we have it all correct yet

6 years agotools/binman: allow for a kernel with low and high pages
Alan Cox [Fri, 17 Aug 2018 23:52:05 +0000 (00:52 +0100)]
tools/binman: allow for a kernel with low and high pages

We don't pack such images (yet anyway). We could look at it eventually

6 years agosam: restructure loading a bit fix some display and other bugs
Alan Cox [Fri, 17 Aug 2018 23:51:14 +0000 (00:51 +0100)]
sam: restructure loading a bit fix some display and other bugs

We now get to the point we start trying to boot, and blow up after the
RAM sizing message. I suspect this is program_vectors exploding.

6 years agosam: don't link the font
Alan Cox [Fri, 17 Aug 2018 23:51:04 +0000 (00:51 +0100)]
sam: don't link the font

6 years agosam: Get to the point we enter the kernel
Alan Cox [Fri, 17 Aug 2018 22:23:46 +0000 (23:23 +0100)]
sam: Get to the point we enter the kernel

Fix for binman to allow for our page below code
Assorted logic fixes to the boot and setup code
Make crt0 map the high kernel bank

Video is still broken and we die early in setup but we made it into C

6 years agosam: build bootable image
Alan Cox [Fri, 17 Aug 2018 12:17:57 +0000 (13:17 +0100)]
sam: build bootable image

At least it runs the boot code, not yet useful beyond that step

6 years agoz80: build raw2mgt for Z80 kernel builds
Alan Cox [Fri, 17 Aug 2018 12:17:33 +0000 (13:17 +0100)]
z80: build raw2mgt for Z80 kernel builds