Start

heckmeck!

Nerd content and
cringe since 1999
Alexander Grupe
Losso/AttentionWhore

Lütt un’ Lütt

In 2013 I dusted off the old Amiga 1200 and set out to program something in assembly language again, after an Amiga coding hiatus of 16 years. This time, thanks to the plethora of Amiga tutorials, references, source code collections, and especially online communities (most notably the English Amiga Board and the Amiga Demoscene Archive’s forum) things progressed rather quickly.

First power-on after 15 years

This led to my first serious Amiga demo (serious as in serious programming attempt, not the content), and it won the combined low-end demo competition at the Ultimate Meeting 2013. Cheap sauflied adaptation for the win!

Note: Currently (Aug 2023), the “fixed” version linked below is missing a lot of graphics under OCS. Somebody should fix that, some time. Runs fine under AGA, though. Sorry!

Fun fact: The singing is not done via narrator.device, at least not directly. I let AmigaBASIC sing in all the single notes in the right pitches, sampled the sound output from WinUAE and stitched everything together in Audacity.

Here’s the BASIC code, complete with the special phoneme syntax required for more-or-less intelligible speech output:

aisl= 65
c   = 65.4
cis = 69.3
d   = 73.4
dis = 77.8
e   = 82.4
f   = 87.3
fis = 92.5
g   = 98
gis = 103.8
a   = 110
ais = 116.5
h   = 123.5
c2  = 130.8
cis2= 138.6
d2  = 146.8

FOR i=0 TO 8: READ how%(i): NEXT i
DATA 87.3,1,120,0,22200,64,10,0,0

ad& = 65536& * &HBF + &HE001
p = PEEK(ad&)
POKE ad&, (p AND 253) + 2

PRINT "l-u-l, go"

GOTO hier

REM F  DD D   F   D D   D
REM In HH nen man L und L
n=f:  s$="IHIHNNN": GOSUB sach
n=d:  s$="/HAHAHAHMMMMMMBUWRG NAEAENNT": GOSUB sach
n=f:  s$="MAHAHN": GOSUB sach
n=d:  s$="LLERERT, UHUHNN LLERERT": GOSUB sach

REM D FF   D#  D C D D#
REM n Kuml und n kln B
n=d:  s$="NEHNN": GOSUB sach
n=f:  s$="KERERMMMMMMEHL": GOSUB sach
n=dis:s$="UHUHNND": GOSUB sach
n=d:  s$="AYNN": GOSUB sach
n=c:  s$="KLAYNNN": GOSUB sach
n=d:  s$="NNNEHS": GOSUB sach
n=dis:s$="BIYIHAER": GOSUB sach

REM G  E    E  E
REM da schm so gu
n=g:  s$="DAAS": GOSUB sach
n=e:  s$="SHMMAEKT, ZOWOWOW GUWUWT": GOSUB sach

REM G E E  E
REM u i fü mi
n=g:  s$="UHUHND": GOSUB sach
n=e:  s$="IHIHSST, FERER MIHIH/C/C": GOSUB sach

REM E G  F# F E  F
REM n le be e li xir
n=e:  s$="MAYIHN": GOSUB sach
n=g:  s$="LLEHEHEH": GOSUB sach
n=fis:s$="BEHEHNS": GOSUB sach
n=f:  s$="AELLL": GOSUB sach
n=e:  s$="LLLIHIHK": GOSUB sach
n=f:  s$="SSIYIHAH": GOSUB sach

REM F  D  D D  F   D  D   D D
REM da gi i ei nes ta spazieren
n=f:  s$="DAAAA": GOSUB sach
n=d:  s$="GIHIHNXNX. IHIH/C AYIHIHNNN": GOSUB sach
n=f:  s$="NNNAES": GOSUB sach
n=d:  s$="TAAAAGS, SHPAATSIYIYIY, REHEHN": GOSUB sach

REM F  F   D#   D  D#  F  G
REM in dem schönen grünen wald
n=f:  s$="IHIHNNNN, DEHEHM": GOSUB sach
n=dis:s$="SHERERERERNN": GOSUB sach
n=d:  s$="NNNAEAEN": GOSUB sach
n=dis:s$="GRERERERIH": GOSUB sach
n=f:  s$="NEHEHNN": GOSUB sach
n=g:  s$="VAALLD": GOSUB sach

REM G   A#   A#   A   G   A#   F   F
REM und plötzlich von dem höchsten zweig
n=g:  s$="UHUHND": GOSUB sach
n=ais:s$="PLERERERT, SLIHIH/C": GOSUB sach
n=a:  s$="FOHOHNN": GOSUB sach
n=g:  s$="DEHEHM": GOSUB sach
n=ais:s$="/HER/CS": GOSUB sach
n=f:  s$="STEHN TSVAYG": GOSUB sach

REM D#  D   D   C    C    A#
REM ein kleines lied erschallt
n=dis:s$="AYNN": GOSUB sach
n=d:  s$="KLAYIHIHNN,NNEHEHS": GOSUB sach
n=c:  s$="LIYIYIYD, AEAERSH": GOSUB sach
n=c:s$="SHAHAHAHLLT": GOSUB sach
n=ais:s$="SHAHAHAHLLT": GOSUB sach

