FUZIX.git
5 years agoplus3,fdc765: don't do a motor wait if the motor is running
Alan Cox [Fri, 30 Nov 2018 22:38:59 +0000 (22:38 +0000)]
plus3,fdc765: don't do a motor wait if the motor is running

5 years agozxdiv: we now handle 2 SD cards so fix config
Alan Cox [Fri, 30 Nov 2018 22:38:47 +0000 (22:38 +0000)]
zxdiv: we now handle 2 SD cards so fix config

5 years agoamstradnc: fix bug in devfd reporting
Alan Cox [Fri, 30 Nov 2018 22:38:30 +0000 (22:38 +0000)]
amstradnc: fix bug in devfd reporting

5 years agozx+3: Quic pass over the code to fix the obvious bugs
Alan Cox [Fri, 30 Nov 2018 22:33:28 +0000 (22:33 +0000)]
zx+3: Quic pass over the code to fix the obvious bugs

With that done we boot to a shell but the floppy driver doesn't appear to want
to be friends yet.

5 years agoraw2dsk: make a raw image into a 40 track Amstrad / Spectrum image
Alan Cox [Fri, 30 Nov 2018 22:31:22 +0000 (22:31 +0000)]
raw2dsk: make a raw image into a 40 track Amstrad / Spectrum image

5 years agozxvideo: for the unbanked version also support video map/unmap
Alan Cox [Fri, 30 Nov 2018 22:30:50 +0000 (22:30 +0000)]
zxvideo: for the unbanked version also support video map/unmap

5 years agozxmmc: much like the divmmc but different ports
Alan Cox [Fri, 30 Nov 2018 22:28:33 +0000 (22:28 +0000)]
zxmmc: much like the divmmc but different ports

5 years agodivmmc: fix silly bug
Alan Cox [Fri, 30 Nov 2018 22:28:13 +0000 (22:28 +0000)]
divmmc: fix silly bug

5 years agozx+3: ZX spectrum plus 3 port based on the TC2068 and 128K work
Alan Cox [Fri, 30 Nov 2018 00:36:59 +0000 (00:36 +0000)]
zx+3: ZX spectrum plus 3 port based on the TC2068 and 128K work

Not yet working

5 years agoplus3: remove old dead plus3 port work
Alan Cox [Fri, 30 Nov 2018 00:36:45 +0000 (00:36 +0000)]
plus3: remove old dead plus3 port work

5 years agodevfdc765: extract core of NC200 driver for general use
Alan Cox [Fri, 30 Nov 2018 00:31:21 +0000 (00:31 +0000)]
devfdc765: extract core of NC200 driver for general use

5 years agotc2068: commit video support
Alan Cox [Fri, 30 Nov 2018 00:30:38 +0000 (00:30 +0000)]
tc2068: commit video support

5 years agoplus3boot: simple tool to checksum a plus3 boot block and make it bootable
Alan Cox [Fri, 30 Nov 2018 00:29:54 +0000 (00:29 +0000)]
plus3boot: simple tool to checksum a plus3 boot block and make it bootable

5 years agozxdiv: split video.s into video and video-banked
Alan Cox [Wed, 28 Nov 2018 22:35:22 +0000 (22:35 +0000)]
zxdiv: split video.s into video and video-banked

The existing one is banked, but we will want an unbanked variant of it for
some platforms.

5 years agoMakefile: add more ports to the general list
Alan Cox [Wed, 28 Nov 2018 22:31:43 +0000 (22:31 +0000)]
Makefile: add more ports to the general list

5 years agozxkeyboard: Fix autorepeat broken by previous optimization
Alan Cox [Wed, 28 Nov 2018 22:27:18 +0000 (22:27 +0000)]
zxkeyboard: Fix autorepeat broken by previous optimization

5 years agotc2068: turn on dynamic buffers
Alan Cox [Wed, 28 Nov 2018 22:25:50 +0000 (22:25 +0000)]
tc2068: turn on dynamic buffers

We might need to tweak this a bit - we don't really need anything like the
number we have room for.

