User:Edward: Difference between revisions

Jump to navigation Jump to search
m
Let's use HTTPS
({{overline}} ;-))
m (Let's use HTTPS)
 
Line 8: Line 8:


== Things I'm responsible for ==
== Things I'm responsible for ==
My main crime against Specchumanity is the '''[http://sourceforge.net/projects/scrplus/ scrplus] image-converter''', which started out as a tool for the ULAplus but is now branching out and becoming a general image conversion tool.  Somewhat unusually for a project of mine (I'm a Linux fanboy through and through), it's also available for Windows.
My main crime against Specchumanity is the '''[https://sourceforge.net/projects/scrplus/ scrplus] image-converter''', which started out as a tool for the ULAplus but is now branching out and becoming a general image conversion tool.  Somewhat unusually for a project of mine (I'm a Linux fanboy through and through), it's also available for Windows.


I'm also working on a Spectrum emulator, '''[http://github.com/ec429/spiffy Spiffy]''', which as of May 2012 can emulate a 48 well enough to load games from tape and play them, and supports a few peripherals such as the [[ZX Printer]], [[ULAplus]] and an [[AY-3-8912|AY chip]].  Spiffy is unusual in that the main bus (A0–A15, D0–D7, {{overline|MREQ}}, {{overline|IORQ}}, {{overline|RD}}, {{overline|WR}}, {{overline|M1}}, {{overline|RFSH}}, {{overline|WAIT}}) is fully populated with the correct control signals; for instance all memory reads by the Z80 are actually performed by asserting the bus, then reading D0-D7 on the next Tstate.  In other words, the communication between the Z80 and other 'virtual chips' is confined entirely to the virtual bus.  Hopefully this should make it easier to implement peripherals and accurate ULA behaviour (contention, floating bus, and all that).  Certainly, the peripherals I've implemented so far have been simple, self-contained additions to the source.
I'm also working on a Spectrum emulator, '''[https://github.com/ec429/spiffy Spiffy]''', which as of May 2012 can emulate a 48 well enough to load games from tape and play them, and supports a few peripherals such as the [[ZX Printer]], [[ULAplus]] and an [[AY-3-8912|AY chip]].  Spiffy is unusual in that the main bus (A0–A15, D0–D7, {{overline|MREQ}}, {{overline|IORQ}}, {{overline|RD}}, {{overline|WR}}, {{overline|M1}}, {{overline|RFSH}}, {{overline|WAIT}}) is fully populated with the correct control signals; for instance all memory reads by the Z80 are actually performed by asserting the bus, then reading D0-D7 on the next Tstate.  In other words, the communication between the Z80 and other 'virtual chips' is confined entirely to the virtual bus.  Hopefully this should make it easier to implement peripherals and accurate ULA behaviour (contention, floating bus, and all that).  Certainly, the peripherals I've implemented so far have been simple, self-contained additions to the source.


There's also '''[http://github.com/ec429/blast blast]''', a curses-alike library, useful for making simple text-based interfaces.  It can be used as an ASM library or a Spectranet module, and Z88DK C bindings are being developed by [[User:Guesser|Guesser]].
There's also '''[https://github.com/ec429/blast blast]''', a curses-alike library, useful for making simple text-based interfaces.  It can be used as an ASM library or a Spectranet module, and Z88DK C bindings are being developed by [[User:Guesser|Guesser]].


Another project is '''[http://github.com/ec429/bast bast]''' (yes, the similar names are confusing), a sort of compiler-linker for ZX Basic.  Actually 'compiler' might be the wrong word, since it doesn't actually compile Basic to m/c; rather it compiles a text file on the host machine into a .TAP file containing a tokenised Basic program.  It also does some clever stuff like linking in binary (m/c) segments, auto-numbering program lines, and some optimisations.  Interface-wise, it's a command-line program with lots of options, somewhat modelled on ''gcc'' (which might have been a mistake).  The name is an abbreviation of "The BASIC Tapemaker".
Another project is '''[https://github.com/ec429/bast bast]''' (yes, the similar names are confusing), a sort of compiler-linker for ZX Basic.  Actually 'compiler' might be the wrong word, since it doesn't actually compile Basic to m/c; rather it compiles a text file on the host machine into a .TAP file containing a tokenised Basic program.  It also does some clever stuff like linking in binary (m/c) segments, auto-numbering program lines, and some optimisations.  Interface-wise, it's a command-line program with lots of options, somewhat modelled on ''gcc'' (which might have been a mistake).  The name is an abbreviation of "The BASIC Tapemaker".


Getting into a narrower niche now, I'm hacking on a FUSE (that's Filesystem in Userspace, not pak21's emulator) driver for the [[Spectranet]]'s [[TNFS]] (Trivial Network File System); it's called '''[http://github.com/ec429/tnfuse tnfuse]'''.  Also a driver for [[IDEDOS]] [[HDF_format|.HDF]] images and [[+3DOS]] partitions thereon, called '''[http://github.com/ec429/idedosfs idedosfs]'''.
Getting into a narrower niche now, I'm hacking on a FUSE (that's Filesystem in Userspace, not pak21's emulator) driver for the [[Spectranet]]'s [[TNFS]] (Trivial Network File System); it's called '''[https://github.com/ec429/tnfuse tnfuse]'''.  Also a driver for [[IDEDOS]] [[HDF_format|.HDF]] images and [[+3DOS]] partitions thereon, called '''[https://github.com/ec429/idedosfs idedosfs]'''.


A project that I've started work on but not released yet is '''ZX Lisp''', a LISP system for the Speccy.  I've written the (PC-based) compiler that converts LISP source into bytecode; still to do are the runtime and possibly a REPL (Read-Eval-Print Loop).
A project that I've started work on but not released yet is '''ZX Lisp''', a LISP system for the Speccy.  I've written the (PC-based) compiler that converts LISP source into bytecode; still to do are the runtime and possibly a REPL (Read-Eval-Print Loop).


Then of course there's a load of non-Speccy-related stuff, most of which lives on my [http://github.com/ec429 github page] or dotted around SourceForge (where my username is Soundandfury); a comprehensive list may or may not exist somewhere on my website.
Then of course there's a load of non-Speccy-related stuff, most of which lives on my [https://github.com/ec429 github page] or dotted around SourceForge (where my username is Soundandfury); a comprehensive list may or may not exist somewhere on my website.

Navigation menu