REM G    D#  G
REM lütt und lütt
n=g:  s$="LERT": GOSUB sach
n=dis:s$="UHN": GOSUB sach
n=g:  s$="LERT": GOSUB sach

REM A# A   F   D#    C  A# D    F
REM so kli ver traut es an mein ohr
n=ais:s$="ZOWOW": GOSUB sach
n=a:  s$="KLIHNXNXGT": GOSUB sach
n=f:  s$="FAER": GOSUB sach
n=dis:s$="TRAWUWT": GOSUB sach
n=c:  s$="EHEHSS": GOSUB sach
n=c:s$="AHAHNN": GOSUB sach
n=ais:s$="AHAHNN": GOSUB sach
n=d:  s$="MAYIHNN": GOSUB sach
n=f:  s$="OWOWR": GOSUB sach

REM A#    A   F   D2  C2  A#
REM singt mir ein vöglein vor
n=ais:s$="ZIHNXNXGT": GOSUB sach
n=a:  s$="MIHIHR": GOSUB sach : REM <---- MIR? MIIIEEEEE-JAsR!!!!
n=f:  s$="AYIHN": GOSUB sach
n=d2: s$="FERERG": GOSUB sach
n=c2: s$="LAYN": GOSUB sach
n=ais:s$="FOWOWR": GOSUB sach

REM -----------------------------------
REM F  D D  D   F   D D   D
REM un wäre ich in kairo  o
n=f:  s$="UWUWND": GOSUB sach
n=d:  s$="VAEAEAE, REHEH, IH/C": GOSUB sach
n=f:  s$="IHN": GOSUB sach
n=d:  s$="KAYIHIHIHIHIHR, ROW, OWOHOHD": GOSUB sach

REM D   F F  D#  D   C   D  D#
REM der irgendwo auf dieser welt
n=d:  s$="DAHAH": GOSUB sach
n=f:  s$="IHIHIHR, GEHNNND": GOSUB sach
n=dis:s$="VOWOHOH": GOSUB sach
n=d:  s$="AWUWF": GOSUB sach
n=c:  s$="DIYIYIYZ": GOSUB sach
n=d:  s$="ZEHEHR": GOSUB sach
n=dis:s$="VEHEHLLT": GOSUB sach

REM G  E    E   E
REM und wär ich reich
n=g:  s$="UWUWND": GOSUB sach
n=e:  s$="VAEAER, IHIH/C RAYIY/C": GOSUB sach

REM G   E   E      E
REM wie rot schild o-
n=g:  s$="VIYIH": GOSUB sach
n=e:  s$="ROWUWUHT, SHIHLD, OWOWOH": GOSUB sach

REM E   G    F#  F   E    F
REM der hätt ich gar kein geld
n=e:  s$="DAHAHAH": GOSUB sach
n=g:  s$="/HAEAET": GOSUB sach
n=fis:s$="IH/C": GOSUB sach
n=f:  s$="GAAAAR": GOSUB sach
n=e:  s$="KAYIHN": GOSUB sach
n=f:  s$="GEHLD": GOSUB sach

REM F  D    D    D   F   D      D   D   D
REM ob früh ling som mer herbst und win ter
n=f:  s$="OHOHB": GOSUB sach
n=d:  s$="FRERER, LIHNXNXG, ZOHOHMMM": GOSUB sach
n=f:  s$="MMAHAH": GOSUB sach
n=d:  s$="/HEHRBST, UWND VIHNNN, TEHR": GOSUB sach

REM F F D#  D  D#    F   G
REM überall in freud und schmerz
n=f:  s$="ERERER, BAAAH": GOSUB sach
n=dis:s$="AHLLL": GOSUB sach
n=d:  s$="IHIHNNN": GOSUB sach
n=dis:s$="FROYIHD": GOSUB sach
n=f:  s$="UWND": GOSUB sach
n=g:  s$="SHMEHAHTS": GOSUB sach

hier:

REM G   A#   A#   A   G   A#   F   F
REM ich hab  ein klei nes vö gel  lein
n=g:  s$="IHIH/C/C": GOSUB sach
rem n=ais:s$="/HAAB AYIHNN": GOSUB sach : REM aiin...
n=d2:s$="/HAAB": GOSUB sach : REM aiin...
n=ais:s$="AYIHNN": GOSUB sach : REM aiin...

n=a:  s$="KLAYIHIHNN": GOSUB sach
n=g:  s$="NNEHS": GOSUB sach
n=ais:s$="FERER": GOSUB sach
n=f:  s$="GEHLL LAYN": GOSUB sach

REM A#    A   F   D2  C2  A#
REM und das sing mir ins herz
n=ais:s$="UWND": GOSUB sach
n=a:  s$="DAAAAS": GOSUB sach
n=f:  s$="ZZIHNXNXT": GOSUB sach
n=d2: s$="MIHIHYAH": GOSUB sach
n=c2: s$="IHNS": GOSUB sach
REM n=ais:s$="/HEHEHAHAHTS": GOSUB sach
n=ais:s$="/HEHEHEHEHAHAHAHTS": GOSUB sach

print "------ dun goofed"

END

sach:
  how%(0)=n
  PRINT s$, "..."
  SAY s$,how%
  RETURN
previous next close
eie