Today I was working on my own brew ISA card (wirewrapping). Did some mini modeling stuff. Sorted some pipetunes. And played around with my 8086.
Got it on a desk now, and replaced the harddisk with the CF card. Also got an old SoundBlaster working, so i wanted to see what of my old code could still run. Apparanty most code was compiled for 386/486 🙁 So i recompiled some stuff. Below a horizontal scroller example.
Meanwhile i got my new fans in for my NUC (Kodi player, it was making a hell of a noise due to bad ball bearings.
Adding a picture: Most used is loading a koala picture. Never done it like this before, luckily loads of retro lovers are posting code examples. There are a lot of tools now available on PC. (Windows and Linux)
Acme : compiler i’ve used for this example Retropixels : converting jpg into koala Exomizer : packing/compressing the C64 prg (16k to 5.4k) Sidreloc : relocator for SID files.
Exomizer command with effect: (NOTE on linux you have to use single qoutes!)
retropixels -r 64 --format prg bottom.jpg ; for a prg (not used)
retropixels bottom.jpg ; for a koala picture
exomizer sfx 0x080d bottom.prg -x 'lda $fb eor #$01 sta $fb beq skip dec $d020 inc $d020 skip:'
# 0x080d is the starting address
Code
!to "bottomsm.prg",cbm
; start prg
* = $0801
; header for sys auto start
!byte $0b, $08, $00, $00, $9e, $32, $30, $36, $31, $00, $00, $00
PICTURE = $2000
BITMAP = PICTURE
VIDEO = PICTURE+$1f40
COLOR = PICTURE+$2328
BACKGROUND = PICTURE+$2710
* = $080d
sei
lda #<irq
ldx #>irq
sta $314
stx $315
lda #$1b
ldx #$00
ldy #$7f
sta $d011
stx $d012
sty $dc0d
lda #$01
sta $d01a
sta $d019 ; ACK any raster IRQs
lda #$00
jsr $1000 ; Call music
lda #$00
sta $d020 ; Border Color
lda BACKGROUND
sta $d021 ; Screen Color
; Transfer Video and Color
ldx #$00
.LOOP
; Transfers video data
lda VIDEO,x
sta $0400,x
lda VIDEO+$100,x
sta $0500,x
lda VIDEO+$200,x
sta $0600,x
lda VIDEO+$2e8,x
sta $06e8,x
; Transfers color data
lda COLOR,x
sta $d800,x
lda COLOR+$100,x
sta $d900,x
lda COLOR+$200,x
sta $da00,x
lda COLOR+$2e8,x
sta $dae8,x
inx
bne .LOOP
; Bitmap Mode On
lda #$3b
sta $d011
; MultiColor On
lda #$d8
sta $d016
; When bitmap adress is $2000 ; Screen at $0400 ; Value of $d018 is $18
lda #$18
sta $d018
cli
.MYLOOP
jmp .MYLOOP
irq
lda #$01
sta $d019 ; ACK any raster IRQs
jsr $1003 ;Play the music
jmp $ea31
; Data parts with headers cut
* = $1000
!binary "bottom1000.sid" ,, $7c+2
* = PICTURE
!binary "bottom.kla",,2
Started with a example from https://codebase64.org/
But that didn´t work (see movie clip)
looking at the sid info:
Title Bottom
Author Richard Bayliss
Released 2011 The New Dimension
Load Address $8000
Init Address $8000
Play Address $8003
Number of tunes 1
Default tune 1
Speed $00000000
SID Model 8580
Clock PAL
File Format PSID
Format Version 2
BASIC false
PlaySID Specific false
I saw that I have to move the load/init/play address.
Luckily there is sidreloc !
wget https://hd0.linusakesson.net/files/sidreloc-1.0.tgz
tar xzvf sidreloc*
cd sidreloc
make
Got some new roms in. These are for my 8088/8086 the 6502 computer and C64 cartridges.
While I seldom had any problem writing to these, now I could not write one! Erasing didn´t give me an error?!?
henri@zspot:~/projects/wozmon8088/mon8086$ minipro -w mon8086.rom -p AT28C64
Found TL866II+ 04.2.129 (0x281)
Warning: Firmware is newer than expected.
Expected 04.2.128 (0x280)
Found 04.2.129 (0x281)
Erasing... 0.02Sec OK
Writing Code... 9.57Sec OK
Reading Code... 0.12Sec OK
Verification failed at address 0x0001: File=0xAA, Device=0xFF
Whenever you get this, check the markings of the chip!
Mine are AT28C64b !!!!!!!!!!!
Change your command accordingly. Another thing to watchout for is write protect, look at the commands
I really like GlaBios for my 8088, so today I got my Laser XT/3 8086 machine from the attic.
Mmm TWO ROM’s thats interesting
Looking futher in the schematics I found this. Apparantly there is a 8K ROM configured in a D0-D7 + D8-D15 setup. (16 bits)
Found a technical manual, this is a excerpt.
In Turbo XT, there are two 28-pin sockets for ROM, one of them is occupied by a 2764 which stored the BIOS (Basic Input Output System). The other empty socket is used to house a 32K ROM, such as the BASIC ROM
And about the XT/3 version which I have.
In Turbo XT /2 and Turbo XT /3, there are two 28-pin sockets for ROM, both of them are occupied by 2764 which stored the BIOS. The contents of the two 2764 are identical. One of them contribute the ODD Byte to the system and the other EVEN Byte. Together they support 16 Bit BIOS access.
This could be an interesting chat with Greg ..
Meanwhile i’m going to look how to split a rom into odd/even. Maybe i have to write a little python program for this.
Well, thats enough for today.
Lets fix my Cat S60 Flir phone, so i can track the hedgehog in our garden. (Battery replacement and powerbutton fix)
Hard to remove backcover and a sh*tload of screwsAt least the battery replacement was a breeze
I fixed several phones before, (broken screen. touch not working). But I hate how some manufacturers build them.
It’s fitted with a 64Mb card. Note: the XT at my parents place had a 20Mb harddisk!
It can boot / emulate a harddisk with MsDos installed.
Replace an old or dead hard drive in a vintage PC with a hassle-free, reliable CompactFlash card! Plug-in and go! (well, as much as you can expect with these old machines)
Brand new! Built and tested.
Open Source!
This bootable expansion card provides a Compact Flash card interface to 8-bit ISA systems such as PC/XT. Typically paired with a 64MB or 1GB CF card. Silent, and more reliable than an old mechanical hard drive.
By default the XT-IDE BIOS comes configured for: XT(and higher)-compatible BIOS. Use the XT-CF-Mini’s IDE interface at 300h, no IRQ. Boot first hard drive unless user presses A for floppy. Any of the above can be changed with the simple DOS utility and built-in switches.
Switches and jumpers control: I/O port for the 8-bit IDE (CF) interface I/O port for the Option ROM Option ROM Enable Option ROM Write-protect
Note: Not all CF cards will work. Most work, but some don’t adhere to the CF standard fully, and won’t work. The full size XT-IDE card with an IDE>CF adapter, is compatible with more CF cards.
https://github.com/Bluelavasystems/XT-IDE-CF-MINI XT-CF-Mini Pcb designed by Monotech Pc’s and released opensource GNU General Public License v3.0
It is from Blue Lava Systems, who took the schematics from Sergey Kiselev, who took the design from James Pearce.
The harddisk extension is XT-IDE Universal BIOS. And can be flashed.
ROM address D0000, and IO port 300h does not need a IRQ
After installing this on my 8088/v20 motherboard I tested this with GlaBIOS, but it gave me one beep, and after that it woukd reset the machine.
Testing with the original Phoenix Bios and PCXtBios worked for me.
UPDATE: Bad contacts and a eeprom I didn’t trust. Greg gave me version 0.2.5 of Glabios, which I burned to a new eeprom. And I cleaned some contacts. (Checksum rom changed with every reset)
The Card and my extension bios both run with all bios-ses
While doing some wood work, routing and painting. I managed to have some time to experiment with my PC200.
The Amstrad PC20 / Sinclair PC200 was a home computer created by Amstrad in late 1988. The machine was available in two versions, Sinclair PC200 and Amstrad PC20. (US/UK?)
The limited CGA graphical capabilities and PC speaker sound output were greatly inferior compared to other home computers of the time. I has a modulator to connect a TV and could do hercules graphics on a sub-9 interface.
I got this computer a long time ago. (I still have to post pictures of my collection and getting them out of storage)
Info about this machine:
Build in 1988, Intel 8086 @ 8Mhz 512KB memory 3.5″ Floppy drive TV Modulator Pal 640×200 CGA and Hercules
PC200
It still had a floppy in its drive, NIMMO Disk Juli 1992
Apparently this machine was used with a modem to do some interviewing for the University Amsterdam using Telepanel/Interview!
The ROM has several language options which you could set with dipswitches.
Debug part of ROM
Besides the machine having a “amiga” like case, it has two ISA slots behind a little trapdoor! How cool is that!
Dirty view of the ISA slots (One containing a RTC card)
Enabling only CGA on the machine and plugging in a Hercules card, you can do Multiscreen! CGA and MDA addresses don’t conflict! And if the ROM supports it .. dual screens baby!
Left Hercules and Right CGA
I used a debug command to fill the right screen
f b800:0 1000 ‘f a s h’
Cool little machine
Running old masm/precompiled machine code crashes. I’ll have to look into that.
Under hardware in domoticz install the mqtt broker. Configure your mqtt server (mine is mosquitto) Add devices to floorplans to send these to Mosquitto
Now i can see the topics in MQTTExplorer
Install the home assistant websocket palette in NodeRed
Configure the nodes like above
These are some example flows (I’ll put the function code below)
Above are the NAMED entities in Home Assistant
CODE
//Code for NR temperature filtering on domoticz IDX
//A door censor uses nvalue instead of svalue1
//Humidity can be svalue2
//Check the Mqtt payload in MQTTExplorer which to use!
var varidx = msg.payload.idx;
var varnvalue = msg.payload.svalue1;
if(varidx == 3108)
{
msg.payload = {};
msg.payload = varnvalue;
return msg;
}
Example of the trigger node. When a temperature sensor battery dies, and no new data arrives- in 1 hour, I get a pushover warning. (use pushbullet/email/TV notification whatever you want)