5 years agoadv/myst: fix build error
Alan Cox [Wed, 28 Nov 2018 22:25:29 +0000 (22:25 +0000)]
adv/myst: fix build error

5 years agokernel: add an 4 pixel wide 8 pixel high font
Alan Cox [Wed, 28 Nov 2018 14:13:28 +0000 (14:13 +0000)]
kernel: add an 4 pixel wide 8 pixel high font

Like 4x6 it's got the bytes doubled for easy rendering.

5 years agotc2068: use 64 column mode
Alan Cox [Tue, 27 Nov 2018 20:53:17 +0000 (20:53 +0000)]
tc2068: use 64 column mode

5 years agokenrel: add a new graphics type
Alan Cox [Tue, 27 Nov 2018 20:52:21 +0000 (20:52 +0000)]
kenrel: add a new graphics type

5 years agolibrary: add a graphics format number
Alan Cox [Tue, 27 Nov 2018 20:51:27 +0000 (20:51 +0000)]
library: add a graphics format number

5 years agostartrek: page correctly
Alan Cox [Tue, 27 Nov 2018 20:51:12 +0000 (20:51 +0000)]
startrek: page correctly

5 years agottt: fix missing fflush
Alan Cox [Tue, 27 Nov 2018 20:51:03 +0000 (20:51 +0000)]
ttt: fix missing fflush

5 years agoadventures: add missing termios include to fix tty sizing bug
Alan Cox [Tue, 27 Nov 2018 20:50:27 +0000 (20:50 +0000)]
adventures: add missing termios include to fix tty sizing bug

5 years agotc2068: README update
Alan Cox [Tue, 27 Nov 2018 18:57:33 +0000 (18:57 +0000)]
tc2068: README update

5 years agocpuinfo: add a TODO
Alan Cox [Tue, 27 Nov 2018 12:52:38 +0000 (12:52 +0000)]
cpuinfo: add a TODO

5 years agotc2068: initial upload of the TC2068 support
Alan Cox [Tue, 27 Nov 2018 12:51:23 +0000 (12:51 +0000)]
tc2068: initial upload of the TC2068 support

This is just an initial cut - it's got lots that needs fixing (like Timex
video mode support) and it currently has some memory corruption bugs that need
nailing.

5 years agoz80: build makedck
Alan Cox [Tue, 27 Nov 2018 12:49:36 +0000 (12:49 +0000)]
z80: build makedck

5 years agomakedck: Make a Timex cartridge dock for the kernel image
Alan Cox [Tue, 27 Nov 2018 12:49:04 +0000 (12:49 +0000)]
makedck: Make a Timex cartridge dock for the kernel image

5 years agozxdiv: move more stuff around a bit
Alan Cox [Tue, 27 Nov 2018 12:48:33 +0000 (12:48 +0000)]
zxdiv: move more stuff around a bit

5 years agozxdiv: devinput into dev/zx
Alan Cox [Tue, 27 Nov 2018 12:48:03 +0000 (12:48 +0000)]
zxdiv: devinput into dev/zx

5 years agozxdiv: split more stuff out into dev/zx/
Alan Cox [Mon, 26 Nov 2018 13:55:03 +0000 (13:55 +0000)]
zxdiv: split more stuff out into dev/zx/

Share all the video and tricks code we can

5 years agozxdiv: move devinput into dev/zx
Alan Cox [Mon, 26 Nov 2018 13:45:56 +0000 (13:45 +0000)]
zxdiv: move devinput into dev/zx

Again these devices are shared across the clones

5 years agozxdiv: add forgotten devinput files, add discard hooks for setting input
Alan Cox [Mon, 26 Nov 2018 13:39:53 +0000 (13:39 +0000)]
zxdiv: add forgotten devinput files, add discard hooks for setting input

5 years agozxdiv: split out keyboard driver into dev/zx/
Alan Cox [Mon, 26 Nov 2018 13:22:41 +0000 (13:22 +0000)]
zxdiv: split out keyboard driver into dev/zx/

