FUZIX.git
6 years agoCorrectly set the location and size of the video memory on the NC200.
David Given [Mon, 23 Apr 2018 18:52:26 +0000 (20:52 +0200)]
Correctly set the location and size of the video memory on the NC200.

6 years agoMerge pull request #607 from davidgiven/nc200
EtchedPixels [Sun, 22 Apr 2018 12:10:39 +0000 (13:10 +0100)]
Merge pull request #607 from davidgiven/nc200

Rearrange platform-nc100 and platform-nc200

6 years agoubee: more oddments on the display code etc
Alan Cox [Sun, 22 Apr 2018 12:09:12 +0000 (13:09 +0100)]
ubee: more oddments on the display code etc

6 years agoBodge the prototype NC200 port into at least building (although it doesn't
David Given [Sat, 21 Apr 2018 14:32:52 +0000 (16:32 +0200)]
Bodge the prototype NC200 port into at least building (although it doesn't
work).

6 years agoStage #1 of moving the NC200 stuff into the amstradnc directory.
David Given [Sat, 21 Apr 2018 13:57:47 +0000 (15:57 +0200)]
Stage #1 of moving the NC200 stuff into the amstradnc directory.

6 years agoMerge from master.
David Given [Sat, 21 Apr 2018 13:48:02 +0000 (15:48 +0200)]
Merge from master.

6 years agoRefactor the Amstrad NC directory so that the NC100 build stuff is in its own
David Given [Sat, 21 Apr 2018 11:02:38 +0000 (13:02 +0200)]
Refactor the Amstrad NC directory so that the NC100 build stuff is in its own
subdirectory --- this is to allow a hypothetical NC200 port to have different
build scripts but share as much code as possible.

This changes the platform name from nc100 to amstradnc/nc100.

6 years agoubee: fix up the display code bugs
Alan Cox [Fri, 20 Apr 2018 12:32:09 +0000 (13:32 +0100)]
ubee: fix up the display code bugs

We still don't do all the scrolling right but this will do for testing other
bits of the code

6 years agoubee: turn on clearing vt now the port bug is fixed
Alan Cox [Fri, 20 Apr 2018 12:31:22 +0000 (13:31 +0100)]
ubee: turn on clearing vt now the port bug is fixed

6 years agoubee: set display to 80x25
Alan Cox [Fri, 20 Apr 2018 12:31:02 +0000 (13:31 +0100)]
ubee: set display to 80x25

6 years agoubee: call map_kernel in start up to initialize shadow port copy
Alan Cox [Fri, 20 Apr 2018 12:30:34 +0000 (13:30 +0100)]
ubee: call map_kernel in start up to initialize shadow port copy

6 years agoubee: NMOS Z80 with bugs
Alan Cox [Fri, 20 Apr 2018 12:30:18 +0000 (13:30 +0100)]
ubee: NMOS Z80 with bugs

6 years agoubee: Next stages to get from prototype to usable
Alan Cox [Thu, 19 Apr 2018 22:50:37 +0000 (23:50 +0100)]
ubee: Next stages to get from prototype to usable

- Draft code for lpen keyboard
- Fix various platform detection bugs
- Rework video to bank it out when not used (in progress)
- Support attributes and colour
- Memory map re-arrange and buffer recovery
- Turn on networking and other stuff that is useful

Not yet working (still debugging the video changes)

6 years agovt: vtattr_notify missing cases
Alan Cox [Thu, 19 Apr 2018 22:45:00 +0000 (23:45 +0100)]
vt: vtattr_notify missing cases

Set sensible colours on startup and notify the platform code so it can set up
the correct properties.

Also do a notify on a vt switch as the attributes are per vt.

6 years agovt: should define vtattr in the headers
Alan Cox [Thu, 19 Apr 2018 22:44:40 +0000 (23:44 +0100)]
vt: should define vtattr in the headers

This didn't show up as everyone currently uses it in asm files only

6 years agokernel: hopefully fix the busy block panic
Alan Cox [Wed, 18 Apr 2018 22:44:45 +0000 (23:44 +0100)]
kernel: hopefully fix the busy block panic

Do make backups before you test this!

6 years agoinode: and a quick fixup for the fixup
Alan Cox [Tue, 17 Apr 2018 22:17:28 +0000 (23:17 +0100)]
inode: and a quick fixup for the fixup

This is too ugly to live long term but will do for the moment while I figure
out the proper way to deal with this and avoid things like the double search.

Possibly we need a unified 'bread' related operation that gets the contents
of a buffer into user space, by any means needed.

Something like

bp = bfind(...)
if (bp || !user) {
if (bp == NULL)
bread_no_lookup()
update fields
copy to user
unlock
return
}
issue raw copy to user page

6 years agoinode: Fix double locking
Alan Cox [Tue, 17 Apr 2018 22:13:51 +0000 (23:13 +0100)]
inode: Fix double locking

This was a long lurking buglet caught by the new inode locking code and
chased down by Tormod. I think this approach is correct. The old inefficiency
of doing a bfind to find the buffer does not exist and the a bread discovering
this again is still present.

6 years agoz80pack: update README
Alan Cox [Tue, 17 Apr 2018 22:13:27 +0000 (23:13 +0100)]
z80pack: update README

6 years agoubee: first sketch out of light pen keyboard support
Alan Cox [Tue, 17 Apr 2018 22:13:07 +0000 (23:13 +0100)]
ubee: first sketch out of light pen keyboard support

6 years agoinput: add BUTTON(n) define for the button byte
Alan Cox [Sun, 15 Apr 2018 13:48:01 +0000 (14:48 +0100)]
input: add BUTTON(n) define for the button byte

6 years agoz80pack: turn on direct I/O for execve etc
Alan Cox [Sun, 15 Apr 2018 13:47:45 +0000 (14:47 +0100)]
z80pack: turn on direct I/O for execve etc

6 years agopcw8256: further update/work
Alan Cox [Sun, 15 Apr 2018 13:47:10 +0000 (14:47 +0100)]
pcw8256: further update/work

Still need to tackle the rest of the bootloader and the fork bug

6 years agoMerge pull request #606 from beretta42/inputfix
EtchedPixels [Fri, 13 Apr 2018 21:32:34 +0000 (22:32 +0100)]
Merge pull request #606 from beretta42/inputfix

input: fix ifdef typo

6 years agoinput: fix ifdef typo
Brett Gordon [Fri, 13 Apr 2018 05:53:43 +0000 (01:53 -0400)]
input: fix ifdef typo

6 years agopcw8256: Example (in progress) devinput device
Alan Cox [Thu, 12 Apr 2018 10:46:00 +0000 (11:46 +0100)]
pcw8256: Example (in progress) devinput device

- Mice need changing to do their work each vblank and accumulate
- No suport for all up/down events yet
- Still need to work out what mode 1 will mean and define in a globally meaningful way - or add a matches ioctl for say up to 8 'grabbed' keycodes

Hopefully enough of a sketch to start getting joystick support into platforms
at least.

Note: the basic idea of all of this is to bind together all the input events
into a single device so that we don't need all the overhead of poll and big
unixisms. Thus a game can grab the keyboard, and get keyboard/joystick/mouse
events all down one channel

Alan

6 years agokernel: build devinput if needed
Alan Cox [Thu, 12 Apr 2018 10:45:52 +0000 (11:45 +0100)]
kernel: build devinput if needed

6 years agodevinput: the input device layer
Alan Cox [Thu, 12 Apr 2018 10:44:54 +0000 (11:44 +0100)]
devinput: the input device layer

This is designed to be as trivial as possible. The real complexity if any is
in tweaking platform tty code to queue all the up/down events when the keyboard
is grabbed.

6 years agodevsys: hooks for input device
Alan Cox [Thu, 12 Apr 2018 10:44:44 +0000 (11:44 +0100)]
devsys: hooks for input device

6 years agoinput: definitions for input device
Alan Cox [Thu, 12 Apr 2018 10:44:32 +0000 (11:44 +0100)]
input: definitions for input device

6 years agoinput: reserve an ioctl range for the input device
Alan Cox [Thu, 12 Apr 2018 10:44:06 +0000 (11:44 +0100)]
input: reserve an ioctl range for the input device

6 years agopcw8256: add initial cut at hard disk drivers
Alan Cox [Wed, 11 Apr 2018 22:37:52 +0000 (23:37 +0100)]
pcw8256: add initial cut at hard disk drivers

Update some notes
Add some of the swap bits (more is needed see the COCO3)

6 years agosuper: tweak a bit
Alan Cox [Tue, 10 Apr 2018 22:25:44 +0000 (23:25 +0100)]
super: tweak a bit

Still don't rely upon this

6 years agosuperblock: Add geometry proposal
Alan Cox [Tue, 10 Apr 2018 22:21:19 +0000 (23:21 +0100)]
superblock: Add geometry proposal

Don't use or rely on this yet!

6 years agosuperblock: get the kernel inoptr out of the superblock
Alan Cox [Tue, 10 Apr 2018 22:16:42 +0000 (23:16 +0100)]
superblock: get the kernel inoptr out of the superblock

Put it in the memory only area where it belongs

6 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Tue, 10 Apr 2018 21:51:02 +0000 (22:51 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

6 years ago6502: first attempt at a proper push/pop signal stacking handler
Alan Cox [Tue, 10 Apr 2018 21:50:32 +0000 (22:50 +0100)]
6502: first attempt at a proper push/pop signal stacking handler

6 years agoMerge pull request #605 from beretta42/time
EtchedPixels [Tue, 10 Apr 2018 13:38:07 +0000 (14:38 +0100)]
Merge pull request #605 from beretta42/time

debug new api for RTC's

Mostly overlaps other fixes, just merging remainder

6 years agoMerge branch 'master' into time
EtchedPixels [Tue, 10 Apr 2018 13:37:44 +0000 (14:37 +0100)]
Merge branch 'master' into time

6 years agoz80pack: update to platform_rtc_ naming
Alan Cox [Tue, 10 Apr 2018 12:30:17 +0000 (13:30 +0100)]
z80pack: update to platform_rtc_ naming

6 years agonc100: remove dead functionality breaking build
Alan Cox [Tue, 10 Apr 2018 12:29:57 +0000 (13:29 +0100)]
nc100: remove dead functionality breaking build

6 years agopcw8256: README
Alan Cox [Tue, 10 Apr 2018 12:29:42 +0000 (13:29 +0100)]
pcw8256: README

6 years agopcw8256: add now required copy_common method
Alan Cox [Tue, 10 Apr 2018 12:29:11 +0000 (13:29 +0100)]
pcw8256: add now required copy_common method

Lots more needed to make this platform work

6 years agoz80pack-lite: Fix typo breaking build
Alan Cox [Tue, 10 Apr 2018 12:28:57 +0000 (13:28 +0100)]
z80pack-lite: Fix typo breaking build

6 years agods1302: move to platform_rtc_ naming
Alan Cox [Mon, 9 Apr 2018 20:37:22 +0000 (21:37 +0100)]
ds1302: move to platform_rtc_ naming

6 years agoz180: fix rename of monitor entry
Alan Cox [Mon, 9 Apr 2018 20:37:09 +0000 (21:37 +0100)]
z180: fix rename of monitor entry

6 years agotime: change references to rtc_secs to platform_rtc_secs
Brett Gordon [Sun, 8 Apr 2018 23:07:50 +0000 (19:07 -0400)]
time: change references to rtc_secs to platform_rtc_secs

rtc_secs() has no prototype anymore, and errant results from an
implied call was speeding my clock up by 51 secs every RTC_INTERVAL.
change everyone over to new api.

6 years ago6502: fix make clean
Alan Cox [Sun, 8 Apr 2018 23:05:22 +0000 (00:05 +0100)]
6502: fix make clean

6 years ago6502: fix make clean
Alan Cox [Sun, 8 Apr 2018 23:05:04 +0000 (00:05 +0100)]
6502: fix make clean

6 years ago65c816: align with platform_ change for monitor call
Alan Cox [Sun, 8 Apr 2018 23:04:28 +0000 (00:04 +0100)]
65c816: align with platform_ change for monitor call

6 years agortc: change rtc to platform_
Alan Cox [Sun, 8 Apr 2018 23:04:14 +0000 (00:04 +0100)]
rtc: change rtc to platform_

6 years agococo3: redo drivewire time rtc / simplify.
Brett Gordon [Sun, 8 Apr 2018 22:28:27 +0000 (18:28 -0400)]
coco3: redo drivewire time rtc / simplify.

6 years agococo3: move to platform_rtc
Alan Cox [Sun, 8 Apr 2018 20:42:43 +0000 (21:42 +0100)]
coco3: move to platform_rtc

6 years agoasz80: fix Makefile clean for 6809
Alan Cox [Sun, 8 Apr 2018 20:38:55 +0000 (21:38 +0100)]
asz80: fix Makefile clean for 6809

6 years agotrs80: fix (I hope) the display setup logic
Alan Cox [Sun, 8 Apr 2018 20:35:39 +0000 (21:35 +0100)]
trs80: fix (I hope) the display setup logic

The emulator doesn't really emulate this so hopefully its now right on the real
beastie

6 years agotimer: start switching platforms to platform_ naming
Alan Cox [Sun, 8 Apr 2018 20:35:25 +0000 (21:35 +0100)]
timer: start switching platforms to platform_ naming

6 years agoz80: build gpt tools
Alan Cox [Sun, 8 Apr 2018 20:31:24 +0000 (21:31 +0100)]
z80: build gpt tools

6 years agoLibrary: fix builds on systems not using gcc
Alan Cox [Sun, 8 Apr 2018 20:30:55 +0000 (21:30 +0100)]
Library: fix builds on systems not using gcc

6 years agoMerge pull request #599 from beretta42/net
EtchedPixels [Sun, 8 Apr 2018 19:55:42 +0000 (20:55 +0100)]
Merge pull request #599 from beretta42/net

net_native: clear event upon unhooking.

6 years agoMerge pull request #600 from beretta42/apple
EtchedPixels [Sun, 8 Apr 2018 19:55:08 +0000 (20:55 +0100)]
Merge pull request #600 from beretta42/apple

lib: fix 6502 syscall generator

6 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Sun, 8 Apr 2018 19:54:06 +0000 (20:54 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

6 years agopdp11: commit makefile and crt0 code
Alan Cox [Sun, 8 Apr 2018 19:52:03 +0000 (20:52 +0100)]
pdp11: commit makefile and crt0 code

6 years agocrt0: Fix return propogation to exit
Alan Cox [Sun, 8 Apr 2018 19:51:21 +0000 (20:51 +0100)]
crt0: Fix return propogation to exit

Reported by David Given

6 years agoMerge pull request #604 from beretta42/tar
EtchedPixels [Sun, 8 Apr 2018 19:43:24 +0000 (20:43 +0100)]
Merge pull request #604 from beretta42/tar

tar: issue fixes

6 years agotar: truncate existing files.
Brett Gordon [Sun, 8 Apr 2018 16:42:12 +0000 (12:42 -0400)]
tar: truncate existing files.

6 years agotar: make parent directories
Brett Gordon [Sun, 8 Apr 2018 16:41:29 +0000 (12:41 -0400)]
tar: make parent directories

6 years agonet_native: clear event upon unhooking.
Brett Gordon [Sun, 8 Apr 2018 03:27:10 +0000 (23:27 -0400)]
net_native: clear event upon unhooking.

this prevents netdev_findevent() from continually reporting on a
dead socket, thus preventing any other socket/event from being
reported to the network daemon.

6 years agocromemco: first cut at the low level disk drivers for the 16FDC
Alan Cox [Sat, 7 Apr 2018 17:33:32 +0000 (18:33 +0100)]
cromemco: first cut at the low level disk drivers for the 16FDC

To fix:
- SD support
- SS support
- Do a head settle delay when changing side
- No support for the slow 8" disk option (PerSci disks ?)

and probably a ton of bugs as this is an initial commit and untested!

6 years agokernel: Pre-emption rate is supposed to be tick rate independent!
Alan Cox [Fri, 6 Apr 2018 18:38:01 +0000 (19:38 +0100)]
kernel: Pre-emption rate is supposed to be tick rate independent!

6 years agoz80pack: swap define
Alan Cox [Fri, 6 Apr 2018 18:37:04 +0000 (19:37 +0100)]
z80pack: swap define

6 years agoz80: allow fixedbank to used swapless
Alan Cox [Fri, 6 Apr 2018 18:36:46 +0000 (19:36 +0100)]
z80: allow fixedbank to used swapless

6 years agocromemco: initial draft port
Alan Cox [Fri, 6 Apr 2018 18:35:48 +0000 (19:35 +0100)]
cromemco: initial draft port

No floppy driver yet and boot blocks are untested

6 years agolib: fix 6502 syscall generator
Brett Gordon [Thu, 5 Apr 2018 16:15:58 +0000 (12:15 -0400)]
lib: fix 6502 syscall generator

was trying to use an unitialized index to array of syscall names.

6 years agosignals: fix signal leak by pushing back a pending signal when we recalc
Alan Cox [Mon, 2 Apr 2018 22:01:15 +0000 (23:01 +0100)]
signals: fix signal leak by pushing back a pending signal when we recalc

6 years agofilesys: fix errno 0 failure with overlong path
Alan Cox [Mon, 2 Apr 2018 22:01:02 +0000 (23:01 +0100)]
filesys: fix errno 0 failure with overlong path

6 years agomkfs: make it clearer how block free list is set up
Alan Cox [Mon, 2 Apr 2018 21:39:37 +0000 (22:39 +0100)]
mkfs: make it clearer how block free list is set up

6 years agonetd: Update for new protocol
Alan Cox [Fri, 30 Mar 2018 23:29:29 +0000 (00:29 +0100)]
netd: Update for new protocol

Align the headers
Honour a request for an unhook as soon as we can (immediately if the uIP link
is already dead)

6 years agonet_native: implement new callback behaviour
Alan Cox [Fri, 30 Mar 2018 23:27:03 +0000 (00:27 +0100)]
net_native: implement new callback behaviour

We sendd a new UNHOOK message to the netd stack and when it replies to say
it's done the job we tell the kernel it can recycle the socket.

6 years agosyscall_net: make close non blocking add a callback for reuse
Alan Cox [Fri, 30 Mar 2018 23:25:50 +0000 (00:25 +0100)]
syscall_net: make close non blocking add a callback for reuse

The new mode is close() sends a message to ask the stack to clean up. The
socket ends up dead until the stack calls ack into closed() to say that the
resources are now free.

6 years agoprocess: turn off some debug
Alan Cox [Fri, 30 Mar 2018 23:25:34 +0000 (00:25 +0100)]
process: turn off some debug

6 years agokernel: add pre-emption signal checks to assembly paths
Alan Cox [Fri, 30 Mar 2018 21:58:06 +0000 (22:58 +0100)]
kernel: add pre-emption signal checks to assembly paths

With these in place we appear to be good except for some kind of net
breakage that needs resolving.

6 years agoz80: fix stray switchout
Alan Cox [Fri, 30 Mar 2018 21:46:46 +0000 (22:46 +0100)]
z80: fix stray switchout

This gets us close to where need to be. All that is broken by all this changing
around now is signal handling on pre-emption

6 years agoprocess: make signal_parent reusable, and document
Alan Cox [Fri, 30 Mar 2018 21:40:22 +0000 (22:40 +0100)]
process: make signal_parent reusable, and document

6 years agoprocess: fix the various buglets in the scheduler changes
Alan Cox [Fri, 30 Mar 2018 21:31:42 +0000 (22:31 +0100)]
process: fix the various buglets in the scheduler changes

6 years agonet_native: test use for psleep_nosig
Alan Cox [Fri, 30 Mar 2018 21:24:45 +0000 (22:24 +0100)]
net_native: test use for psleep_nosig

6 years agokernel: pre-empt should now call the platform method directly
Alan Cox [Fri, 30 Mar 2018 21:24:20 +0000 (22:24 +0100)]
kernel: pre-empt should now call the platform method directly

6 years agotrap/platform rename: Make more consistent use of platform_ naming
Alan Cox [Fri, 30 Mar 2018 19:31:16 +0000 (20:31 +0100)]
trap/platform rename: Make more consistent use of platform_ naming

6 years agoplatform_switchout
Alan Cox [Thu, 29 Mar 2018 22:55:49 +0000 (23:55 +0100)]
platform_switchout

Updated everywhere that looks like it needs it

6 years agomsx1: update to platform_ version
Alan Cox [Thu, 29 Mar 2018 17:23:18 +0000 (18:23 +0100)]
msx1: update to platform_ version

6 years agomsx2: update to scheduler change
Alan Cox [Thu, 29 Mar 2018 14:57:13 +0000 (15:57 +0100)]
msx2: update to scheduler change

6 years agogpt/mbr: don't assume gcc isms are present
Alan Cox [Thu, 29 Mar 2018 14:56:54 +0000 (15:56 +0100)]
gpt/mbr: don't assume gcc isms are present

6 years agocpu.h: add __packed
Alan Cox [Thu, 29 Mar 2018 14:56:34 +0000 (15:56 +0100)]
cpu.h: add __packed

6 years agoprocess: move all the optimizations of switchout() into the C code
Alan Cox [Thu, 29 Mar 2018 14:42:24 +0000 (15:42 +0100)]
process: move all the optimizations of switchout() into the C code

This fixes a ton of duplication in the asm code, and in addition makes the
pre-emption cases faster as we know in those cases that the optimizations
never apply.

switchout() becomes a C fnction

platform_switchout() is now the required platform specific stub which shouldn't
need to do any optimizing beyond udata copy elimiations.

Merge a z80fixedbank example of the changes.

6 years agofilesys: add fields for extended superblock
Alan Cox [Thu, 29 Mar 2018 14:41:16 +0000 (15:41 +0100)]
filesys: add fields for extended superblock

Also add a platform_switchout define ready for the process.c changes

6 years agoinode: file system updates
Alan Cox [Thu, 29 Mar 2018 14:39:42 +0000 (15:39 +0100)]
inode: file system updates

Add a superblock index to inodes. It does cost us a byte per inode but it
also speeds things up somewhat. Also we will need it for big fs support.

Fix inode * errors as inoptr should be used

Set the basis for big file system support (nowhere near complete yet)

6 years agomkfs: fix printf reporting
Alan Cox [Thu, 29 Mar 2018 14:38:26 +0000 (15:38 +0100)]
mkfs: fix printf reporting

6 years agomkfs: first cut at supporting extended block sizes
Alan Cox [Thu, 29 Mar 2018 14:37:02 +0000 (15:37 +0100)]
mkfs: first cut at supporting extended block sizes

6 years agoproc.h: add new process state
Alan Cox [Mon, 26 Mar 2018 21:12:33 +0000 (22:12 +0100)]
proc.h: add new process state

6 years agosyscall: Fix open() panic introduced by lock change
Alan Cox [Mon, 26 Mar 2018 21:11:58 +0000 (22:11 +0100)]
syscall: Fix open() panic introduced by lock change

6 years agobinman: off by one
Alan Cox [Mon, 26 Mar 2018 21:11:41 +0000 (22:11 +0100)]
binman: off by one