start

Welcome to the blog section of my website. Here you'll find my mostly useless information on various retro gaming computers and consoles and a few other hobbies…

Some useful shortcuts:

These pages have recently been changed or updated:

Pages which have been added most recently:

To Do List!

Things I have to write down to remember to do:

  • Commodore 64 DTV2
    • Finish case
    • Wire up connections & ports
    • Power supply
    • S-Video fix
  • Sinclair QL
    • Find low-profile DIP sockets
    • Finishing soldering
    • Remove revision 5 QL internal bodge wiring
  • Atari 65XE task #1
    • Desolder Pokey chip
    • Fit socket
    • Mount PS/2 keyboard socket to case
  • Atari 65XE task #2
    • Find retrobrite solution or alternative
    • Removing all keycaps and try to restore
    • Fit new case badge
  • Atari 520STe
    • Install alternative IDE driver for UltraSatan
    • Repartition SD cards as FAT16
  • ZX Spectrum
    • Fit Traco regulator & recheck
  • Amstrad CPC task #1
    • Find remaining components for PS2CPC interface
    • Solder up interface board
    • Flash microcontroller
    • Disassemble CPC & mount board
  • Amstrad CPC task #2
    • 3D print enclosure for 3.5 floppy drive
    • Find suitable 3.5 floppy (Samsung SFD-321B?)
    • Flash Parados ROM and install in Rombo box
  • MSX task #1
    • Disassemble case and check condition of caps - wavy video
2022/01/20 18:04 · john

Sinclair QL - Displaying Bitmaps & Text

Direct video memory

Video memory starts at 0x20000

In Mode 4 (512×256 4 colour) the memory is laid out in byte pairs (or words)

Red byte        | Green byte
0 0 0 0 0 0 0 0 | 0 0 0 0 0 0 0 0

Those 16 bits set a series of 8 contiguous horizontal pixels. The values of the Red and Green byte are AND-ed to get the final colour:

Red | Green | Result
1   | 0     | Red
0   | 1     | Green
1   | 1     | White
0   | 0     | Black

Example 1:

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

…would draw an 8 pixel horizontal line in Green.

Example 2:

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

…would draw an 8 pixel horizontal line in White.

Example 3:

1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1

…would draw 8 alternating pixels of Red and Green.

2021/12/14 21:01 · john

Sinclair QL Development Tools

There are a range of development tools and languages for the QL, including the built-in SuperBASIC. But I am more interested in using the same type of tools that I use for the NEC PC-98, MS-DOS, X68000 and more; a reasonably standards compliant C compiler, assembler and linker.

There are a few C compiler options for the Sinclair QL - which are summarised nicely here: http://www.dilwyn.me.uk/c/index.html

I touch on a few of them, including the one I am using (C68, in it's modern cross-compiler incarnation) below.

→ Read more...

2021/12/14 09:50 · john

Commodore PET - Software Development

The modern way… using optimising C cross-compiler on Linux.

This is easier than expected, just install CC65. On any modern Linux, this is as easy as:

$ apt-get install cc65

You then get cc65 (the C compiler), ca65 (the assembler) and ld65 (the linker). They work pretty much the same as any modern toolset:

  • Compile your .C source code using cc65, which will emit a .S assembly file
  • Assemble your .S assembly listing using ca65, which will emit a .o binary object file
  • Link your .o object files using ld65, possibly including the cc65 standard library, which will emit a .prg executable

Here's a simple makefile to get started with development. It assumes you have a ./src folder with your C source code and that you resulting binary will be placed in ./bin. Alter the paths to the location of the cc65 installation as appropriate:

# Names of the compiler and friends
CC	= cc65
AS	= ca65
LD 	= ld65

# libraries and paths
INCLUDES = --include-dir /usr/share/cc65/include
LIBS	 = --lib /usr/share/cc65/lib/pet.lib

# Compiler flags
ASM_FLAGS= --target pet
LDFLAGS	= --target pet
CFLAGS 	= --target pet -O -Oi -Or -Os

# What our application is named
TARGET	= game.prg

all: $(TARGET)

# The main application
OBJFILES = src/test.o

$(TARGET):  $(OBJFILES)
	$(LD) $(LDFLAGS) --obj $(OBJFILES) $(LIBS) -o bin/$(TARGET)
	
################################
# Main code
################################
src/test.s: src/test.c
	$(CC) $(CFLAGS) $(INCLUDES) src/test.c

src/test.o: src/test.s
	$(AS) $(ASM_FLAGS) src/test.s

###############################
#
# Clean up
#
###############################
clean:
	rm -f src/*.o
	rm -f bin/$(TARGET)

→ Read more...

2021/11/25 15:41 · john

Commodore PET 2001 - Restoration

I picked up this old PET-2001 from a clear-out of old electronic waste a colleague was doing at work. It had been stored in the back of a workshop along with old toner cartridges, ancient CRT monitors, 10base network switches, 286 laptops and more, that were all destined for waste disposal.

Although it looked pretty beat up, it seems to be mainly dirt/sticker residue - the case is in pretty good condition apart from a few minor scuffs on the corners.

→ Read more...

2021/11/25 10:43 · john
  • All posts - an archive of all pages on the site
  • Stats - wiki page statistics
  • start.txt
  • Last modified: 2021/11/17 09:50
  • by john