The clones mostly use the same keyboard mechanics so make it available to
any other future ports

5 years agozxdiv: add underline to tty flags
Alan Cox [Mon, 26 Nov 2018 12:33:19 +0000 (12:33 +0000)]
zxdiv: add underline to tty flags

5 years agozxvideo: clean up character printing a bit
Alan Cox [Mon, 26 Nov 2018 12:32:53 +0000 (12:32 +0000)]
zxvideo: clean up character printing a bit

5 years agozxdiv: align font so we can optimize the print routines
Alan Cox [Mon, 26 Nov 2018 12:19:47 +0000 (12:19 +0000)]
zxdiv: align font so we can optimize the print routines

5 years agozxdiv,tty: optimize interrupt path
Alan Cox [Mon, 26 Nov 2018 12:13:22 +0000 (12:13 +0000)]
zxdiv,tty: optimize interrupt path

This saves us a lot of clocks of pointless processing if no keyboard line
changed state.

5 years agozxdiv: update README
Alan Cox [Mon, 26 Nov 2018 12:13:13 +0000 (12:13 +0000)]
zxdiv: update README

5 years agozxdiv: move the MMC and IDE drivers into dev/zx
Alan Cox [Mon, 26 Nov 2018 12:02:54 +0000 (12:02 +0000)]
zxdiv: move the MMC and IDE drivers into dev/zx

We can share a lot of ZX variant stuff so plan accordingly

5 years agodivmmc: add swap device, second port support and stripy I/O
Alan Cox [Mon, 26 Nov 2018 11:53:36 +0000 (11:53 +0000)]
divmmc: add swap device, second port support and stripy I/O

5 years agozxdiv: enable ability to set border colour in DivIDE
Alan Cox [Mon, 26 Nov 2018 11:47:05 +0000 (11:47 +0000)]
zxdiv: enable ability to set border colour in DivIDE

5 years agozxdiv: colour attribute support
Alan Cox [Sun, 25 Nov 2018 22:07:37 +0000 (22:07 +0000)]
zxdiv: colour attribute support

How to handle the border - interesting question

5 years agodivide: do pretty stripes for I/O activity
Alan Cox [Sun, 25 Nov 2018 22:07:11 +0000 (22:07 +0000)]
divide: do pretty stripes for I/O activity

It is a spectrum after all

5 years agozxdiv: fix control (both shift) mode
Alan Cox [Sun, 25 Nov 2018 21:12:56 +0000 (21:12 +0000)]
zxdiv: fix control (both shift) mode

5 years agozxvideo: remove broken and somewhat pointless beep routine
Alan Cox [Sun, 25 Nov 2018 21:11:52 +0000 (21:11 +0000)]
zxvideo: remove broken and somewhat pointless beep routine

5 years agozxdiv: Clean up memory arrangement a bit
Alan Cox [Sun, 25 Nov 2018 20:37:20 +0000 (20:37 +0000)]
zxdiv: Clean up memory arrangement a bit

5 years agozxdiv: turn on input layer and joystick/mouse logic
Alan Cox [Sun, 25 Nov 2018 20:07:19 +0000 (20:07 +0000)]
zxdiv: turn on input layer and joystick/mouse logic

5 years agoinput: add wheel mice
Alan Cox [Sun, 25 Nov 2018 20:06:40 +0000 (20:06 +0000)]
input: add wheel mice

Yes there really are wheel capable adapters for 8bit micros

5 years agosyscall_proc: remove surplus semi-colon
Alan Cox [Sun, 25 Nov 2018 18:42:33 +0000 (18:42 +0000)]
syscall_proc: remove surplus semi-colon

5 years agozxdiv: Add graphic ioctls and fix swapmap_add misuse
Alan Cox [Sun, 25 Nov 2018 18:41:33 +0000 (18:41 +0000)]
zxdiv: Add graphic ioctls and fix swapmap_add misuse

5 years agosc108: another swapmap_add abuser
Alan Cox [Sun, 25 Nov 2018 18:41:03 +0000 (18:41 +0000)]
sc108: another swapmap_add abuser

