home *** CD-ROM | disk | FTP | other *** search
/ Software 2000 / Software 2000 Volume 1 (Disc 1 of 2).iso / utilities / u534.dms / in.adf / STOS_Sprite_To_AMOS.AMOS / STOS_Sprite_To_AMOS.amosSourceCode < prev   
Encoding:
AMOS Source Code  |  1978-08-29  |  1.9 KB  |  42 lines

  1. ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2. '                     STOS TO AMOS SPRITE CONVERTER
  3. '                             By P.J.Hickman 
  4. '                  Original program by Francois Lionet 
  5. '  
  6. '     Line numbers in AMOS, yup!! It may not be really structured
  7. '  but it gives you more room to convert sprites!!!!!!!!!!!!!!!!!!!! 
  8. ' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  9. Repeat 
  10.    Erase 6
  11.    55 F$=Fsel$("*.MBK","","Please select the","STOS sprite bank to convert")
  12.    60 If F$="" Then Default : End 
  13.    61 Open In 1,F$ : L=Lof(1) : Close 1
  14.    65 If Instr(F$,".MBK")=0 Then 55
  15.    66 Reserve As Work 6,L : Bload F$,Start(6) : ST=Start(6)+18
  16.    100 F$=F$-".MBK" : If Leek(ST)<>$19861987 Then Boom : Goto 55
  17.    110 Erase 10 : Reserve As Work 10,L : Fill Start(10) To Start(10)+Length(10),0
  18.    115 AD=Start(10) : A$="AmSp" : Gosub 1000
  19.    200 AB=ST+4+Leek(ST+4) : NB=Deek(ST+16) : Doke AD,NB : AD=AD+2
  20.    205 A=AB : For NN=0 To NB-1 : Locate 0,10 : Centre "Sprite"+Str$(NN+1)
  21.       210 SA=AB+NN*8 : TX=Peek(SA+4) : TY=Peek(SA+5) : NP=4
  22.       215 Doke AD,TX : Doke AD+2,TY : Doke AD+4,NP : Doke AD+6,Peek(SA+6) : Doke AD+8,Peek(SA+7) : AD=AD+10
  23.       220 SA=AB+Leek(AB+NN*8)+TX*TY*2
  24.       225 For N=0 To NP-1 : A=SA+N*2
  25.          230 For Y=0 To TY-1 : AA=A+Y*TX*8
  26.             235 For X=0 To TX-1 : Doke AD,Deek(AA+X*8) : AD=AD+2 : Next X
  27.          245 Next Y
  28.       250 Next N
  29.    255 Next NN
  30.    275 APAL=Hunt(ST To ST+L,"PALT")+4 : If APAL=4 Then End 
  31.    280 For X=0 To 15 : Doke AD,Deek(APAL+X*2)*2 : AD=AD+2 : Next 
  32.    285 For X=0 To 15 : Doke AD,Deek(APAL+X*2)*2 : AD=AD+2 : Next 
  33.    300 Locate 0,14 : F$=Fsel$("*.ABK","","Please type the name","of the AMOS bank to save")
  34.    If Instr(Upper$(F$),".ABK")=0
  35.       F$=F$+".ABK"
  36.    End If 
  37.    Centre "Saving "+F$
  38.    Bsave F$,Start(10) To AD
  39.    305 Clw 
  40. Until False
  41. 1000 Loke AD,Leek(Varptr(A$)) : AD=AD+4 : Return 
  42. 1100 Loke AD,A : AD=AD+4 : Return