Roalt helped me to get my first Linux system running.
I don’t know if it was a floppy install or cd-roms.
I remember buying cdrom sets like these at our local computershop for later installs.
A year later my system was reinstalled with Slackware by Gmc. Although Roalt helped me getting started with Linux, i’ve learned a lot from Gmc.
First time i saw an Unix system was at my friend Richard when i was 16-ish. It was a commercial unix system he had on loan. Later he installed Minix or something simulair. This was all pre-linux
I used the Slackware distribution for a long time, but tried others also.
List of Linux distributions and other Unix variants i remember.
Internet using a 14k4 modem paying by the minute. About 0,08 cents per minute. (Without your phone costs!) Thats 2456 hfl (dutch guilders) per month (24*7)! That was using the landline, nobody could touch the regular phone. I had to tape the phone down in our Student residence.
Later I paid for a personal ISDN line. Much faster, but with my friend Aloha we made a kickdailer. This would start the internet connection when needed. Some rogue processes and bad scripting later .. We got a bill for 1000+ guilders! It made many short connections, and stopped. We didn’t believe this bill we got, so we requested a specified bill on paper. When it arrived, it was a pile of paper 30cm high! Thousands of connections to the provider. Damn
Back to the year 1996 There was not yet a usable google. Only a stanford.edu prototype. I was using altavista as my main search engine
Above shows a simulated 14k4 modem. (just make a bandwidth profile using settings you want to test) First site is my tunesearch, made with low bandwidth in mind. Second is my current (2024) site .. about 6M for a page with many images.
Verbruiksinformatie
Verbruiksinformatie van fash
Specificatiepagina
Specificatie pagina van abonnee: fash 31 Juli 1996
Startdatum huidig abonnement: 11 Oktober 1995
Abonnementsgeld per maand: 29,95
Aantal vrije inlog uren per maand: 8:00 uur
Extra verbruikskosten per uur: 3,75
Einddatum huidig abonnement: Onbepaald
Aantal vrije inlog uren van Juli 96: 8:00 uur
Aantal gebruikte inlog uren Juli 96: 25:27 uur
Aantal resterende vrije inlog uren van Juli 96: 0:00 uur
Al in rekening gebracht
10 Juli 1996 12 Juni 1996 14 Mei 1996 12 April 1996
(Nog) niet afgerekend
Juli 1996
(Nog) Niet afgerekende bedragen Juli 1996
abonnement: hfl. Is al afgerekend
Extra verbruik:
Let op:
Het overzicht is bijgewerkt tot 30/07/96.
Het gebruik na die datum is dus nog niet in het overzicht opgenomen.
Inlogsessies:
Datum Tijdstip Kosten Aantal
van in minuten
inloggen hfl.
30/07/96 17:56:00 0,88 14
29/07/96 22:57:00 0,19 3
24/07/96 22:23:00 2,69 43
24/07/96 22:13:00 0,56 9
23/07/96 17:57:00 7,31 117
22/07/96 21:28:00 4,75 76
22/07/96 19:34:00 1,25 20
22/07/96 19:30:00 0,31 5
22/07/96 18:31:00 1,25 20
21/07/96 21:45:00 1,06 17
20/07/96 19:41:00 0,13 2
20/07/96 19:30:00 0,06 1
19/07/96 23:39:00 0,31 5
19/07/96 22:58:00 1,94 31
18/07/96 22:11:00 0,19 3
18/07/96 21:50:00 0,44 7
17/07/96 22:04:00 2,13 34
17/07/96 17:59:00 2,63 42
16/07/96 18:51:00 0,19 3
16/07/96 18:33:00 0,19 3
15/07/96 19:00:00 3,44 55
15/07/96 18:33:00 1,50 24
14/07/96 01:51:00 0,75 12
13/07/96 22:48:00 7,63 122
13/07/96 01:16:00 10,00 160
13/07/96 01:13:00 0,13 2
13/07/96 00:59:00 0,88 14
12/07/96 21:43:00 12,25 196
12/07/96 17:41:00 0,19 3
11/07/96 18:20:00 0,25 66
10/07/96 22:25:00 0,00 43
In rekening gebracht
Datum verwerkt: 10 Juli 1996
Abonnement(en): hfl. 29,95
Extra verbruik: hfl. 10,55
Totaal gefaktureerd: hfl. 40,50
Betreft abonnementen:
Maand Bedrag
Juli 29,95
Betreft inlogsessies:
Datum Tijdstip Kosten Aantal
van in minuten
inloggen hfl.
Maand: Juli
09/07/96 23:05:00 0,00 2
09/07/96 22:52:00 0,00 3
09/07/96 22:24:00 0,00 2
09/07/96 22:19:00 0,00 4
09/07/96 21:54:00 0,00 24
08/07/96 22:19:00 0,00 53
08/07/96 20:47:00 0,00 30
07/07/96 18:26:00 0,00 55
06/07/96 23:30:00 0,00 74
06/07/96 23:13:00 0,00 4
06/07/96 00:37:00 0,00 3
05/07/96 23:51:00 0,00 15
05/07/96 18:57:00 0,00 14
05/07/96 18:43:00 0,00 15
03/07/96 21:46:00 0,00 6
03/07/96 21:37:00 0,00 3
03/07/96 21:31:00 0,00 2
02/07/96 21:43:00 0,00 15
02/07/96 20:26:00 0,00 46
01/07/96 17:09:00 0,00 5
Maand: Juni
28/06/96 19:52:00 1,13 18
28/06/96 19:46:00 0,13 2
27/06/96 19:49:00 1,38 22
27/06/96 19:20:00 0,38 6
26/06/96 19:08:00 0,13 2
26/06/96 18:52:00 0,19 3
24/06/96 20:41:00 0,31 5
24/06/96 20:35:00 0,38 6
23/06/96 00:23:00 2,13 34
22/06/96 15:11:00 0,50 8
21/06/96 21:29:00 0,13 2
21/06/96 19:05:00 0,56 9
21/06/96 18:22:00 0,63 10
20/06/96 17:37:00 0,13 2
20/06/96 17:15:00 0,19 3
18/06/96 22:24:00 2,25 56
18/06/96 22:13:00 0,00 12
18/06/96 21:18:00 0,00 55
16/06/96 23:15:00 0,00 3
16/06/96 21:01:00 0,00 113
15/06/96 18:50:00 0,00 11
15/06/96 18:05:00 0,00 35
13/06/96 22:57:00 0,00 9
13/06/96 22:00:00 0,00 3
13/06/96 21:14:00 0,00 29
In rekening gebracht
Datum verwerkt: 12 Juni 1996
Abonnement(en): hfl. 29,95
Extra verbruik: hfl. 23,07
Totaal gefaktureerd: hfl. 53,02
Betreft abonnementen:
Maand Bedrag
Juni 29,95
Betreft inlogsessies:
Datum Tijdstip Kosten Aantal
van in minuten
inloggen hfl.
Maand: Juni
05/06/96 23:31:00 0,00 2
05/06/96 23:02:00 0,00 7
03/06/96 23:27:00 0,00 4
03/06/96 22:02:00 0,00 70
03/06/96 21:50:00 0,00 56
03/06/96 21:57:00 0,00 3
03/06/96 21:54:00 0,00 3
02/06/96 23:52:00 0,00 24
02/06/96 21:41:00 0,00 11
01/06/96 00:00:00 0,00 10
31/05/96 23:17:00 2,75 43
Maand: Mei
31/05/96 23:03:00 0,75 12
29/05/96 23:17:00 0,19 3
28/05/96 23:34:00 0,13 2
28/05/96 22:43:00 0,81 13
27/05/96 22:22:00 6,13 98
27/05/96 22:08:00 0,44 7
24/05/96 21:46:00 0,75 12
24/05/96 21:14:00 1,56 25
24/05/96 21:05:00 0,56 9
24/05/96 19:14:00 4,25 68
23/05/96 21:29:00 0,56 9
23/05/96 20:39:00 3,19 51
22/05/96 23:35:00 1,00 67
19/05/96 22:46:00 0,00 83
19/05/96 21:59:00 0,00 7
19/05/96 21:47:00 0,00 3
16/05/96 19:44:00 0,00 3
In rekening gebracht
Datum verwerkt: 14 Mei 1996
Abonnement(en): hfl. 29,95
Extra verbruik: hfl. 14,01
Totaal gefaktureerd: hfl. 43,96
Betreft abonnementen:
Maand Bedrag
Mei 29,95
Betreft inlogsessies:
Datum Tijdstip Kosten Aantal
van in minuten
inloggen hfl.
Maand: Mei
11/05/96 20:04:00 0,00 32
11/05/96 00:12:00 0,00 40
10/05/96 22:43:00 0,00 55
08/05/96 22:21:00 0,00 30
07/05/96 20:46:00 0,00 9
04/05/96 22:14:00 0,00 28
04/05/96 21:53:00 0,00 21
04/05/96 21:29:00 0,00 20
02/05/96 23:26:00 0,00 98
Maand: April
30/04/96 00:31:00 7,38 118
29/04/96 23:15:00 4,75 76
25/04/96 21:59:00 1,88 71
23/04/96 23:09:00 0,00 15
22/04/96 23:08:00 0,00 3
20/04/96 09:21:00 0,00 51
19/04/96 18:28:00 0,00 66
18/04/96 23:44:00 0,00 2
17/04/96 22:59:00 0,00 169
15/04/96 21:09:00 0,00 3
13/04/96 01:44:00 0,00 4
In rekening gebracht
Datum verwerkt: 12 April 1996
Abonnement(en): hfl. 180,67
Extra verbruik: hfl. 41,27
Totaal gefaktureerd: hfl. 221,94
Betreft abonnementen:
Maand Bedrag
November 29,95
Oktober 0,97
April 29,95
Maart 29,95
December 29,95
Februari 29,95
Januari 29,95
Betreft inlogsessies:
Datum Tijdstip Kosten Aantal
van in minuten
inloggen hfl.
Maand: December
29/12/95 18:41:00 0,00 13
29/12/95 18:25:00 0,00 12
29/12/95 17:45:00 0,00 17
Maand: April
11/04/96 00:27:00 0,00 103
10/04/96 15:59:00 0,00 12
10/04/96 15:24:00 0,00 11
Maand: Maart
29/03/96 20:32:00 3,05 37
28/03/96 21:34:00 2,06 25
28/03/96 21:19:00 1,24 15
28/03/96 21:14:00 0,08 1
27/03/96 22:02:00 4,21 51
26/03/96 17:59:00 1,65 20
26/03/96 17:37:00 1,57 19
25/03/96 20:56:00 2,15 26
25/03/96 19:54:00 4,79 58
24/03/96 14:09:00 2,15 26
24/03/96 13:52:00 0,58 7
24/03/96 12:25:00 3,96 48
23/03/96 22:28:00 7,51 91
23/03/96 21:10:00 6,27 76
23/03/96 20:17:00 0,00 2
23/03/96 18:17:00 0,00 65
23/03/96 14:01:00 0,00 31
23/03/96 00:46:00 0,00 61
22/03/96 22:24:00 0,00 10
22/03/96 22:16:00 0,00 7
22/03/96 22:07:00 0,00 9
22/03/96 21:38:00 0,00 29
22/03/96 21:28:00 0,00 10
22/03/96 20:43:00 0,00 40
22/03/96 16:39:00 0,00 41
22/03/96 16:36:00 0,00 2
22/03/96 16:24:00 0,00 11
19/03/96 19:15:00 0,00 8
19/03/96 18:40:00 0,00 34
Maand: Februari
02/02/96 19:04:00 0,00 41
Maand: Januari
12/01/96 21:18:00 0,00 2
05/01/96 23:18:00 0,00 29
I came across a really old post from 1996. It was from a good friend of mine Martin.
It was a while before this post, which was by Fido mail, that he came to our house with a great idea. (1993)
FidoNet is a worldwide computer network that is used for communication between bulletin board systems (BBSes). It uses a store-and-forward system to exchange private (email) and public (forum) messages between the BBSes in the network, as well as other files and protocols in some cases. (Dial-up!)
He took a record player and connected leds to it. Connecting this to a C64 and synching the speed of rotation and the output, he wanted to display text on this.
Probably this was the mistery tape i mentioned here:
So he did the most of the programming, i made a version of my own and added a sync bit to it. This enabled it to get the scolling text more “in place”
Some pictures from Sepp’s website
--- Terminate 3.00/Pro
* Origin: Sepp Mail Development Department (2:283/334.13)
Ä Mail van en voor mij ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄBewarenÄ
Msg : 781 [1-3089] Loc
From : Martin ******** 02-Apr-96 00:59:51 2:283/334.13
To : Henri Aanstoot 2:283/334
Subj : Hardware scroller
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄSEPP.INTERESSANTÄ
* Written in: TUKKER=PROAT
Ha die Henri!
MM>> Heb je de laatste KIJK al gezien??? Die eikels hebben onze 8-ledjes-
MM>> hardware-scroller na zitten maken, alleen scrollt-ie bij hunnie niet
MM>> in de vorm van een cirkel, maar hebben ze mijn ruitenwisserversie
MM>> gebruikt... En het enige wat-ie doet is de tijd aangeven...
HA> Bah, wat een na-apers.
Ja, vreselijk...
HA> Maar die van ons was toch beter!
Inderdaad... kunnen ze nog wat van leren... :-)
MM>> Btw is jouw prototype nog operationeel??? De mijne niet, omals de
HA> Nee, ik wil heb eigenlijk opnieuw bouwen! (was ik al een tijdje van plan)
Met full-colour LEDs, 16 hoog???
MM>> elastiekjes die ik heb gebruikt in de loop der tijd helemaal poreus
MM>> We moeten maar weer eens iets compleet revolutionair nieuws uitvinden,
MM>> ik heb nog wel een paar innovatieve ideejen...
HA> Als je gaat kijken wat ze allemaal van mijn gejat hebben .......
Nou, vertel...
To the loo,
Martin ********
Below one of the two setups we made to control our TV. The kind of TV which was big, ungly and without remote.
This version used 3 strings. One for moving a little wooden piece to the left, one for moving to the right and one for pressing a bunch of nails agains a touch/capacitive button. (We only used channel 1 till 4 i believe)
The other version used a string per channel. A piece of metal, with at the end of it a little alumium-foil ball
This year i’ve been really into assembly on Intel x86 machines. With EDK we made some demo’s and generally trying to find the limits of the machines we had.
Funny story, edk made a program which changed the palette every scanline (if memory serves me right), while running the program and looking at the screen the colors faded to grayscale. (Something with run-away tables) We look at eachother and said: We must have been using up all colors, we need to refill the graphics card.
I previously made a copperbar alike thingy on a hercules system. (Have not seen them before on a pc back then ) But with below program, i could display pictures which removed the borders.
Below a nsfw video example (pass protected), but a simplified example in pictures below that.
Test image i’ve used on a 320×200 screen resolution
name split_screen
.286
parm_vert equ 0
data segment
intmsk db ?
oldvidtab db 18h dup (?) ;actuele video-parameters
newvidtab label byte
;HORIZONTAAL
db 0
db 12
db 12
db 0
;VERTIKAAL
db 0
db 5
db 5
db 0;-40
;
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
db 0
; REGISTER 13H (OFFSET)
db 0
;
db 18h dup (0)
data ends
stack segment stack
dw 128 dup (?)
stack ends
code segment
assume cs:code,ds:data
cols label byte
set_scrparms:
mov dx,3d4h
mov al,11h
out dx,al
inc dx
in al,dx
and al,7fh ;clear bit 7: enable writes to vga reg 0..7
out dx,al
dec dx
mov al,13h ;offset register
out dx,al
inc dx
in al,dx ;get actual value
add al,4
out dx,al
ret
;
; RE-INIT DISPLAY ROUTINE
;
get_oldvidparms:
mov dx,3d4h
mov cx,18h ;18h registers
mov di,offset oldvidtab
mov bl,0 ;begin met register 0
govp1:
mov al,bl ;register index
out dx,al
inc dx ;3d5
in al,dx ;get actual register content
dec dx
mov [di],al
inc di
inc bl ;volgend register
loop govp1
mov si,offset oldvidtab
mov di,offset newvidtab
mov cx,18h
donewparms:
mov al,[si]
add al,[di]
mov [di],al
inc si
inc di
loop donewparms
ret
set_newvidparms:
mov dx,3d4h
mov cx,18h ;18h registers
mov si,offset newvidtab
mov bl,0 ;begin met register 0
snvp1:
mov al,bl ;register index
out dx,al
inc dx ;3d5
mov al,[si]
inc si
out dx,al ;set register value
dec dx
inc bl ;volgend register
loop snvp1
ret
;
; MAIN ENTRY POINT
;
init:
mov ax,data
mov ds,ax
in al,21h
mov intmsk,al
cli
mov al,11111101b
out 21h,al
sti
mov ax,13h
int 10h
;extend video-memory to 256kb or more
mov dx,3ceh
mov al,06h
out dx,al
inc dx
in al,dx
and al,0f3h
out dx,al
;
mov ax,0a000h
mov es,ax
call set_scrparms
call get_oldvidparms
call set_newvidparms
mov dx,3cch
in al,dx
and al,03fh
mov ah,parm_vert
ror ah,2
or al,ah
mov dx,3c2h
out dx,al
;
;
push ds
mov ax,5000h
mov ds,ax
;
; pallet
;
setpal:
mov dx,3c8h
xor al,al
out dx,al
inc dx
mov cx,256*3
mov si,100h
cld
rep outsb
;disp picture routine
mov ax,6000h
mov ds,ax
mov si,0
mov di,0
mov ax,0
mov cx,352*8
cld
rep stosw
mov si,di
mov cx,8
cld
rep stosw
mov bp,170
mov si,di
hiero:
mov cx,320
cld
rep movsb
mov ax,0
mov cx,16
cld
rep stosw
mov si,di
dec bp
jnz hiero
xor si,si
xor di,di
mov ax,0b000h
mov es,ax
mov ax,07000h
mov ds,ax
mov cx,3000
cld
mov ax,0
rep stosw
mov ax,0a000h
mov es,ax
mov ax,6000h
mov ds,ax
mov di,0
mov si,di
rhiero:
push ax
mov ah,8
int 21h
pop ax
std
mov cx,-1
rep movsb
xor si,si
xor di,di
mov ax,0b000h
mov es,ax
mov ax,07000h
mov ds,ax
mov cx,3000
cld
rep movsw
mov ax,0a000h
mov es,ax
pop ds
;
mloop:
mov dx,3dah
wtv1:
in al,dx
test al,8
jnz wtv1
wtv2:
in al,dx
test al,8
jz wtv2
mov ah,1
int 16h
jz mloop
xor ah,ah
int 16h
exit:
mov ax,3
int 10h
cli
mov al,intmsk
out 21h,al
sti
mov ax,4c00h
int 21h
code ends
end init
I think i started programming in assembly on PC around 1992. I learned a lot from my friend Edk. Who was a assembly wizard just like Sepp. Reverse engineering routines, writing emulators etc.
We made several demo’s like the one below. It must have been around 1994.
Dos emulator running our demo from 1994
Just after this one, we started a demo which could run from a 5.25″ boot disk. No dos operating system. When starting your pc, booting from a floppy you would get a starfield, with some text (from a bootsector) ,after that it would load the next sectors, wich contained the rest of the demo. Due to directly programming soundcard and graphics card, this was hard to pull off on different kinds of hardware.
Demo gfx
Example of assembly code for a effect.
NAME plasma
.model small
.386
.data
colshades db +001h, 001h,+001h
db -001h,-001h,-000h
db +000h,-000h,-001h
db -000h,-000h,+000h
rgb_cols db 256*3 dup (?)
cosptr dw 0
sinptr dw 30
.code
demo proc near
show proc near
xor di,di
mov bp,200
show1:
mov cx,320
mov si,0
mov dx,0
show0:
; push ds
; mov ax,7000h
; mov ds,ax
; lodsb
; pop ds
call getsincos
add cosptr,1
stosb
loop show0
; add dx,1
add sinptr,1
dec bp
jnz show1
ret
show endp
effect proc near
; add cosptr,1
; add sinptr,0
ret
effect endp
getsincos proc near
push di
push ds
mov si,cosptr
mov di,sinptr
mov ax,7000h
mov ds,ax
lodsb ;get cos value
cmp si,320 ;einde costab?
jb cosok
xor si,si
lodsb
cosok:
mov ah,al
xchg si,di
lodsb ;get cos value
cmp si,320 ;einde costab?
jb sinok
xor si,si
lodsb
sinok:
xchg si,di
pop ds
mov cosptr,si
mov sinptr,di
mov dx,0
mov dl,al
add dl,ah
adc dh,0
shr dx,1
mov al,dl
; xor al,ah
; add al,ah
pop di
ret
getsincos endp
setcols proc near
push es
push ds
pop es
mov di,offset rgb_cols
mov si,offset colshades
mov dl,0 ;start with black
mov bh,0
mov bl,0
mov bp,4
set_rgball:
mov cx,64-1
set_rgb:
mov al,dl
stosb
mov al,bh
stosb
mov al,bl
stosb
mov al,[si]
add dl,al
mov al,[si+1]
add bh,al
mov al,[si+2]
add bl,al
loop set_rgb
add si,3
dec bp
jnz set_rgball
pop es
ret
setcols endp
setrgb proc near
mov dx,3c8h
xor al,al ;start with colour 00h
out dx,al
inc dx
mov si,offset rgb_cols
mov cx,256*3
rep outsb ;set 256 RGB values
ret
setrgb endp
wvtr proc near
mov dx,3dah
wtv:
in al,dx
test al,8
jz wtv
ret
wvtr endp
start:
cld
mov ax,@data
mov ds,ax
mov ax,0a000h
mov es,ax
mov ax,13h
int 10h ;screen 320x200 256 colours
call setcols
call setrgb
call show
mov al,11111101b
out 21h,al ;disable int
mloop:
call wvtr
; call show
call effect
mov ah,1
int 16h
jz mloop
xor ah,ah
int 16h
exit:
xor al,al
out 21h,al ;enable int
mov ax,3
int 10h ;screen 80x25 text
mov ax,4c00h
int 21h ;back to DOS
demo endp
end start
With the pipeband i was at that time, we where asked to perform with Luv. Exciting day. Shame we had to mimic playing the melody. Parts where recorded a few hours before the show.
I was one of the few who could actually play the melody.
Around 1993 i bought Myst, a adventure game. It was really a masterpiece, a interactive rendered world with great moodsetting music scores.
When looking at documentaries like these: https://www.youtube.com/watch?v=EWX5B6cD4_4 It almost didn’t happen, i was oblivious to this fact ..
Many hours i spent playing this game, sometimes together with Erik.
I loved the puzzles and the rendered transitional movies.
After the first i bought all follow-ups.
I spend hours playing them, first with Erik and later with Monique and Coline taking turns at the controls. Solving the mysteries together was a lot of fun.
1993 – Myst
1997 – Riven
2001 – Myst III: Exile
2003 – URU: Ages Beyond Myst
2004 – Myst IV: Revelation
2005 – Myst V: End of Ages
There is also a parody version called Pyst
After that i found realmyst a remake of the first with better graphics. We played Uru: Ages beyond myst or Uru Live after that. This one had free movement i recall.
I wanted to create a point and click/walk around version myself. My first idea was taking pictures in my fathers car driving from Holten to Laren where Martin lived. Taking pictures (with a analog camera) on the way. Scanning those analog pictures and making a point and click thingy was something i only realized many years later.
I made a website with pictures of the house. People could click and move though my house. I made the path which was obvious in advance, when people clicked a new area or object, they got a popup where you could request the path or object information.
(i found the source code – now i have to make a webserver with a really old php version to get screenshots)
I never came around it to render environments myself .. see my post about rendering.
My Myst IRL in canada (2015)
"If something is worth doing, it's worth overdoing."