I guess I was brought up learning to program on Sinclairs - amazing how you can learn BASIC as a simple language and then move onto other languages, such as Perl, PHP and even 68000 machine code…
Fizzbuzz:
Sinclair QL SuperBASIC
10 FOR i=1 TO 100
20 PRINT i;’ ';
30 IF (i mod 3)=0:PRINT "FIZZ"
40 IF (i mod 5)=0:PRINT "BUZZ"
50 PRINT
60 END FOR i
68000 Assembly Language (on the QL):
start MOVEQ #-1,D1 ;Open a screen channel
LEA screen,A0
MOVEQ #2,D3
MOVEQ #1,D0
TRAP #3 ;Uses built in ROM routine to open screen
BNE.S end
MOVEQ #1,D6 ;Initial Loop value
loop MOVE.L (A6),A1
LEA 2(A1),A0
MOVE.W D6,0(A6.A1.L) ;store value on stack
MOVE.L D6,D7
DIVU #3,D7
SWAP D7
CMPI.W #0,D7
BEQ.S testbuzz
LEA fizz,A1
MOVE.W $D0,A2
JSR (A2)
testbuzz MOVE.L D6,D7
DIVU #5,D7
SWAP D7
CMPI.W #0,D7
BEQ.S nwline
LEA buzz,A1
MOVE.W $D0,A2
JSR (A2)
nwline MOVEQ #10,D1 ;Print a new line
BSR.S printchr
CMPI.B #100,D6
BEQ.S end
ADDQ.B #1,D6
BRA.S loop
end MOVEQ #0,D0
RTS
printchr MOVEQ #-1,D3
MOVEQ #5,D0
TRAP #3
MOVEQ #0,D0
RTS
digits ds.b 6
screen DC.W 17
DC.B ‘con_448x200a32x16’,0
fizz DC.W #4
DC.B 'FIZZ’
buzz DC.W #4
DC.B ‘BUZZ’