Alan Cox [Thu, 11 Dec 2014 12:11:26 +0000 (12:11 +0000)]
zx128: kernel.def option to decide if we want to microdrive boot
Also use a temporary boot stack for this
Alan Cox [Thu, 11 Dec 2014 12:10:36 +0000 (12:10 +0000)]
microdrive: fix a few bugs
With this done we can now do all the core bits of loading an image
Alan Cox [Thu, 11 Dec 2014 10:39:28 +0000 (10:39 +0000)]
zx128, Makefile: add rules for mdv building, rebalance 16K blocks
Alan Cox [Wed, 10 Dec 2014 23:29:27 +0000 (23:29 +0000)]
trs80: Fix off by one in floppy code
Alan Cox [Wed, 10 Dec 2014 23:29:00 +0000 (23:29 +0000)]
bintomdv: convert the binary into microdrive cartridge and interface 2 ROM
Alan Cox [Wed, 10 Dec 2014 23:28:47 +0000 (23:28 +0000)]
Makefile: add run for bintomdv
Alan Cox [Wed, 10 Dec 2014 23:24:55 +0000 (23:24 +0000)]
zx128: link and crt0
Call the microdrive init functions
Do the initializer copy (makes no odds if disk loading, matters if ROM)
Shuffle things so that the kernel is at 0x0000->0x3FFF and 0xC000+. The
common, video and other bits then live between 5B and 9F. That leaves us
with A0-BF free plus the C0-FF of the other banks, so we can run somewhat
bigger apps. Not ideal but SDCC hacking is going to be needed to do better
plus teach fuse to emulate banked cartridges.
Memory map open to discussion anyway.
BUG: right now the mdv loader doesn't load 0xFE00-0xFFFF but needs to, need
to move the boot stack first.
Alan Cox [Wed, 10 Dec 2014 23:23:49 +0000 (23:23 +0000)]
zx128: put devices in the same order as other platforms, hook microdrive
We'll need some CONFIG options to select between Microdrive, floppy etc as
I don't think the average Russian Spectrum/Clone came with a Microdrive !
Alan Cox [Wed, 10 Dec 2014 23:21:30 +0000 (23:21 +0000)]
zx128: Add support for the sinclair Microdrive
Read only for the moment, but tested with the boot loader path and seems to
be doing the right thing. Something is buggy in the checksum logic either
of the mdv maker or the reader, not sure which yet.
Headers and blocks are correctly fetched, data blocks are split from the header
as they arrive to avoid double buffering.
The interface 1 ROM is not used at all (so we can use this from a cartridge
to load the rest of the OS)
Alan Cox [Wed, 10 Dec 2014 23:19:50 +0000 (23:19 +0000)]
trs80: further work on the hd driver
Still needs a floppy boot block to begin testing
Alan Cox [Wed, 10 Dec 2014 23:18:50 +0000 (23:18 +0000)]
dragon: fix off by one in devfd
Alan Cox [Wed, 10 Dec 2014 23:18:39 +0000 (23:18 +0000)]
6502: typo fix
Alan Cox [Sun, 7 Dec 2014 14:32:31 +0000 (14:32 +0000)]
fcc: Fix link of start code
From: Will Sowerbutts <will@sowerbutts.com>
crt0.s has lost the 0x100 bytes of space at the start of the executable
image. Attached patch to fcc corrects the link address.
Alan Cox [Sun, 7 Dec 2014 14:31:17 +0000 (14:31 +0000)]
qsort: fix sort order
From: Will Sowerbutts <will@sowerbutts.com>
Alan Cox [Sun, 7 Dec 2014 14:29:24 +0000 (14:29 +0000)]
ssh: fflush the shell prompt
From: Will Sowerbutts <will@sowerbutts.com>
The assumption that libc will fflush stdout on an fgets of stdin is not anything
the standards guarantee. Do the needed fflush
Alan Cox [Sun, 7 Dec 2014 14:28:20 +0000 (14:28 +0000)]
qsort: fix _wqsort
From: Will Sowerbutts <will@sowerbutts.com>
[and changed from int to short just in case we ever do anything fun with some
of the odder 32bit CPUs: Alan Cox]
Alan Cox [Sat, 6 Dec 2014 23:53:16 +0000 (23:53 +0000)]
trs80: first cut at a WD1010 hard disk driver
Alan Cox [Sat, 6 Dec 2014 22:00:25 +0000 (22:00 +0000)]
trs80: first cut at a floppy driver based upon the Dragon work
Alan Cox [Sat, 6 Dec 2014 21:59:21 +0000 (21:59 +0000)]
dragon: fix floppy warning
Alan Cox [Sat, 6 Dec 2014 14:59:40 +0000 (14:59 +0000)]
putdigit: microoptimisations
The compiler can't assume much about the variables after the call to put
the character so do the operations the other way around
Alan Cox [Sat, 6 Dec 2014 14:58:40 +0000 (14:58 +0000)]
platform-dragon: floppy driver updates
It now sort of works but something isn't right in the track handling logic
so that's partly commented out. We issue excess seeks as a result.
Alan Cox [Sat, 6 Dec 2014 02:49:39 +0000 (02:49 +0000)]
dragon: initial fdc work
Now correctly loads the superblock off disk. Something is astray once we
try and seek off track 0 however
Alan Cox [Fri, 5 Dec 2014 17:55:03 +0000 (17:55 +0000)]
dragon: first cut at a floppy driver
Completely untested at this point
Alan Cox [Thu, 4 Dec 2014 11:25:44 +0000 (11:25 +0000)]
README.md: update status a bit
EtchedPixels [Wed, 3 Dec 2014 22:33:00 +0000 (22:33 +0000)]
Merge pull request #22 from atsidaev/lib-
20141204
Library fixes
Alexander Tsidaev [Wed, 3 Dec 2014 21:39:40 +0000 (16:39 -0500)]
vsprintf: 'static' removed from function declaration - making a file compilable with recent sdcc builds
b2m [Wed, 3 Dec 2014 21:35:30 +0000 (16:35 -0500)]
readdir: string length bug fix
If len is 32 (maximum possible value), then we going to write at buf->d_name[31]. Since the d_name length is 31, write is performed outside the string boundaries.
Alan Cox [Tue, 2 Dec 2014 00:34:18 +0000 (00:34 +0000)]
README.md: typo
Alan Cox [Mon, 1 Dec 2014 22:27:38 +0000 (22:27 +0000)]
Standalone: feel it all through indent
Now at least its readable and we can begin pruning the large chunks of it that
we don't actually need.
Alan Cox [Sun, 30 Nov 2014 20:57:29 +0000 (20:57 +0000)]
utils: Allow for wrong endian file systems
Alan Cox [Sun, 30 Nov 2014 20:56:44 +0000 (20:56 +0000)]
xfs2: auto-switch endianness and fix build bug
Alan Cox [Sun, 30 Nov 2014 20:47:06 +0000 (20:47 +0000)]
mkfs: indent and clean
Alan Cox [Sun, 30 Nov 2014 20:44:39 +0000 (20:44 +0000)]
mkfs: remove dosendian damage
Alan Cox [Sun, 30 Nov 2014 20:44:03 +0000 (20:44 +0000)]
mkfs: add basics to allow wrong endian creation
Alan Cox [Sun, 30 Nov 2014 20:37:47 +0000 (20:37 +0000)]
micropack: Add needed NMOS define
Alan Cox [Sun, 30 Nov 2014 20:37:01 +0000 (20:37 +0000)]
fsck: Support checking a "wong endian" file system
So you can check 6809 file systems on an x86 etc
Alan Cox [Sun, 30 Nov 2014 18:27:47 +0000 (18:27 +0000)]
ucp: provision for endianness handling
We are going to need to handle wrong-endian file systems in order to cope
with the 6809 port. Add macros ready
Alan Cox [Sun, 30 Nov 2014 15:08:24 +0000 (15:08 +0000)]
timer: fix struct assigns
SDCC isn't fond of them so be explicit
Alan Cox [Sun, 30 Nov 2014 15:08:04 +0000 (15:08 +0000)]
z80: add different includes for CMOS/NMOS Z80
Alan Cox [Sun, 30 Nov 2014 15:07:15 +0000 (15:07 +0000)]
z80: add NMOS v CMOS indicator to all the platforms
We need to know this to cover the interrupt erratum in di() and the
flag restore code
Alan Cox [Sat, 29 Nov 2014 20:55:04 +0000 (20:55 +0000)]
dragon: remove bogus comment
Alan Cox [Sat, 29 Nov 2014 20:53:37 +0000 (20:53 +0000)]
dragon: remove junk from devtty.h
Alan Cox [Sat, 29 Nov 2014 14:26:17 +0000 (14:26 +0000)]
usermem_sam: Bug fixes
Correct uput
Add interrupt masking otherwise we can take an IRQ while we are within a
usermem access with no valid stack. At that point we crapped a stack frame
somewhere in the wrong memory bank.
Alan Cox [Sat, 29 Nov 2014 14:25:44 +0000 (14:25 +0000)]
start: remove bogus copy of const object - make it static const
Alan Cox [Fri, 28 Nov 2014 22:34:44 +0000 (22:34 +0000)]
time_t: use a 32bit pair in kernel
While SDCC has a full 64bit longlong the other compilers are sadly lacking
at the moment. For the kernel the easiest thing to do is to work in 32bit
chunks, it's not as if the CPU can do better than 16bits at a go anyway
Alan Cox [Fri, 28 Nov 2014 22:27:17 +0000 (22:27 +0000)]
devio: tty queue functions are really unsigned char
gcc cares so quieten it down
Alan Cox [Fri, 28 Nov 2014 22:11:06 +0000 (22:11 +0000)]
6809: Switch to -Os
We've updated the helpers so can now do this.
A minimal build 6809 image currently weighs in at 24K code, 8K data. Some
of this is the CPU, some the calling conventions, and some gcc.
Alan Cox [Fri, 28 Nov 2014 22:10:33 +0000 (22:10 +0000)]
start: put the termios init data into const
That way we've got more chance of discarding it
Alan Cox [Fri, 28 Nov 2014 22:09:52 +0000 (22:09 +0000)]
vt: go back to memcpy
We do need to switch to a memmove, but now we've fixed memcpy we can just
tag it as a TODO. Reverse scroll is busted on dragon due to this
Alan Cox [Fri, 28 Nov 2014 22:09:24 +0000 (22:09 +0000)]
dragon: update the configuration file
Remove usermem_c bits
Alan Cox [Fri, 28 Nov 2014 22:08:42 +0000 (22:08 +0000)]
6809: remove debug from lowlevel code, add more compiler glue
Alan Cox [Fri, 28 Nov 2014 22:07:22 +0000 (22:07 +0000)]
dragon: use usermem_sam
This provides a different implementation of the SAM copier routines that do
not touch the stack at awkward moments
Alan Cox [Fri, 28 Nov 2014 22:05:47 +0000 (22:05 +0000)]
dragon: SAM implementation of the user memory copier
Alan Cox [Fri, 28 Nov 2014 22:05:15 +0000 (22:05 +0000)]
dragon: fix memcpy prototype and implementation
Alan Cox [Thu, 27 Nov 2014 23:44:34 +0000 (23:44 +0000)]
README.md: expand notes on 64K size
Alan Cox [Thu, 27 Nov 2014 23:41:45 +0000 (23:41 +0000)]
Makefile: avoid soft registers on 6809 for now
(not that gcc is actually generating them for some reason anyway)
Alan Cox [Thu, 27 Nov 2014 23:39:43 +0000 (23:39 +0000)]
dragon: Major updates
- Crazy SAM RAM mapping support
- Propogate vectors correctly to user pages
- Flesh out the tricks.s code as needed (mostly by deleting bits)
- Keyboard driver
- IRQ support now working
This is sufficient to boot to the bootdev prompt, type a device number
and fail to mount the file system.
Alan Cox [Thu, 27 Nov 2014 23:36:30 +0000 (23:36 +0000)]
dragon: move the display to 0x6000
This gives us clear space below 0x6000 to possibly allow for bigger binaries
(but there are some nasties about changing how the vectors must work that
won't be doable on a "real" Dragon ROM)
It's also the needed basis for 32K COCO and Dragon32 support given a banked
cartridge unit and banked call support.
Alan Cox [Thu, 27 Nov 2014 23:35:52 +0000 (23:35 +0000)]
z80: Add bits ready for any endian fixing we have to do
Alan Cox [Thu, 27 Nov 2014 01:14:21 +0000 (01:14 +0000)]
dragon: update the instructions
Alan Cox [Thu, 27 Nov 2014 01:09:53 +0000 (01:09 +0000)]
Makefile: split video/videodata on 6809 as we are ROMming video
Also add the new tools
With this lot done the Dragon builds and gets to the bootdev prompt pending
writing some actual drivers.
Still lots of other stuff busted - time_t is 32bit and needs fixing up
really, syscall and irq are not really done at all. Endianisms - who knows 8)
Alan Cox [Thu, 27 Nov 2014 01:09:35 +0000 (01:09 +0000)]
dragon: Update the link map
Alan Cox [Thu, 27 Nov 2014 01:09:13 +0000 (01:09 +0000)]
dragon: update crt0.s to allow for the work done in setup and the switcher
Alan Cox [Thu, 27 Nov 2014 01:06:39 +0000 (01:06 +0000)]
dragon: rewrite the setup code
We load the first ROM with an unpacking routine and all the data. On boot
it sets up the SAM (must be done from ROM), the PIAs and then says hello,
clears memory and moves all the RAM objects from a DECB stream we add
into the ROM image.
With that done, it flips to the second ROM which together with the
cartridge mappings gives you a high 32K for kernel code, although it has
to be split using text1/text2 as we must stuff the exception vectors into
0xBFF0-0xBFFF - so double check the fuzix.map
Alan Cox [Thu, 27 Nov 2014 01:06:22 +0000 (01:06 +0000)]
dragon: 64K RAM not 96K
Alan Cox [Thu, 27 Nov 2014 01:06:05 +0000 (01:06 +0000)]
dragon: Build the rom images not just fuzix.bin
Alan Cox [Thu, 27 Nov 2014 01:05:28 +0000 (01:05 +0000)]
dragon: remove dead bits, add vt mapper function
Alan Cox [Thu, 27 Nov 2014 01:04:56 +0000 (01:04 +0000)]
dragon: correct config.h, turn on new vt features etc
Alan Cox [Thu, 27 Nov 2014 01:04:35 +0000 (01:04 +0000)]
dragon: do char mapping in the right spot
Alan Cox [Thu, 27 Nov 2014 01:04:02 +0000 (01:04 +0000)]
6809: add mulhi
We need this for load average computation
Alan Cox [Thu, 27 Nov 2014 01:03:41 +0000 (01:03 +0000)]
decbdragon: Turn the DECB stream into a set of ROM images
Alan Cox [Thu, 27 Nov 2014 01:01:50 +0000 (01:01 +0000)]
vt: minor fixes and a temporary hack
We have overlapped input/output so should use memmove - just we don't yet
have a memmove in all our support code - botch it for now
Add support to start on a different line (eg below boot rom info)
Allow a mapping function for simple mode (eg for Petscii and for 6809
boxes with the 6847)
Alan Cox [Tue, 25 Nov 2014 22:42:30 +0000 (22:42 +0000)]
z80pack: fix silly unfixed comment from early 48K setup
Alan Cox [Tue, 25 Nov 2014 22:39:54 +0000 (22:39 +0000)]
z80pack32: Prototyping work to support 32K + 32K fixed better
Initial test work to see what is needed to handle machines that have a 32K
chunk you can page and a fixed 32K chunk (MTX512, N8VEM v2, MicroBee etc)
Buildable prototype but needs work doing on the crt0.s/binman setup to cope
with binaries containing a big hole in the middle.
Alan Cox [Tue, 25 Nov 2014 18:01:00 +0000 (18:01 +0000)]
binman: sanity check data area, fix end reporting
Alan Cox [Tue, 25 Nov 2014 18:00:41 +0000 (18:00 +0000)]
socz80: update to new _discard
Alan Cox [Tue, 25 Nov 2014 17:59:45 +0000 (17:59 +0000)]
pcw8256: note zero requirement
Alan Cox [Tue, 25 Nov 2014 17:59:19 +0000 (17:59 +0000)]
z80pack-lite: update to new _discard
Alan Cox [Tue, 25 Nov 2014 17:58:56 +0000 (17:58 +0000)]
pcw8256: update to new _discard
Alan Cox [Tue, 25 Nov 2014 17:58:07 +0000 (17:58 +0000)]
trs80: update to new _discard
Alan Cox [Tue, 25 Nov 2014 17:57:50 +0000 (17:57 +0000)]
nc100: update to new _discard
Alan Cox [Tue, 25 Nov 2014 17:57:26 +0000 (17:57 +0000)]
msx2: update to new _discard logic
Alan Cox [Tue, 25 Nov 2014 17:56:53 +0000 (17:56 +0000)]
msx1: update to new discard
Alan Cox [Tue, 25 Nov 2014 15:55:37 +0000 (15:55 +0000)]
kdata,start: undo the bufpool hack
The strings should now end up in _DISCARD without hackery
Alan Cox [Tue, 25 Nov 2014 15:55:18 +0000 (15:55 +0000)]
z80pack: link _DISCARD at 0xE000
Alan Cox [Tue, 25 Nov 2014 15:54:39 +0000 (15:54 +0000)]
z80pack: Keep discard separate
We can now discard the _DISCARD segment - yay, another 1K
Alan Cox [Tue, 25 Nov 2014 15:53:53 +0000 (15:53 +0000)]
binman: Pack the _DISCARD section so it can be relocated and discarded
This means platforms need to adjust their crt0.s as per the following
z80pack commits
Alan Cox [Tue, 25 Nov 2014 15:53:05 +0000 (15:53 +0000)]
Makefile: put string constants from the startup into discard as well
This lets us undo the buffer hack in a bit
Alan Cox [Tue, 25 Nov 2014 15:52:44 +0000 (15:52 +0000)]
z80pack: remove facepalm
Alan Cox [Tue, 25 Nov 2014 11:00:42 +0000 (11:00 +0000)]
process: Add loadav calculator.
Needs to be exposed nicely to userspace yet.
Also remove a dead FIXME in the process code
Alan Cox [Tue, 25 Nov 2014 00:34:34 +0000 (00:34 +0000)]
kn_open: shave off 30 bytes
Alan Cox [Tue, 25 Nov 2014 00:31:09 +0000 (00:31 +0000)]
i_alloc: shave another 60 bytes off
Alan Cox [Mon, 24 Nov 2014 23:57:10 +0000 (23:57 +0000)]
z80pack: use end of bounce buffer for swap stack
It's never doing both at once
EtchedPixels [Mon, 24 Nov 2014 19:14:33 +0000 (19:14 +0000)]
Merge pull request #19 from atsidaev/clean-apps
FUZIX executables generation
Alexander Tsidaev [Mon, 24 Nov 2014 17:15:12 +0000 (12:15 -0500)]
apps: add binman support and produce FUZIX executables
Alexander Tsidaev [Mon, 24 Nov 2014 16:21:42 +0000 (11:21 -0500)]
library: line endings fix, file modes fix.
salex [Mon, 24 Nov 2014 16:07:10 +0000 (11:07 -0500)]
Fixed library and apps maker.
EtchedPixels [Mon, 24 Nov 2014 08:34:59 +0000 (08:34 +0000)]
Merge pull request #18 from atsidaev/clean-
24112014
zx128 multitasking support
Alexander Tsidaev [Sun, 23 Nov 2014 21:51:05 +0000 (02:51 +0500)]
zx128: custom banking added
Alan Cox [Sun, 23 Nov 2014 22:43:57 +0000 (22:43 +0000)]
z80pack: kill dead code