5 years agoswap: and some more mis-users
Alan Cox [Sun, 25 Nov 2018 18:40:47 +0000 (18:40 +0000)]
swap: and some more mis-users

5 years agoswap: Fix ports using swapmap_add where swapmap_init should be used
Alan Cox [Sun, 25 Nov 2018 18:40:10 +0000 (18:40 +0000)]
swap: Fix ports using swapmap_add where swapmap_init should be used

Fixes 'free' command reporting

5 years agozxdiv: move CODE3 down now the screen has moved
Alan Cox [Sun, 25 Nov 2018 17:23:57 +0000 (17:23 +0000)]
zxdiv: move CODE3 down now the screen has moved

5 years agozxdiv: Update README
Alan Cox [Sun, 25 Nov 2018 17:23:38 +0000 (17:23 +0000)]
zxdiv: Update README

5 years agozxdiv: re-arrange video memory to 0x4000
Alan Cox [Sun, 25 Nov 2018 17:17:44 +0000 (17:17 +0000)]
zxdiv: re-arrange video memory to 0x4000

We now have the video memory mappable.

Extract the bank bits from hardcoding so we can later share code better
between related ZX ports

5 years agozx128: Move buffers to 0x6000 and dynamically reclaim space
Alan Cox [Sun, 25 Nov 2018 16:10:59 +0000 (16:10 +0000)]
zx128: Move buffers to 0x6000 and dynamically reclaim space

This gets us dynamic buffers as we want and also frees up the space between
0x4000 and 0x5FFF so that we can use the ZX Spectrum classic screen mapping
and leaves a bit of space in case we need to use any ROM hooks that want to
use system variables and BASIC hooks.

We are a bit tight between 0x2000 and 0x3FFF but have enough space for now.

Freeing up the space means we can next move the screen down. That makes the
screen potentially directly addressible from user space which is a huge win.

It also means we'll have a load of free space in CODE3 which is what we want
as well as probably room to migrate the font about a bit

5 years agozxdiv: update README
Alan Cox [Sun, 25 Nov 2018 15:33:23 +0000 (15:33 +0000)]
zxdiv: update README

5 years agocpuinfo: add a test for broken emulation
Alan Cox [Sun, 25 Nov 2018 15:33:06 +0000 (15:33 +0000)]
cpuinfo: add a test for broken emulation

5 years agozxdiv: workaround for what appears to be a bug in Fuse
Alan Cox [Sun, 25 Nov 2018 15:24:30 +0000 (15:24 +0000)]
zxdiv: workaround for what appears to be a bug in Fuse

The fuse emulator unpages the DivIDE ROM if you execute an instruction at
0x700. That appears to be wrong. The Interface 1 does this but there is no
evidence that any variant of the DivIDE does.

Anyway we can work around it easily enough - we just stuff data and constants
over that address range.

5 years agozxdiv: update the bank switching code to save the kernel bank
Alan Cox [Sun, 25 Nov 2018 15:23:48 +0000 (15:23 +0000)]
zxdiv: update the bank switching code to save the kernel bank

Otherwise we end up returning to the right address but with the wrong kernel
page mapped.

5 years agozxdiv: update README
Alan Cox [Sun, 25 Nov 2018 02:25:17 +0000 (02:25 +0000)]
zxdiv: update README

5 years agozxdiv: turn on direct I/O
Alan Cox [Sun, 25 Nov 2018 01:59:22 +0000 (01:59 +0000)]
zxdiv: turn on direct I/O

5 years agozxdiv: halt on idle
Alan Cox [Sun, 25 Nov 2018 01:59:10 +0000 (01:59 +0000)]
zxdiv: halt on idle

5 years agozxdiv: add a missing ifdef DEBUG
Alan Cox [Sun, 25 Nov 2018 01:46:37 +0000 (01:46 +0000)]
zxdiv: add a missing ifdef DEBUG

