Bonus

Gfa punchs

GFA punchs were small Basic GFA programs 20 lines long at the max. Everybody could participate and try to publish them in the famous ST Magazine.


rasterscroll (2K)

' ---------------------------------------------------------
'
' RASTERSCROLL 50 Hz Low Resolution - 20 Lignes
'
' ---------------------------------------------------------
'
super%=0*XBIOS(5,L:TRUE,L:TRUE,W:FALSE)+GEMDOS(32,L:FALSE)
PRINT AT(1,1);" ABCDEFGHIJKLMNOPQRSTUVWXYZ PLEASE WAIT";
a$=MKL$(1)+MKL$(&H20003)+MKL$(&H40005)+MKL$(&H60007)+MKL$(&H70107)+MKL$(&H2070307)+MKL$(&H4070507)+MKL$(&H6070707)+MKL$(-1)+SPACE$(9964)+STRING$(1000,MKL$(XBIOS(2)))+"SALUT JE SUIS METAL AGES FROM THE CYBERNETICS   ENJOY THIS RASTER SCROLL             "
FOR l2&=FALSE TO 3239
  INT{ADD(V:a$+36+SHL&(MOD(l2&,120),1),MUL(DIV(l2&,120),240))}=OR(AND(PTST(ADD(AND(MOD(MOD(l2&,120),15),7),SHL&(DIV(l2&,120),3)),DIV(MOD(l2&,120),15))<>FALSE,MUL(MIN(ADD(DIV(MOD(l2&,120),15),2),7),&H10)),INT{ADD(V:a$,SHL&(MOD(MOD(l2&,120),15),1))})
  ALINE ADD(106,ROUND(l2&/30.39)),8,ROUND(l2&/10.13),199,ADD(l2&*3/648,1),65535,1
NEXT l2&
PRINT AT(1,1);SPACE$(40);
{&HFFFA06}=FALSE
CARD{&H452}=FALSE
CARD{&HFF8240}=FALSE
DO
  VSYNC
  BMOVE ADD(V:a$,10004),ADD(V:a$,10000),200
  {ADD(V:a$,10200)}=ADD(ADD(MUL(MAX(SUB(ASC(MID$(a$,ADD(SHR&(cpt&,4),14000),1)),64),FALSE),240),ADD(V:a$,36)),MUL(AND(SHR&(cpt&,1),7),30))
  FOR t&=10000 TO 10200 STEP 4
    BMOVE {ADD(V:a$,t&)},&HFF8242,30
  NEXT t&
  cpt&=MOD(ADD(cpt&,1),1280)
LOOP


scrolltext (1K)

' -------------------------------------------------------
'
' MEDIUM RESOLUTION    50HZ         SCROLLTEXT 1 VBL
'
' -------------------------------------------------------
'
a$="[[SALUT[[THIS[IS[METAL[AGES[FROM[CYBERNETICS[AVEC[CE[SCROLL[JBLOURKS[[[[AUJOURDH[UI[ON[EST[LE[SEIZE[FEVRIER[MILLE[NEUF[CENT[QUATRE[VINGT[DIX[[[TIDOU[TIDOU[[[TAGADA[[TAGADA[[[CRADABOUIYOUMZOUM[[[SIBUGE[[[GUIGUITOTO[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["
c$=MKL$(&H3FFFC000)+MKL$(&H7FFFFFFE)+MKL$(&HFFFF7FFE)+MKL$(&HFFFF7FFE)+MKL$(&HFFFF7FFE)+MKL$(&HFFFF7FFE)+MKL$(&HFFFF7FFE)+MKL$(&HFFFF7FFE)+MKL$(&HFFFF7FFE)+MKL$(&HAAAA0000)+MKI$(FALSE)+MKI$(&H334)+MKI$(&H667)+MKI$(&H0)
ecran%=XBIOS(2)
super%=XBIOS(6,L:ADD(V:c$,40))*0+XBIOS(5,L:TRUE,L:TRUE,W:1)*0+GEMDOS(32,L:FALSE)
PRINT AT(1,1);"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
FOR t&=FALSE TO 9
  LONG{ADD(ADD(ecran%,1280),MUL(t&,160))}=LONG{ADD(V:c$,MUL(t&,4))}
NEXT t&
BYTE{&HFFFF820A}=2
REPEAT
  VSYNC
  BMOVE ADD(ecran%,16004),ADD(ecran%,16000),11196
  cpt%=MOD(ADD(cpt%,1),2000)
  i&=ADD(MOD(cpt%,8),MUL(SUB(ASC(MID$(a$,DIV(cpt%,8),1)),65),8))
  FOR t&=FALSE TO 6
    INT{&HFF8246}=SUB(6,t&)
    RC_COPY ecran%,AND(SUB(SGN(PTST(i&,t&)),1),32),8,16,10 TO ecran%,624,ADD(MUL(t&,10),100)
  NEXT t&
UNTIL INP(-2)
~GEMDOS(32,L:super%)



Rotating Atari logo

ataboot (1K)

This rotating Atari logo is designed to be placed into the "Auto" folder in order to be launched at Atari boot.

ATARI2.ZIP