Upload failed. Maybe wrong permissions?

User Tools

Site Tools




Spectrumozok

Vajon hányan olvastuk ezt a programlistát huszonkilenc évvel ezelőtt?
  
  
  Azt hiszem, nagyon sokan. Az Ismerd meg a BASIC nyelvjárásait sorozat meghatározó jelentőségű volt a magyar számítástechnika történetében. De vajon hányan pötyögtük be ezt a programot és próbáltuk ki, hogy voltaképpen mit játszik? Hányan akkor, a nyolcvanas évek második felében? Hányan a kilencvenes években?… és hányan ma?
  Hát én most megtettem: begépeltem a listát egy valódi Spectrumba, ami csupán annyiban különbözik egy valóban valódi Spectrumtól, hogy Android. Spectrumon már eleve gépelni is egy kaland, én persze tudok, bár sose láttam eleven Spectrumot, úgy értem, döglöttet se. Csak képen, meg emulátorokat.
  Tessék a program Z80 formátumban; ki kell bontani a zipből, a Marvin könyvtárába kell másolni és betölteni mint state-et. Mint a file-név is mutatja, azt játssza, hogy hej, Dunáról fúj a szél.

Mostanában jókat játszom Spectrummal, mindmáig a legszebb házi számítógépnek tartom, és a korszak egyik legjobb nyelvének érzem a BASIC-jét. Pillanatok alatt lehet írni kis grafikai demókat, például:

10 RANDOMIZE
20 LET c$="▝▘▀▗▐▚▜ "
30 PRINT INK RND*7; INVERSE RND;c$(RND*7+1);
40 GO TO 30

A 20. sorban a grafikus karakterek vannak GRAPHICS 1-től 8-ig. A PRINT-be be lehet tenni egy BRIGHT RND-t is, de szebb így. Én várostérképnek neveztem el; kicsit mondrianos vagy mit tudom én, de jópofa, és végeredményben egyetlen sor a lényeg.
  Vagy itt van ez:

5 DIM p(8)
6 FOR a=1 TO 8: LET p(a)=2↑(a-1): NEXT a
10 LET chargen=15616
20 FOR c=0 TO 95
30 FOR b=0 TO 7
40 LET byte=PEEK (chargen+c*8+b)
50 FOR i=0 TO 7
60 IF byte-p(8-i)>=0 THEN PLOT i*2,16-b*2: DRAW 1,0: DRAW 0,1: DRAW -1,0: LET byte=byte-p(8-i)
70 NEXT i
80 NEXT b
90 NEXT c

Ez kirajzolja a karaktermemóriából az összes karakter felnagyított képét (a blokkgrafikusok kivételével, azok nem ott vannak), méghozzá egymásra, amiből kiderül, hogy a Spectrum karaktermátrixának hét olyan pixelje van, ami egyetlen nemgrafikus karakternél sincsen használva. (15 OVER 1 beiktatásával érdekesen változó képet kapunk.)
  Végül egy kis Lissajous-program, amiben az a klassz, hogy emlékezetből írtam, még mindig tudom a képletét.

10 LET a=5: LET b=3
20 LET x=0: LET y=0
30 FOR r=0 TO 360
40 IF x<>0 THEN DRAW INK RND*6,x-px,y-py
50 LET px=x: LET py=y
60 LET x=128+120*SIN (r*a)
70 LET y=88+80*COS (r*b)
80 NEXT r

A véletlenszerű színezés jól demonstrálja a Spectrum kockás grafikáját. Fantasztikus dolog, hogy a profik erre a gépre olyan szép grafikájú programokat tudtak írni.

»»»»»»