5 years agoswap: fix case where we ended up self swapping when it's forbidden
Alan Cox [Sun, 25 Nov 2018 01:41:20 +0000 (01:41 +0000)]
swap: fix case where we ended up self swapping when it's forbidden

If the only other processes you have in memory are running, and you have
gone to sleep thus triggering your swapout then we would try and swap out the
running process, which isn't supported (because we avoid the cost of a swapper
process we pay that small cost here).

5 years agodivide: fix crash on write
Alan Cox [Sun, 25 Nov 2018 00:02:41 +0000 (00:02 +0000)]
divide: fix crash on write

Missed a push af

5 years agozxdiv: set interrupt flags properly around swap
Alan Cox [Sun, 25 Nov 2018 00:02:04 +0000 (00:02 +0000)]
zxdiv: set interrupt flags properly around swap

We don't turn interrupts on for swap yet as we need to tidy up other areas
like the page duplicator

5 years agozxdiv: turn on SWAP
Alan Cox [Thu, 22 Nov 2018 14:48:51 +0000 (14:48 +0000)]
zxdiv: turn on SWAP

We now fork and blow up on the second fork trying to do swapping. Progress
of sorts

5 years agozxdiv: Fix various things
Alan Cox [Thu, 22 Nov 2018 00:19:16 +0000 (00:19 +0000)]
zxdiv: Fix various things

Map the code low
Mark code as code1 so it banks right
Fix the writable code references
Sort out the udata mapping
Fix the __memcpy calls to call our bank code not invalid sdcc lib code
Remove strlcpy we don't use
Fix minor fork bugs

With this we get to the point of init running and forking. No further but
we really need swap on to make any real progress.

5 years agoz80: Override __memcpy with our own so banked bins don't crash if it gets in
Alan Cox [Thu, 22 Nov 2018 00:18:36 +0000 (00:18 +0000)]
z80: Override __memcpy with our own so banked bins don't crash if it gets in

5 years agozxdev: second attempt at exploring a spectrum port
Alan Cox [Wed, 21 Nov 2018 00:34:10 +0000 (00:34 +0000)]
zxdev: second attempt at exploring a spectrum port

This time assume we are going to work with interfaces that can put us in the
low 16K. That is true for a lot of disk interfaces and also for many of the
Russian clones so they could run CP/M.

That gives us a much saner memory map to work from.

We get part way into boot - need to fix up the memory mappings and udata
to make further progress, then debug the DivIDE disk interface logic.

The loader works though

5 years agomsx1: typo
Alan Cox [Wed, 21 Nov 2018 00:33:57 +0000 (00:33 +0000)]
msx1: typo

5 years agobinmunge: allow relocations for function vector register loads
Alan Cox [Wed, 21 Nov 2018 00:32:21 +0000 (00:32 +0000)]
binmunge: allow relocations for function vector register loads

sdcc can generate this kind of code, so we need to generate stubs for
16bit register load fixups in code space

cp #1
jr z, 1f
ld hl,#func
jr 2f
1f: ld hl,#func2
2f:
push de
push bc
jp callhl
pop bc
pop de

5 years agospectrum: update tools for banking rule changes
Alan Cox [Wed, 21 Nov 2018 00:32:00 +0000 (00:32 +0000)]
spectrum: update tools for banking rule changes

5 years agokernel.h: define _ugetc for level 0 machines
Alan Cox [Wed, 21 Nov 2018 00:31:29 +0000 (00:31 +0000)]
kernel.h: define _ugetc for level 0 machines

5 years agoMakefile: Allow the kernel to be broken up a bit more for 16K banking
Alan Cox [Wed, 21 Nov 2018 00:31:06 +0000 (00:31 +0000)]
Makefile: Allow the kernel to be broken up a bit more for 16K banking

5 years agoissue: update for logo and 0.3rc1
Alan Cox [Sun, 18 Nov 2018 22:37:16 +0000 (22:37 +0000)]
issue: update for logo and 0.3rc1

