Jonathan at the Wakefield Show
    Jonathan Harston 
  jgh@mdfs.net

Coding and Commenting Examples

I have a natural talent and aptitude for writing I/O and device drivers.
  • 2024 PDP11 ProgTips number display routines.
  • 1994, 2024 M7PLOT - MODE 7 teletext PLOT code.
  • 2024 SoftMDFS - Updated file server with 32-bit extensions
  • 2024 65MiniKernel - Added 6551 driver
  • 2024 6551 ACIA driver code - documenting hardware oddities
  • 2024 RegTools - MkReg tweeked for new register format
  • 2024 BBC BASIC - Working on spawning RT11 commands
  • 1987,2023 SpecIO - Tidied up ZX Spectrum I/O libraries
  • 2023 RISCV - Refining RISC-V kernel API
  • 2000,2023 CPMZip - Updated Zip/UnZip for CP/M
  • 1989-2023 BBC BASIC - PDP11 BBC BASIC
  • 2018-2023 AnsiKBD.mac - PDP11 ANSI keycode parser
  • 2018-2023 AnsiParse - ANSI keycode parsing
  • 2021-2022 Apple II - Apple II keyboard and VDU character I/O
  • 1985-2022 BLib - BBC BASIC programming libraries
  • 2021 PDP11 tty - Bugfixed and updated emulated TTY
  • 2015-2020 WebBasic - BBC BASIC detokeniser and highlighter
  • 2016-2019 EhBasic - Updated 6502 EhBasic OS interfaces
  • 2005-2019 AsmPDP - PDP11 assembler
  • 2000-2019 SoftMDFS - Software MDFS file server
  • 1997-2019 console.c - console and ANSI I/O library
  • 1994-2019 Filers - Filers for AFS0, CPM, SJ, Unix disks
  • 2016-2019 Plus1/AP6 - Updated Electron Plus 1 control ROM
  • 2012,2017,2019 DiskUSB - BBC USB disk tools
  • 2008,2017,2019 Tube09.src - 6809 Tube client
  • 1993-2003,2018,2019 cZ80Tube - Z80 Emulator in 'C'
  • 2004-2018 PDPTube - PDP11 Tube emulator
  • 2018 Brandy - Brandy Basic updated keyboard drivers
  • 1990-2018 System/C - 'C' programming libraries
  • 2017-2018 BBC/USB - BBC USB Keyboard driver
  • 2000-2018 BBCZip - Zip/UnZip for BBC/Master computers
  • 2005,2018 Serial65.src - 6502 Serial Tube client
  • 2018 6502 PS2 keyboard driver
  • 2017 LDPIC - Updated LDPIC to use 12-bit palette
  • 1989,2005-2017 Tube11.src - PDP11 Tube client
  • 2008,2017 Serial09.src - 6809 Serial Tube client
  • 2008,2017 Serial12.asm - 6812 Serial Tube client
  • 2016,2017 BeebEm - Added VDFS emulator traps to BeebEm
  • 2016 FastROMFS - Fast ROMFS builder
  • 2004,2016 VirtualDFS - Updated VDFS
  • 2011-2016 yard.php - Whitby Maps PHP browser (src)
  • 2006,2015 Tube65.src - Updated 6502/65C102 Tube client
  • BBC/Master/Electron Tube host
  • 1985,2004,2012,2015 Harston/Patch.src - JGH Spectrum ROM
  • 2014 6809Tube - 6809 Tube emulator
  • 2014 Brandy - Brandy Basic OS interface
  • 2013-2014 BBCBasic/C64 - Commodore 64 BBC BASIC
  • 2011,2013 CRC16.htm - Sample CRC-16 calculation code
  • 2011,2013 CRC32.htm - Sample CRC-32 calculation code
  • 2012 map.php - PHP map browser (src)
  • 2011 403.php - 403 error PHP directory index page (src)
  • 2011 index.php - Simple PHP directory listing (src)
  • 1989-2012 HADFS Source - HADFS filing system
  • 2010 BeebEm - Updated IDE interface in BeebEm
  • 2010 Tube/Serial - Serial Tube client and filing system
  • 2010 HDBIOS - Hard Drive BIOS for Acorn CP/M
  • 1989,2010 MIDI - BBC MIDI driver
  • 1989-2009 Z80CONV (L) - Z80 BBC BASIC for BBC I/O
  • 1992-2008 Z80Tube - Z80 Tube emulator
  • 2008 InfoZip - recommended -pp option for ZIP
  • 2008 CUBE/EURO414.src - Updated CUBE EuroBeeb host
  • 2007 OswFFv2.src (L) - Updated OSWORD &FF Tube transfer code
  • 1984-2003,2007 DefRoom - Jet Set Willy room editor
  • 2006 65Tube/Code064.src (L) - 65C12 65Tube client
  • 2006 SmallSYS/BIOS.ASM - Small ROMable CP/M BIOS
  • 2004 Spectrum/Printer.s (L) - Emulated Spectrum printer
  • 1984,2004 ExtCat.src - Spectrum extended catalogue
  • 1985-2004 DefChar - BBC font editor
  • 1985,2003 TALK - *TALK network messenger
  • 2002 Spectrum/ROMBox.s (L) - Emulated Spectrum ROMBox
  • 2002 BBCBasic/Host40.src - Spectrum BBC BASIC
  • 1983,1998 Teletext - ABZ Teletext suite
  • 1995 SerNet.s - Econet serial Networking driver
  • 1995 SerZ80.src (L) - Z80 Serial Tube client
  • 1989,1993 Mouse - BBC mouse driver
  • 1992 SoundSup - RISC OS SOUND/OSWORD 7 support
  • 1992 Flash Chat - Chinese update to Flash Chat
  • 1992 ZNOS/SJCCP.SRC - Replacement CP/M CCP
  • 1992 banner.c
  • 1992 Stock Market Terminal timeout patch
  • 1992 Updated RISC OS MailMan
  • 1992 Updated RiscIX mailman backend
  • 1992 SoftRTC soft real-time clock
  • 1990,1992 fdump.c, fdump.c
  • 1991 LCD - LCD display driver
  • 1985-1990 CharROM - BBC font ROM and utilities
  • 1990 disp.c
  • 1990 TubeZ80.src - Z80 Tube client
  • 1989 BBC user port keyboard driver
  • 1988 JGH/FREE.SRC (L) - CP/M FREE command
  • 1988 FontStyle font effects
  • 1988 editor.htm - Spectrum full screen line editor
  • 1986-1988 TTXT.s - Spectrum teletext display
  • 1987 Stock - dBase stock control project
  • 1987 device.htm - Spectrum device filenames
  • 1985,1987 MUGINS - Multi-user networking adventure
  • 1986,1987 SAVE.s - Spectrum blocked SAVE command
  • 1986 LOAD.s - Spectrum blocked LOAD command
  • 1986 lineedit - Spectrum simple line editor
  • 1986 Family.tap - Spectrum family tree database
  • 1986 ThickChr.s - Spectrum thick characters command
  • 1986 CharMake.s - Spectrum thick characters (docs)
  • 1986 RamDisk.s - Spectrum RAMDISK (docs)
  • 1986 Buffer.s - Spectrum buffered load and save
  • 1986 Blocks.s - Spectrum blocked load and save
  • 1986 CAT.s - Spectrum extended catalogue
  • 1985 ExtndKbd.src - ASCII keyboard driver
  • 1985 genskeys.s - ASCII keyboard driver
  • 1985 AscKbd.s - ASCII keyboard driver
  • 1985-1986 PrintOut - Windowed, multisized Spectrum Screen Printout
  • 1985-1986 DefChar - Spectrum font editor
  • 1985 BeebMail - BBC Econet email program.
  • 1985 Sampler - Low-speed continuous trace printer
  • 1985 Printout - Fast Spectrum Screen Print code
  • 1985 Printer.s - Spectrum printer driver
  • 1985 Spectrum/Info.src - Microdrive file info
  • 1985 TapeBlk.s - Blocked Spectrum tape formatter
  • 1984 JSWPRINT.s - Display JSW screen
  • Display GCQ map
  • Disassembly Examples

  • 2019 Acn6809.src System 6809 monitor
  • 2019 6502 24-bit 6502 TurboTube client
  • 2019 6502 Electron E2P client
  • 2019 COS System COS
  • 2018 DOS System 5 DOS
  • 2016-2018 MOS Acorn Atom ROMs
  • 1989-2018 MOS BBC and Master MOS
  • 2007 BBC/Host230.lst - BBC Tube host
  • 2005 M128/Host.lst - Master128 Tube host
  • 2007 Z80/OswFF.src - OSWORD &FF Tube transfer code
  • 1998 BBC/Host100.lst - BBC Tube host
  • 1985 JSW48.asm - Jet Set Willy
  • Circuit Diagrams

  • 1986,2010 1MbMem.gif - Z80 1M Memory Management Unit
  • 2008 emr.gif - EMR BBC MIDI interface
  • 2007 notes1.gif - Notes for a 6809 CoProcessor
  • 2005 28to32.gif - 28-pin to 32-pin ROM adaptor
  • 2005 chameleon.gif - Corrected BBC Chameleon interface
  • 2004 wdv4.gif - BBC IDE wiring diagram
  • 2004 pcbv4.gif - BBC IDE interface PCB
  • 2004 cdv4.gif - BBC IDE interface
  • 1989,2004 jgh.gif - JGH BBC MIDI interface
  • 1986,2003 ROMs.gif - Z80 ROMs
  • 1986,2003 ROM4.gif - 4-bank External Spectrum ROM
  • 1986,2003 ROM1.gif - 1-bank External Spectrum ROM
  • 1992 Joy2IC.gif - Spectrum joystick interface
  • 1992 Joy1IC.gif - Spectrum joystick interface
  • 1991 cdv1b.gif - BBC Border Colour Module
  • 1989 UserPort - BBC user port keyboard
  • 1987 IF1.gif - Spectrum Interface 1
  • 1986 ExtrnKbd.gif - External Spectrum keyboard
  • 1985 kbdmtx.gif - Spectrum matrix keyboard
  • 1985 Shift.htm - Additional Spectrum shifted keys
  • 1985 KbdJoy.gif - Spectrum ASCII keyboard/joystick interface
  • 1985 Printer.gif - Spectrum Centronics printer interface
  • 1985,1987 Backplane - Spectrum backplane
  • 1985,1987 Ctrl2.gif - Spectrum backplane
  • Documentation Examples

  • 2024 Documented NetFS file server 32-bit extensions.
  • 2002-2022 Census - Transcribed Whitby Census data
  • 1985-2022 BLib/Docs - BBC BASIC libraries
  • 2018-2020 ANSIParse - Parsing ANSI keycode sequences
  • 2018-2020 ANSI - ANSI console keycode sequences
  • 2018-2020 ANSI - ANSI console output sequences
  • 2014 6809CoPro - 6809 CoProcessor Technical Reference
  • 2000-2010 BeebWiki - BBC Computer Wiki
  • 2008 PDP11CoPro - PDP11 CoProcessor Technical Reference
  • 1990-2005 C/Lib - C libraries
  • 1992 HADFSMan - HADFS Reference Manual
  • Comp - Various computer documentation
  • BBC FAQ - BBC Computer documentation
  • Maps and Mapping

  • 2017 Scarborough Ward Review
  • 2017 A64east - Option to dual A64 between Barton and Malton
  • 2016 A64dual - Option to dual A64 between York and Barton
  • 2016 Sherburn - Proposed A64 Sherburn bypass
  • 2016 Pickering - A proposed A170 Pickering bypass
  • 2016 Yorkshire Parliamentary Review
  • 2014 Sheffield Ward Boundary Review Submission
  • 2012 Rillington - Proposed A64 Rillington bypass
  • 2011 Sheffield Parliamentary Boundary Review Submission
  • 2011 SouthRdShops2011.gif - South Road Shops 2011
  • 1995-2010 CityMaps - Sheffield Election Maps
  • 1989-2009 YofWhitby - Yards of Whitby
  • 2008 Rockall - Rockall
  • 2008 SouthRdShops2008.gif - South Road Shops 2008
  • 2008 HighStones.gif - High Stones Round Walk
  • 2006 Bridge2.gif - Claywheels Lane Bridge Layout
  • 2006 Bridge.gif - Claywheels Lane Bridge
  • 2006 Bypass.gif - Claywheels Lane Bypass
  • 2005 Hills - Seven Hills of Sheffield
  • 2005 Borders - Sheffield Borders
  • 2005 Cuthbert50k.gif - Cuthbert Bank
  • 2005 Cuthbert.gif - Cuthbert Bank
  • 2005 Enquiry on the Sheffield Parliamentary Boundary Review
  • 2005 stony.htm - Stony Walk
  • 2005 SouthRdCentre.gif - South Road
  • 2005 SecondarySm.gif - Sheffield Secondary Schools
  • 2004 ParlReview - Sheffield Parliamentary Review
  • 2004 Sheffield Parliamentary Boundary Review Submission
  • 2004 ParlReview - Sheffield Parliamentary Review
  • 2003 Comments on the Sheffield Ward Boundary Review
  • 2002 Sheffield Ward Boundary Review Submission
  • 2002 WardReview - Sheffield Ward Review
  • 2002 WardReview - Sheffield Ward Review
  • 2000 SouthRd110.gif - South Road version 1.10
  • 1996 SouthRd100.gif - South Road version 1.00
  • 1985 Inner/50k.gif - Inner Ring Road North Section
  • 1985 Inner/10k.gif - Inner Ring Road North Section
  • 1985 North3.gif - Inner Ring Road North Section
  • 1985 North2.gif - Inner Ring Road North Section
  • 1985 North1.gif - Inner Ring Road North Section
  • 1985 North.gif - Inner Ring Road North Section
  • OSGrid - OSGB Grid Maps
  • ChanIsles - Channel Islands
  • DonValley - Don Valley Railway
  • maps - Sheffield Ward Maps
  • Plans

  • 2023 15NorrisRd.gif - 15 Norris Road
  • 2010 2a-1f.gif - 2A Grape Lane
  • 2010 TheElmsGF.gif - The Elms
  • 2010 TheElms1F.gif - The Elms
  • 2009 CammSt/70a.gif - 70A Camm Street
  • 2009 CammSt/70.gif - 70 Camm Street
  • 2009 183gard.gif - 183 Freedom Road
  • 2008 356b.gif - 356B South Road
  • 2008 356a.gif - 356A South Road
  • 2008 358shop.gif - 358 South Road
  • 2007 358s07.gif - 358 South Road
  • 2004 187base.gif - 187 Freedom Road
  • 2000 356c00.gif - 356C South Road
  • 1999 356c99.gif - 356C South Road
  • 1999 356a99.gif - 356A South Road
  • 1986,1988 162-2f.gif - 162 Church Street
  • 1986,1988 162-1f.gif - 162 Church Street
  • 1986,1988 162-gf.gif - 162 Church Street
  • Other Publications

  • 2013 Registration.doc Electoral registration study
  • 2008 Appeal163.doc Planning Appeal, 163 Church Street, Whitby
  • 2007 1er mai 1707: Qui s'en souvient?, Genista Informations
  • 1992 Automata Life in the Fast Lane, Acorn User
  • 1991 GetPages Climb aboard the Carousel, Micro User
  • 1990 VLIST Suss out the Symbols, Micro User
  • 1990 PRLIST Program Lister, Micro User
  • 1989 MDUMP Inside Story, Micro User
  • 1988 The Treaty of Union of the Kingdoms of Scotland and England
  • Citations

  • 2018 Copy Protection in Jet Set Willy: developing a methodology for retrogame archaeology, Aycock & Reinhard
  • 1993 A History of Whitby, Andrew White