5 years agosam: fix crash with esc-J on the bottom line
Alan Cox [Sun, 18 Nov 2018 22:07:03 +0000 (22:07 +0000)]
sam: fix crash with esc-J on the bottom line

5 years agotty: simple optimization for a very hot path
Alan Cox [Sun, 18 Nov 2018 21:56:27 +0000 (21:56 +0000)]
tty: simple optimization for a very hot path

We can do the valaddr once on Fuzix as we don't have threads or sleep races
to worry about

5 years agosam: update README
Alan Cox [Sun, 18 Nov 2018 12:24:57 +0000 (12:24 +0000)]
sam: update README

5 years agosam/thunked: Fix signal vector mishandling
Alan Cox [Sun, 18 Nov 2018 12:20:53 +0000 (12:20 +0000)]
sam/thunked: Fix signal vector mishandling

Signals are now correctly delivered in my testing. This also makes the shutdown
command work properly as a result

5 years agosam: first pass at adding the input layer and mouse interface
Alan Cox [Sun, 18 Nov 2018 00:17:32 +0000 (00:17 +0000)]
sam: first pass at adding the input layer and mouse interface

Hook up mouse and also keyboard raw event support

5 years agoinput.h: fix typo
Alan Cox [Sun, 18 Nov 2018 00:16:06 +0000 (00:16 +0000)]
input.h: fix typo

5 years agosam: initial pieces for mouse support
Alan Cox [Sat, 17 Nov 2018 22:24:17 +0000 (22:24 +0000)]
sam: initial pieces for mouse support

5 years agosam: note the two comms interface types for lpr
Alan Cox [Sat, 17 Nov 2018 17:46:13 +0000 (17:46 +0000)]
sam: note the two comms interface types for lpr

Also mask to bit 0 on the busy check

5 years agolib: initial sketches of library loader/relocator
Alan Cox [Sat, 17 Nov 2018 17:15:20 +0000 (17:15 +0000)]
lib: initial sketches of library loader/relocator

We will need this to tidy up the CP/M emulator first of all. Once the tools
are debugging it'll mean that a single emulator lib can be dynamically loaded
at the right top of memory for any use case.

5 years agosam: update README again
Alan Cox [Sat, 17 Nov 2018 16:05:46 +0000 (16:05 +0000)]
sam: update README again

5 years agosam: add graphics mode switching logic
Alan Cox [Sat, 17 Nov 2018 15:42:02 +0000 (15:42 +0000)]
sam: add graphics mode switching logic

5 years agosam: printer support
Alan Cox [Sat, 17 Nov 2018 15:41:28 +0000 (15:41 +0000)]
sam: printer support

5 years agosam: update README
Alan Cox [Sat, 17 Nov 2018 15:41:17 +0000 (15:41 +0000)]
sam: update README

5 years agographics: add support for SAM2 mode to userspace
Alan Cox [Sat, 17 Nov 2018 15:40:57 +0000 (15:40 +0000)]
graphics: add support for SAM2 mode to userspace

5 years agographics: add another weird mode
Alan Cox [Sat, 17 Nov 2018 15:39:22 +0000 (15:39 +0000)]
graphics: add another weird mode

5 years agosam: rtc support now appears to be in working order
Alan Cox [Sat, 17 Nov 2018 13:21:19 +0000 (13:21 +0000)]
sam: rtc support now appears to be in working order

5 years agosam: first cut at rtc support
Alan Cox [Sat, 17 Nov 2018 12:49:07 +0000 (12:49 +0000)]
sam: first cut at rtc support

5 years agousermem-z80-thunked: Fix crash if we uzero exactly one byte
Alan Cox [Sat, 17 Nov 2018 12:48:29 +0000 (12:48 +0000)]
usermem-z80-thunked: Fix crash if we uzero exactly one byte

5 years agosam: turn on keyboard masks, repeat and keymap reloading
Alan Cox [Sat, 17 Nov 2018 10:55:14 +0000 (10:55 +0000)]
sam: turn on keyboard masks, repeat and keymap reloading

Keyboard is not quite usable. Only known problem is the control key seems to
be broken at this point