home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Sauce 'n' Code 1
/
sauce-n-code-01.adf
/
AMOS_Source
/
RainbowED.amos
/
RainbowED.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1995-05-06
|
35KB
|
1,444 lines
' *************************************************
' *** ***
' *** --- Rainbow Editor --- ***
' *** ***
' *** Version: 1.01 ***
' *** ***
' *** � by Markus Steinlein Oct/1993 ***
' *** ***
' *** this program is distributed as CardWare ***
' *** so if you use it, don`t forget to write ***
' *** me a postcard! ***
' *** click on the � message at top of the ***
' *** screen to get my address. ***
' *** ***
' *** you are not allowed to change the ***
' *** source code without my ***
' *** written permission! ***
' *** ***
' *************************************************
Set Buffer 18
Set Accessory
Resource Bank 16
Data "$VER: RainbowEditor 1.01 (Oct/1993)"
If Prg State=-1
If Not Amos Here
Amos To Front
End If
Amos Lock
Break Off
Request On
End If
Dim LIST$(31),CL$(3,2,32),_COLOUR(3),_OFFSET(3),_VERTPOS(3),_HEIGHT(3)
Dim PAT(3,2,2,30),_SAVE(12,1),_ON(2),_RB_HEIGHT(3)
Global B,LIST_LENGTH,LIST$(),CL$(),_COLOUR(),_OFFSET(),_VERTPOS(),_HEIGHT()
Global _SCREEN_HEIGHT,_RB_HEIGHT(),_RAINBOW,PAT(),HELP,_SAVE(),PATTERNPOS
Global _COL,_ON(),_MODE,_SO
_INIT_VARIABLES
Resource Screen Open 0,640,129,0
Ink 6 : Bar 0,0 To 640,32
Resource Unpack 1,0,16
_INIT_DIALOG
Vdialog(1,0)=Array(LIST$(0))
Vdialog(1,1)=LIST_LENGTH
BUTTON=Dialog Run(1)
_UPDATE_LIST
_DRAW_ALL_VARIABLES
_STATUS_LINE[Resource$(68)]
Do
_WAIT_EVENT[0]
_SET_RAINBOW
Loop
Procedure _WAIT_EVENT[B]
While B=0
B=Dialog(1)
If Inkey$=" "
Dialog Freeze 1
Screen To Back 0
Hide
Clear Key
Repeat
Multi Wait
Until Mouse Click<>0 or Inkey$=" "
Screen To Front 0
Show
Screen 0
Dialog Unfreeze 1
End If
Wend
_STATUS_LINE[""]
If B=4
If Rdialog(1,4)=1
_HELP[True]
Pop Proc
Else
_HELP[False]
End If
End If
If HELP=True
_STATUS_LINE[Resource$(B)]
Pop Proc
End If
If B=1
_QUIT
End If
If B=3
_COPYRIGHT
End If
If B>4 or B<31
If B=5
_TO_PRG
End If
If B=6
_SAVE_ASCII
End If
If B=7
_LOAD
End If
If B=8
_SAVE
End If
If B=9 or B=10
_PAL_NTSC
End If
If B=11 or B=12
_CHANGE_SCREEN
End If
If B=13
_CLEAR_BACK_SCREEN
End If
If B=14
_LOADIFF
End If
If B=15 or B=16
_ALTER_SCREEN_HEIGHT[B-15]
End If
If B=17 or B=18
_ALTER_RB_HEIGHT[B-17]
End If
If B>18 and B<25
_INSTALL_PRESET[B-18]
End If
If B=25 or B=26
_ALTER_RAINBOW[B-25]
End If
If B=27 or B=28
_ALTER_COLOUR[B-27]
End If
If B=29 or B=30
_ALTER_OFFSET[B-29]
End If
End If
If B>30 and B<40
If B=31 or B=32
_ALTER_VERTPOS[B-31]
End If
If B=33 or B=34
_ALTER_HEIGHT[B-33]
End If
If B=35
_CHANGE_COL
End If
If B=36 or B=37 or B=38
_SWITCH_COLS[B-36]
End If
If B=39
_COPY_PATTERN
End If
End If
If B>39 and B<52
If B=40
_EXCHANGE_PATTERN
End If
If B=41
_GRAB_PATTERN
End If
If B=42
_ADD_PATTERN
End If
If B=43
_REMOVE_PATTERN
End If
If B=44
_INSERT_PATTERN
End If
If B=45
_LIST_UP
End If
If B=46
_LIST_DOWN
End If
If B=47
_ALTER_N[0]
End If
If B=48
_ALTER_S[0]
End If
If B=49
_ALTER_C[0]
End If
If B=50
_ALTER_N[1]
End If
If B=51
_ALTER_S[1]
End If
End If
If B>51 and B<60
If B=52
_ALTER_C[1]
End If
If B=53
_ANIM
End If
If B>53 and B<59
Dialog Freeze 1
If B=54
_ENTER_SCREEN_HEIGHT
End If
If B=55
_ENTER_RB_HEIGHT
End If
If B=56
_ENTER_OFFSET
End If
If B=57
_ENTER_VERTPOS
End If
If B=58
_ENTER_HEIGHT
End If
Dialog Unfreeze 1
End If
If B=59
_LIST_SELECTED
End If
End If
End Proc
Procedure _QUIT
Rainbow Del
Screen Close 0
Screen Close 1
End
End Proc
Procedure _INSTALL_PRESET[NR]
If NR<4
SC=_COL
If NR=1
_LINES=1
End If
If NR=2
_LINES=3
End If
If NR=3
_LINES=9
End If
For I=0 To 2
CL$(_RAINBOW,I,32)=Str$(1)
PAT(_RAINBOW,I,0,0)=_LINES
PAT(_RAINBOW,I,1,0)=1
PAT(_RAINBOW,I,2,0)=15
PAT(_RAINBOW,I,0,1)=_LINES
PAT(_RAINBOW,I,1,1)=-1
PAT(_RAINBOW,I,2,1)=15
_COL=I
_COPY_NSC_TO_COL[0]
_COPY_NSC_TO_COL[1]
Next I
_COL=SC
End If
If NR>3
If NR=4
_LINES=1
End If
If NR=5
_LINES=3
End If
If NR=6
_LINES=9
End If
CL$(_RAINBOW,_COL,32)=Str$(1)
PAT(_RAINBOW,_COL,0,0)=_LINES
PAT(_RAINBOW,_COL,1,0)=1
PAT(_RAINBOW,_COL,2,0)=15
PAT(_RAINBOW,_COL,0,1)=_LINES
PAT(_RAINBOW,_COL,1,1)=-1
PAT(_RAINBOW,_COL,2,1)=15
_COPY_NSC_TO_COL[0]
_COPY_NSC_TO_COL[1]
End If
PATTERNPOS=0
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
End Proc
Procedure _HELP[FLAG]
If FLAG
_SAVE(0,0)=9 : _SAVE(0,1)=Rdialog(1,9)
_SAVE(1,0)=10 : _SAVE(1,1)=Rdialog(1,10)
_SAVE(2,0)=11 : _SAVE(2,1)=Rdialog(1,11)
_SAVE(3,0)=12 : _SAVE(3,1)=Rdialog(1,12)
_SAVE(4,0)=35 : _SAVE(4,1)=Rdialog(1,35)
_SAVE(5,0)=36 : _SAVE(5,1)=Rdialog(1,36)
_SAVE(6,0)=37 : _SAVE(6,1)=Rdialog(1,37)
_SAVE(7,0)=38 : _SAVE(7,1)=Rdialog(1,38)
_SAVE(8,0)=60 : _SAVE(8,1)=Rdialog(1,60)
_SAVE(9,0)=39 : _SAVE(9,1)=0
_SAVE(10,0)=40 : _SAVE(10,1)=0
_SAVE(11,0)=53 : _SAVE(11,1)=Rdialog(1,53)
_SAVE(12,0)=5 : _SAVE(12,1)=0
_CHANGE_MOUSE
HELP=True
_STATUS_LINE[Resource$(87)]
Else
For I=0 To 12
Dialog Update 1,_SAVE(I,0),_SAVE(I,1)
Next I
HELP=False
_STATUS_LINE[Resource$(88)]
Amal Off 0
Show
End If
End Proc
Procedure _CHANGE_MOUSE
Hide
Channel 0 To Sprite 0
Amal 0,"A 0,(1,5)(2,2)(3,2)(4,5)(3,2)(2,2) ;L: Let X=XM; Let Y=YM; Jump L;"
Amal On
End Proc
Procedure _CHANGE_SCREEN
BT=Rdialog(1,11)
If BT=1
Screen Open 1,640,290,16,Hires
Curs Off : Flash Off : Cls 0
Screen Display 1,,,,_SCREEN_HEIGHT
_STATUS_LINE[Resource$(83)]
If _COLOUR(_RAINBOW)>15
_COLOUR(_RAINBOW)=15
End If
_DRAW_ALL_VARIABLES
Else
Screen Open 1,320,290,32,Lowres
Curs Off : Flash Off : Cls 0
Screen Display 1,,,,_SCREEN_HEIGHT
_STATUS_LINE[Resource$(84)]
End If
Screen To Back 1
Screen 0
End Proc
Procedure _STATUS_LINE[T$]
Screen 0
Ink 6
Bar 6,116 To 634,124
Ink 3,6
Text(640-(Len(T$)*8))/2,123,T$
End Proc
Procedure _COPYRIGHT
Dialog Freeze 1
I$=I$+"BAse 0,17; SIze 640,111; SAve 1;"
I$=I$+"BOx 0,0,79,640,111;"
I$=I$+"UNpack 426,80,77;"
I$=I$+"UNpack 28,16,78;"
I$=I$+"PRint 190,6,69 MEssage,3;"
I$=I$+"PRint 190,14,61 MEssage,3;"
I$=I$+"INk 2,0,0; GraphicLine 190,24,612,24;"
I$=I$+"PRint 190,28,62 MEssage,3;"
I$=I$+"PRint 190,36,63 MEssage,3;"
I$=I$+"PRint 190,44,64 MEssage,3;"
I$=I$+"INk 2,0,0; GraphicLine 190,56,612,56;"
I$=I$+"PRint 190,60,65 MEssage,3;"
I$=I$+"PRint 190,68,66 MEssage,3;"
I$=I$+"PRint 190,76,67 MEssage,3;"
I$=I$+"BUtton 1,272,98,96,11,0,0,1;[UNpack 0,0,BPos 88+;][ButtonQuit;]"
I$=I$+"EXit;"
Dialog Open 2,I$
DUMMY=Dialog Run(2)
While Dialog(2)=0
Wend
Dialog Close 2
Dialog Unfreeze 1
End Proc
Procedure _CLEAR_BACK_SCREEN
Screen 1
Cls 0
Screen 0
End Proc
Procedure _PAL_NTSC
BT=Rdialog(1,9)
If BT=1
_SCREEN_HEIGHT=282
_STATUS_LINE[Resource$(85)]
Else
_SCREEN_HEIGHT=200
_STATUS_LINE[Resource$(86)]
End If
Ink 6 : Bar 116,91 To 140,99
_VAR_TO_STRING[_SCREEN_HEIGHT]
Ink 3,6 : Text 116,98,Param$
Screen Display 1,,,,_SCREEN_HEIGHT
End Proc
Procedure _ALTER_SCREEN_HEIGHT[FLAG]
If FLAG=0
If _SCREEN_HEIGHT<480
Inc _SCREEN_HEIGHT
End If
End If
If FLAG=1
If _SCREEN_HEIGHT>16
Dec _SCREEN_HEIGHT
End If
End If
Ink 6 : Bar 116,91 To 140,99
_VAR_TO_STRING[_SCREEN_HEIGHT]
Ink 3,6 : Text 116,98,Param$
Screen Display 1,,,,_SCREEN_HEIGHT
Screen 0
End Proc
Procedure _ALTER_RB_HEIGHT[FLAG]
If FLAG=0
If _RB_HEIGHT(_RAINBOW)<480
Inc _RB_HEIGHT(_RAINBOW)
End If
End If
If FLAG=1
If _RB_HEIGHT(_RAINBOW)>16
Dec _RB_HEIGHT(_RAINBOW)
End If
End If
Screen 0
Ink 6 : Bar 116,103 To 140,111
_VAR_TO_STRING[_RB_HEIGHT(_RAINBOW)]
Ink 3,6 : Text 116,110,Param$
End Proc
Procedure _ALTER_COLOUR[FLAG]
If FLAG=0
If Screen Width(1)>600
_LIMIT=15
Else
_LIMIT=31
End If
If _COLOUR(_RAINBOW)<_LIMIT
Inc _COLOUR(_RAINBOW)
End If
Else
If _COLOUR(_RAINBOW)>-1
Dec _COLOUR(_RAINBOW)
End If
End If
Screen 0
Ink 6 : Bar 269,67 To 293,75
_VAR_TO_STRING[_COLOUR(_RAINBOW)]
Ink 3,6 : Text 269,74,Param$
If _COLOUR(_RAINBOW)=-1
_STATUS_LINE[Resource$(90)]
End If
End Proc
Procedure _ALTER_OFFSET[FLAG]
If _SO=-1
If FLAG=0
If _OFFSET(_RAINBOW)<_HEIGHT(_RAINBOW)
Inc _OFFSET(_RAINBOW)
End If
Else
If _OFFSET(_RAINBOW)>0
Dec _OFFSET(_RAINBOW)
End If
End If
Screen 0
Ink 6 : Bar 269,79 To 293,87
_VAR_TO_STRING[_OFFSET(_RAINBOW)]
Ink 3,6 : Text 269,86,Param$
Else
_STATUS_LINE[Resource$(113)]
End If
End Proc
Procedure _ALTER_VERTPOS[FLAG]
If FLAG=0
If _VERTPOS(_RAINBOW)<312
Inc _VERTPOS(_RAINBOW)
End If
Else
If _VERTPOS(_RAINBOW)>20
Dec _VERTPOS(_RAINBOW)
End If
End If
Screen 0
Ink 6 : Bar 269,91 To 293,99
_VAR_TO_STRING[_VERTPOS(_RAINBOW)]
Ink 3,6 : Text 269,98,Param$
End Proc
Procedure _ALTER_HEIGHT[FLAG]
_SWITCH_OFF_ANIM
If FLAG=0
If _HEIGHT(_RAINBOW)<9999
Inc _HEIGHT(_RAINBOW)
End If
Else
If _HEIGHT(_RAINBOW)>16
Dec _HEIGHT(_RAINBOW)
End If
End If
If _OFFSET(_RAINBOW)>_HEIGHT(_RAINBOW)
_OFFSET(_RAINBOW)=_HEIGHT(_RAINBOW)
End If
Screen 0
Ink 6 : Bar 269,103 To 293,111
_VAR_TO_STRING[_HEIGHT(_RAINBOW)]
Ink 3,6 : Text 269,110,Param$
Ink 6 : Bar 269,79 To 293,87
_VAR_TO_STRING[_OFFSET(_RAINBOW)]
Ink 3,6 : Text 269,86,Param$
End Proc
Procedure _ALTER_RAINBOW[FLAG]
If FLAG=0
If _RAINBOW<3
Inc _RAINBOW
End If
End If
If FLAG=1
If _RAINBOW>0
Dec _RAINBOW
End If
End If
L=Val(CL$(_RAINBOW,_COL,32))
If PATTERNPOS>L
PATTERNPOS=L
End If
_DRAW_ALL_VARIABLES
_CHANGE_NSC
End Proc
Procedure _ALTER_N[FLAG]
If FLAG=0
If PAT(_RAINBOW,_COL,0,PATTERNPOS)<999
Inc PAT(_RAINBOW,_COL,0,PATTERNPOS)
End If
Else
If PAT(_RAINBOW,_COL,0,PATTERNPOS)>1
Dec PAT(_RAINBOW,_COL,0,PATTERNPOS)
End If
End If
Screen 0
Ink 6 : Bar 365,73 To 389,81
_VAR_TO_STRING[PAT(_RAINBOW,_COL,0,PATTERNPOS)]
Ink 3,6 : Text 365,80,Param$
_CHANGE_NSC
End Proc
Procedure _ALTER_S[FLAG]
If FLAG=0
If PAT(_RAINBOW,_COL,1,PATTERNPOS)<15
Inc PAT(_RAINBOW,_COL,1,PATTERNPOS)
End If
Else
If PAT(_RAINBOW,_COL,1,PATTERNPOS)>-15
Dec PAT(_RAINBOW,_COL,1,PATTERNPOS)
End If
End If
Screen 0
Ink 6 : Bar 397,73 To 421,81
_VAR_TO_STRING[PAT(_RAINBOW,_COL,1,PATTERNPOS)]
Ink 3,6 : Text 397,80,Param$
_CHANGE_NSC
End Proc
Procedure _ALTER_C[FLAG]
If FLAG=0
If PAT(_RAINBOW,_COL,2,PATTERNPOS)<15
Inc PAT(_RAINBOW,_COL,2,PATTERNPOS)
End If
Else
If PAT(_RAINBOW,_COL,2,PATTERNPOS)>1
Dec PAT(_RAINBOW,_COL,2,PATTERNPOS)
End If
End If
Screen 0
Ink 6 : Bar 429,73 To 453,81
_VAR_TO_STRING[PAT(_RAINBOW,_COL,2,PATTERNPOS)]
Ink 3,6 : Text 429,80,Param$
_CHANGE_NSC
End Proc
Procedure _ENTER_SCREEN_HEIGHT
_STATUS_LINE[""]
Text 10,123,Resource$(114)
Text 500,123,(Str$(_SCREEN_HEIGHT)-" ")+" (16-480)"
_INPUT[3]
C=Val(Param$)
_STATUS_LINE[""]
If C<16
C=16
_STATUS_LINE[Resource$(119)]
End If
If C>480
C=480
_STATUS_LINE[Resource$(120)]
End If
_SCREEN_HEIGHT=C
_ALTER_SCREEN_HEIGHT[2]
End Proc
Procedure _ENTER_RB_HEIGHT
_STATUS_LINE[""]
Text 10,123,Resource$(115)
Text 500,123,(Str$(_RB_HEIGHT(_RAINBOW))-" ")+" (16-480)"
_INPUT[3]
C=Val(Param$)
_STATUS_LINE[""]
If C<16
C=16
_STATUS_LINE[Resource$(119)]
End If
If C>480
C=480
_STATUS_LINE[Resource$(120)]
End If
_RB_HEIGHT(_RAINBOW)=C
_ALTER_RB_HEIGHT[2]
End Proc
Procedure _ENTER_OFFSET
_STATUS_LINE[""]
Text 10,123,Resource$(116)
Text 500,123,(Str$(_OFFSET(_RAINBOW))-" ")+" (0-LENGTH)"
_INPUT[4]
C=Val(Param$)
_STATUS_LINE[""]
If C>_HEIGHT(_RAINBOW)
C=_HEIGHT(_RAINBOW)
_STATUS_LINE[Resource$(121)]
End If
_OFFSET(_RAINBOW)=C
_DRAW_ALL_VARIABLES
End Proc
Procedure _ENTER_VERTPOS
_STATUS_LINE[""]
Text 10,123,Resource$(117)
Text 500,123,(Str$(_VERTPOS(_RAINBOW))-" ")+" (20-270)"
_INPUT[3]
C=Val(Param$)
_STATUS_LINE[""]
If C<20
C=20
_STATUS_LINE[Resource$(122)]
End If
If C>312
C=312
_STATUS_LINE[Resource$(123)]
End If
_VERTPOS(_RAINBOW)=C
_DRAW_ALL_VARIABLES
End Proc
Procedure _ENTER_HEIGHT
_STATUS_LINE[""]
Text 10,123,Resource$(118)
Text 500,123,(Str$(_HEIGHT(_RAINBOW))-" ")+" (0-9999)"
_INPUT[4]
C=Val(Param$)
If C<16
C=16
_STATUS_LINE[Resource$(119)]
Else
_STATUS_LINE[""]
End If
_HEIGHT(_RAINBOW)=C
If _OFFSET(_RAINBOW)>_HEIGHT(_RAINBOW)
_OFFSET(_RAINBOW)=_HEIGHT(_RAINBOW)
End If
_DRAW_ALL_VARIABLES
End Proc
Procedure _INPUT[L]
T$="" : C=0
LAB:
Ink 5
Bar 340+(Len(T$)*8),117 To 348+(Len(T$)*8),123
A$=""
While A$=""
A$=Inkey$
Wend
If Asc(A$)>47 and Asc(A$)<58
Inc C
If C<=L
T$=T$+A$
Else
Dec C
End If
End If
If Asc(A$)=8
Dec C
If C>-1
T$=Left$(T$,C)
Else
Inc C
End If
End If
If Asc(A$)=13
Pop Proc[T$]
End If
Ink 6
Bar 340,116 To 410,124
Ink 3,6
Text 340,123,T$
Goto LAB
End Proc
Procedure _LIST_UP
SP=Rdialog(1,60)
If SP>0
Dialog Update 1,60,SP-1
End If
End Proc
Procedure _LIST_DOWN
SP=Rdialog(1,60)
If SP<LIST_LENGTH-6
Dialog Update 1,60,SP+1
End If
End Proc
Procedure _LIST_SELECTED
P=Rdialog(1,59)
PATTERNPOS=P
If PATTERNPOS=-1
Wait 1
_LIST_SELECTED
End If
_DRAW_NSC
_CHANGE_NSC
End Proc
Procedure _INIT_DIALOG
' Dieses Interface Programm enth�lt die Definitionen aller Kn�pfe
I$=""
I$=I$+"BUtton 1,0,0,32,16,0,0,1;"
I$=I$+" [UNpack 0,0,BPos 2+;][BReturn 0;]"
I$=I$+"BUtton 2,32,0,376,16,0,0,1;"
I$=I$+" [UNpack 0,0,6;][ScreenMove;BReturn 0;]"
I$=I$+"BUtton 3,408,0,152,16,0,0,1;"
I$=I$+" [UNpack 0,0,7;][]"
I$=I$+"BUtton 4,584,0,56,16,0,0,1;"
I$=I$+" [UNpack 0,0,BPos 4+;][]"
I$=I$+"BUtton 5,64,21,64,11,0,0,1; [UNpack 0,0,BPos 8+;] []"
I$=I$+"BUtton 6,64,32,64,11,0,0,1; [UNpack 0,0,BPos 10+;] [BReturn 0;]"
I$=I$+"BUtton 7,128,21,64,11,0,0,1; [UNpack 0,0,BPos 12+;] [BReturn 0;] KY 76,0;"
I$=I$+"BUtton 8,128,32,64,11,0,0,1; [UNpack 0,0,BPos 14+;] [BReturn 0;] KY 83,0;"
I$=I$+"BUtton 9,64,55,64,11,1,0,1; [UNpack 0,0,BPos 16+;] "
I$=I$+" [NoWait; IF BPos 0=; [BReturn 1;] BChange 10,0;]"
I$=I$+"BUtton 10,128,55,64,11,0,0,1; [UNpack 0,0,BPos 18+;] "
I$=I$+" [NoWait; IF BPos 0=; [BReturn 1;] BChange 9,0;]"
I$=I$+"BUtton 11,64,66,64,11,0,0,1; [UNpack 0,0,BPos 20+;] "
I$=I$+" [NoWait; IF BPos 0=; [BReturn 1;] BChange 12,0;]"
I$=I$+"BUtton 12,128,66,64,11,1,0,1; [UNpack 0,0,BPos 22+;] "
I$=I$+" [NoWait; IF BPos 0=; [BReturn 1;] BChange 11,0;]"
I$=I$+"BUtton 13,64,77,64,11,0,0,1; [UNpack 0,0,BPos 24+;] [BReturn 0;]"
I$=I$+"BUtton 14,128,77,64,11,0,0,1; [UNpack 0,0,BPos 26+;] [BReturn 0;]"
I$=I$+"UNpack 112,90,28;"
I$=I$+"BUtton 15,144,90,24,11,0,0,1; [UNpack 0,0,BPos 29+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 16,168,90,24,11,0,0,1; [UNpack 0,0,BPos 31+;] [NoWait; BReturn 0;]"
I$=I$+"UNpack 112,102,28;"
I$=I$+"BUtton 17,144,102,24,11,0,0,1; [UNpack 0,0,BPos 29+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 18,168,102,24,11,0,0,1; [UNpack 0,0,BPos 31+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 19,296,32,16,8,0,0,1; [UNpack 0,0,BPos 33+;] [BReturn 0;]"
I$=I$+"BUtton 20,312,32,16,8,0,0,1; [UNpack 0,0,BPos 35+;] [BReturn 0;]"
I$=I$+"BUtton 21,328,32,16,8,0,0,1; [UNpack 0,0,BPos 37+;] [BReturn 0;]"
I$=I$+"BUtton 22,296,40,16,8,0,0,1; [UNpack 0,0,BPos 39+;] [BReturn 0;]"
I$=I$+"BUtton 23,312,40,16,8,0,0,1; [UNpack 0,0,BPos 41+;] [BReturn 0;]"
I$=I$+"BUtton 24,328,40,16,8,0,0,1; [UNpack 0,0,BPos 43+;] [BReturn 0;]"
I$=I$+"UNpack 264,54,28;"
I$=I$+"BUtton 25,296,54,24,11,0,0,1; [UNpack 0,0,BPos 29+;] [BReturn 0;]"
I$=I$+"BUtton 26,320,54,24,11,0,0,1; [UNpack 0,0,BPos 31+;] [BReturn 0;]"
I$=I$+"UNpack 264,66,28;"
I$=I$+"BUtton 27,296,66,24,11,0,0,1; [UNpack 0,0,BPos 29+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 28,320,66,24,11,0,0,1; [UNpack 0,0,BPos 31+;] [NoWait; BReturn 0;]"
I$=I$+"UNpack 264,78,28;"
I$=I$+"BUtton 29,296,78,24,11,0,0,1; [UNpack 0,0,BPos 29+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 30,320,78,24,11,0,0,1; [UNpack 0,0,BPos 31+;] [NoWait; BReturn 0;]"
I$=I$+"UNpack 264,90,28;"
I$=I$+"BUtton 31,296,90,24,11,0,0,1; [UNpack 0,0,BPos 29+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 32,320,90,24,11,0,0,1; [UNpack 0,0,BPos 31+;] [NoWait; BReturn 0;]"
I$=I$+"UNpack 264,102,28;"
I$=I$+"BUtton 33,296,102,24,11,0,0,1;[UNpack 0,0,BPos 29+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 34,320,102,24,11,0,0,1;[UNpack 0,0,BPos 31+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 35,440,17,96,11,1,0,5; [UNpack 0,0,BPos 45+;] [BReturn BPos 1+;]"
I$=I$+"BUtton 36,536,17,32,11,0,0,1; [UNpack 0,0,BPos 51+;] []"
I$=I$+"BUtton 37,568,17,32,11,0,0,1; [UNpack 0,0,BPos 53+;] []"
I$=I$+"BUtton 38,600,17,32,11,0,0,1; [UNpack 0,0,BPos 55+;] []"
I$=I$+"BUtton 39,440,29,64,11,0,0,1; [UNpack 0,0,BPos 57+;] [] KY 67,0;"
I$=I$+"BUtton 40,504,29,64,11,0,0,1; [UNpack 0,0,BPos 59+;] [] KY 69,0;"
I$=I$+"BUtton 41,568,29,64,11,0,0,1; [UNpack 0,0,BPos 61+;] [] KY 71,0;"
I$=I$+"BUtton 42,440,40,64,11,0,0,1; [UNpack 0,0,BPos 63+;] [BReturn 0;] KY 65,0;"
I$=I$+"BUtton 43,504,40,64,11,0,0,1; [UNpack 0,0,BPos 65+;] [BReturn 0;] KY 82,0;"
I$=I$+"BUtton 44,568,40,64,11,0,0,1; [UNpack 0,0,BPos 67+;] [BReturn 0;] KY 73,0;"
I$=I$+"BUtton 45,616,53,16,8,0,0,1; [UNpack 0,0,BPos 73+;] [BReturn 0;] KY 30,0;"
I$=I$+"BUtton 46,616,61,16,8,0,0,1; [UNpack 0,0,BPos 75+;] [BReturn 0;] KY 31,0;"
I$=I$+"BUtton 47,360,56,32,16,0,0,1; [UNpack 0,0,BPos 71+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 48,392,56,32,16,0,0,1; [UNpack 0,0,BPos 71+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 49,424,56,32,16,0,0,1; [UNpack 0,0,BPos 71+;] [NoWait; BReturn 0;]"
I$=I$+"UNpack 360,72,28;"
I$=I$+"UNpack 392,72,28;"
I$=I$+"UNpack 424,72,28;"
I$=I$+"BUtton 50,360,83,32,16,0,0,1; [UNpack 0,0,BPos 69+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 51,392,83,32,16,0,0,1; [UNpack 0,0,BPos 69+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 52,424,83,32,16,0,0,1; [UNpack 0,0,BPos 69+;] [NoWait; BReturn 0;]"
I$=I$+"BUtton 53,408,40,32,11,1,0,3; [UNpack 0,0,BPos 90+;] [BReturn BPos 1+;] KY 89,0;"
I$=I$+"BUtton 54,7,90,136,11,0,0,1; [] [BReturn 0;]"
I$=I$+"BUtton 55,7,102,136,11,0,0,1; [] [BReturn 0;]"
I$=I$+"BUtton 56,203,78,92,11,0,0,1; [] [BReturn 0;]"
I$=I$+"BUtton 57,203,90,92,11,0,0,1; [] [BReturn 0;]"
I$=I$+"BUtton 58,203,102,92,11,0,0,1; [] [BReturn 0;]"
' 0 VA enth�lt die Addresse der Liste
' 1 VA die Anzahl der zug�nglichen Elemente
I$=I$+"ActiveList 59,480,55,15,7,0 VA,0,0,2,3;[]"
I$=I$+"VerticalSlider 60,618,71,12,42,0,0,1 VA 6-,1;"
I$=I$+" [ZoneChange 59,ZonePosition;]"
I$=I$+"EXit;"
' Dialog Channel �ffnen, aber nicht starten!
' Starten �bernimmt Hauptprogramm
Dialog Open 1,I$,8,3072
End Proc
Procedure _INIT_VARIABLES
If Ntsc
_SCREEN_HEIGHT=200
Else
_SCREEN_HEIGHT=282
End If
For I=0 To 3
CL$(I,0,0)="( 1, 0, 1)"
CL$(I,1,0)="( 1, 0, 1)"
CL$(I,2,0)="( 1, 0, 1)"
CL$(I,0,32)=Str$(0)-" "
CL$(I,1,32)=Str$(0)-" "
CL$(I,2,32)=Str$(0)-" "
_COLOUR(I)=-1
_OFFSET(I)=0
_VERTPOS(I)=20
_HEIGHT(I)=_SCREEN_HEIGHT
_RB_HEIGHT(I)=_SCREEN_HEIGHT
Next I
_COLOUR(0)=0
_RAINBOW=0
_COL=0
HELP=False
_SO=-1
_ON(0)=True
_ON(1)=True
_ON(2)=True
For I=0 To 3
PAT(I,0,0,0)=1
PAT(I,0,1,0)=0
PAT(I,0,2,0)=1
PAT(I,1,0,0)=1
PAT(I,1,1,0)=0
PAT(I,1,2,0)=1
PAT(I,2,0,0)=1
PAT(I,2,1,0)=0
PAT(I,2,2,0)=1
Next I
PATTERNPOS=0
Screen Open 1,320,290,32,LORES
Curs Off : Flash Off : Cls 0
Screen Display 1,,30,,_SCREEN_HEIGHT
_COPY_COL_TO_LIST[_COL]
End Proc
Procedure _DRAW_ALL_VARIABLES
Ink 6 : Bar 116,91 To 140,99
_VAR_TO_STRING[_SCREEN_HEIGHT]
Ink 3,6 : Text 116,98,Param$
Ink 6 : Bar 116,103 To 140,111
_VAR_TO_STRING[_RB_HEIGHT(_RAINBOW)]
Ink 3,6 : Text 116,110,Param$
Ink 6 : Bar 269,55 To 293,63
_VAR_TO_STRING[_RAINBOW]
Ink 3,6 : Text 269,62,Param$
Ink 6 : Bar 269,67 To 293,75
_VAR_TO_STRING[_COLOUR(_RAINBOW)]
Ink 3,6 : Text 269,74,Param$
Ink 6 : Bar 269,79 To 293,87
_VAR_TO_STRING[_OFFSET(_RAINBOW)]
Ink 3,6 : Text 269,86,Param$
Ink 6 : Bar 269,91 To 293,99
_VAR_TO_STRING[_VERTPOS(_RAINBOW)]
Ink 3,6 : Text 269,98,Param$
Ink 6 : Bar 269,103 To 293,111
_VAR_TO_STRING[_HEIGHT(_RAINBOW)]
Ink 3,6 : Text 269,110,Param$
_DRAW_NSC
End Proc
Procedure _DRAW_NSC
Screen 0
Ink 6 : Bar 365,73 To 389,81
_VAR_TO_STRING[PAT(_RAINBOW,_COL,0,PATTERNPOS)]
Ink 3,6 : Text 365,80,Param$
Ink 6 : Bar 397,73 To 421,81
_VAR_TO_STRING[PAT(_RAINBOW,_COL,1,PATTERNPOS)]
Ink 3,6 : Text 397,80,Param$
Ink 6 : Bar 429,73 To 453,81
_VAR_TO_STRING[PAT(_RAINBOW,_COL,2,PATTERNPOS)]
Ink 3,6 : Text 429,80,Param$
End Proc
Procedure _VAR_TO_STRING[NR]
S$=Str$(NR)-" "
If NR<10 and NR>-1
S$=" "+S$
End If
If NR<100 and NR>9
S$=" "+S$
End If
If NR>999
S$="^"+Right$(S$,2)
End If
If NR<0 and NR>-10
S$=" "+S$
End If
End Proc[S$]
Procedure _UPDATE_LIST
Dialog Update 1,59,,,LIST_LENGTH+1
If LIST_LENGTH>6
Dialog Update 1,60,,,LIST_LENGTH-6
Else
Dialog Update 1,60,,,0
End If
End Proc
Procedure _COPY_COL_TO_LIST[NR]
L=Val(CL$(_RAINBOW,NR,32))
For I=0 To L
S$=Str$(I)-" "
If I<10
S$="0"+S$
End If
LIST$(I)=S$+" "+CL$(_RAINBOW,NR,I)
Next I
For I=L+1 To 30
LIST$(I)=" "
Next I
If PATTERNPOS>L
PATTERNPOS=L
End If
LIST$(PATTERNPOS)=">>"+Right$(LIST$(PATTERNPOS),14)
LIST_LENGTH=L
End Proc
Procedure _COPY_NSC_TO_COL[POS]
_VAR_TO_STRING[PAT(_RAINBOW,_COL,0,POS)]
S1$=Param$
_VAR_TO_STRING[PAT(_RAINBOW,_COL,1,POS)]
S2$=Param$
_VAR_TO_STRING[PAT(_RAINBOW,_COL,2,POS)]
S3$=Param$
CL$(_RAINBOW,_COL,POS)="("+S1$+","+S2$+","+S3$+")"
End Proc
Procedure _CHANGE_NSC
_COPY_NSC_TO_COL[PATTERNPOS]
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
End Proc
Procedure _CHANGE_COL
S=Rdialog(1,35)
If S=1
_COL=0
End If
If S=3
_COL=1
End If
If S=5
_COL=2
End If
S=Val(CL$(_RAINBOW,_COL,32))
If PATTERNPOS>S
PATTERNPOS=S
End If
_DRAW_NSC
_CHANGE_NSC
End Proc
Procedure _SWITCH_COLS[NR]
If _ON(NR)
_ON(NR)=False
Else
_ON(NR)=True
End If
End Proc
Procedure _ANIM
If Rdialog(1,53)=3
_SO=_OFFSET(_RAINBOW)
_OFFSET(_RAINBOW)=0
Ink 6 : Bar 269,79 To 293,87
Ink 3,6 : Text 269,86,"cyc"
A$="Lo: Let X=0;For R0=0 To "+Str$(_HEIGHT(_RAINBOW))+";Let X=X+1; Next R0; Jump Lo;"
Channel 1 To Rainbow _RAINBOW
Amal 1,A$
Amal On 1
Else
_OFFSET(_RAINBOW)=_SO
_SO=-1
_DRAW_ALL_VARIABLES
Amal Off 1
End If
End Proc
Procedure _SWITCH_OFF_ANIM
If _SO=-1
_SO=_OFFSET(_RAINBOW)
End If
Dialog Update 1,53,1
_ANIM
End Proc
Procedure _SET_RAINBOW
For I=0 To 3
R$="" : G$="" : B$=""
If _ON(0)
For J=0 To Val(CL$(I,0,32))
R$=R$+CL$(I,0,J)
Next J
End If
If _ON(1)
For J=0 To Val(CL$(I,1,32))
G$=G$+CL$(I,1,J)
Next J
End If
If _ON(2)
For J=0 To Val(CL$(I,2,32))
B$=B$+CL$(I,2,J)
Next J
End If
R$=R$-" "
G$=G$-" "
B$=B$-" "
If _COLOUR(I)>-1
Set Rainbow I,_COLOUR(I),_HEIGHT(I),R$,G$,B$
If _SO=-1
Rainbow I,_OFFSET(I),_VERTPOS(I),_RB_HEIGHT(I)
Else
Rainbow I,,_VERTPOS(I),_RB_HEIGHT(I)
End If
Else
Rainbow Del I
End If
Next I
End Proc
Procedure _ADD_PATTERN
L=Val(CL$(_RAINBOW,_COL,32))
Inc L
If L=31
_STATUS_LINE[Resource$(89)]
Dec L
Else
CL$(_RAINBOW,_COL,L)="( 1, 0, 1)"
PAT(_RAINBOW,_COL,0,L)=1
PAT(_RAINBOW,_COL,1,L)=0
PAT(_RAINBOW,_COL,2,L)=1
CL$(_RAINBOW,_COL,32)=Str$(L)
PATTERNPOS=L
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
End If
End Proc
Procedure _REMOVE_PATTERN
L=Val(CL$(_RAINBOW,_COL,32))
Dec L
If L>-1
For I=PATTERNPOS+1 To L+1
CL$(_RAINBOW,_COL,I-1)=CL$(_RAINBOW,_COL,I)
For J=0 To 2
PAT(_RAINBOW,_COL,J,I+1)=PAT(_RAINBOW,_COL,J,I)
Next J
Next I
CL$(_RAINBOW,_COL,32)=Str$(L)
CL$(_RAINBOW,_COL,L+1)="( 1, 0, 1)"
PAT(_RAINBOW,_COL,0,L+1)=1
PAT(_RAINBOW,_COL,1,L+1)=0
PAT(_RAINBOW,_COL,2,L+1)=1
If PATTERNPOS>L
PATTERNPOS=L
End If
If L>5
Dialog Update 1,60,L-6
End If
Else
Inc L
CL$(_RAINBOW,_COL,0)="( 1, 0, 1)"
PAT(_RAINBOW,_COL,0,0)=1
PAT(_RAINBOW,_COL,1,0)=0
PAT(_RAINBOW,_COL,2,0)=1
End If
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
End Proc
Procedure _INSERT_PATTERN
L=Val(CL$(_RAINBOW,_COL,32))
Inc L
If L=31
_STATUS_LINE[Resource$(89)]
Dec L
Else
For I=L-1 To PATTERNPOS Step -1
CL$(_RAINBOW,_COL,I+1)=CL$(_RAINBOW,_COL,I)
For J=0 To 2
PAT(_RAINBOW,_COL,J,I+1)=PAT(_RAINBOW,_COL,J,I)
Next J
Next I
CL$(_RAINBOW,_COL,32)=Str$(L)
CL$(_RAINBOW,_COL,PATTERNPOS)="( 1, 0, 1)"
PAT(_RAINBOW,_COL,0,PATTERNPOS)=1
PAT(_RAINBOW,_COL,1,PATTERNPOS)=0
PAT(_RAINBOW,_COL,2,PATTERNPOS)=1
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
End If
End Proc
Procedure _COPY_PATTERN
Change Mouse 8
LAB:
D=0
While D=0
D=Dialog(1)
Wend
If D=45
_LIST_UP
Goto LAB
End If
If D=46
_LIST_DOWN
Goto LAB
End If
If D=60
Goto LAB
End If
If D=59
POS=Rdialog(1,D)
If POS<>PATTERNPOS
CL$(_RAINBOW,_COL,POS)=CL$(_RAINBOW,_COL,PATTERNPOS)
For I=0 To 2
PAT(_RAINBOW,_COL,I,POS)=PAT(_RAINBOW,_COL,I,PATTERNPOS)
Next I
End If
PATTERNPOS=POS
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
Else
_STATUS_LINE[Resource$(92)]
Change Mouse 1
Dialog Update 1,39,0
_WAIT_EVENT[D]
End If
Change Mouse 1
Dialog Update 1,39,0
End Proc
Procedure _EXCHANGE_PATTERN
Change Mouse 8
LAB:
D=0
While D=0
D=Dialog(1)
Wend
If D=45
_LIST_UP
Goto LAB
End If
If D=46
_LIST_DOWN
Goto LAB
End If
If D=60
Goto LAB
End If
If D=59
POS=Rdialog(1,D)
If POS<>PATTERNPOS
Swap CL$(_RAINBOW,_COL,POS),CL$(_RAINBOW,_COL,PATTERNPOS)
For I=0 To 2
Swap PAT(_RAINBOW,_COL,I,POS),PAT(_RAINBOW,_COL,I,PATTERNPOS)
Next I
End If
PATTERNPOS=POS
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
Else
_STATUS_LINE[Resource$(93)]
Change Mouse 1
Dialog Update 1,40,0
_WAIT_EVENT[D]
End If
Change Mouse 1
Dialog Update 1,40,0
End Proc
Procedure _GRAB_PATTERN
For I=0 To 2
NR=_ON(I)
Exit If NR=False
Next I
If NR=True
_STATUS_LINE[Resource$(94)]
Dialog Update 1,41,0
Pop Proc
End If
If I=_COL
_STATUS_LINE[Resource$(95)]
Dialog Update 1,41,0
Pop Proc
End If
NR=I
_COPY_COL_TO_LIST[NR]
_UPDATE_LIST
Change Mouse 9
A$="L:Let X=XM+16; Let Y=YM; Jump L;"
Sprite 1,0,0,7
Channel 2 To Sprite 1
Amal 2,A$
Amal On 2
LAB:
D=0
While D=0
D=Dialog(1)
Wend
If D=45
_LIST_UP
Goto LAB
End If
If D=46
_LIST_DOWN
Goto LAB
End If
If D=60
Goto LAB
End If
If D=59
POS=Rdialog(1,D)
CL$(_RAINBOW,_COL,PATTERNPOS)=CL$(_RAINBOW,NR,POS)
For I=0 To 2
PAT(_RAINBOW,_COL,I,PATTERNPOS)=PAT(_RAINBOW,NR,I,POS)
Next I
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
Else
_STATUS_LINE[Resource$(96)]
Change Mouse 1
Amal Off 2 : Sprite Off 1
Dialog Update 1,41,0
_WAIT_EVENT[D]
End If
Change Mouse 1
Amal Off 2 : Sprite Off 1
Dialog Update 1,41,0
End Proc
Procedure _SAVE
_SWITCH_OFF_ANIM
F$=Fsel$("*.RBD","",Resource$(98),Resource$(99))
If F$=""
_STATUS_LINE[Resource$(101)]
Pop Proc
End If
Open Out 1,F$
Print #1,"AMOSPro Rainbow Editor � by Markus Steinlein"
For I=0 To 3
Print #1,_RB_HEIGHT(I)
Print #1,_COLOUR(I)
Print #1,_OFFSET(I)
Print #1,_VERTPOS(I)
Print #1,_HEIGHT(I)
For J=0 To 2
Print #1,Val(CL$(I,J,32))
For K=0 To Val(CL$(I,J,32))
For L=0 To 2
Print #1,PAT(I,J,L,K)
Next L
Next K
Next J
Next I
Close 1
_STATUS_LINE[Resource$(100)]
End Proc
Procedure _LOAD
_SWITCH_OFF_ANIM
F$=Fsel$("*.RBD","",Resource$(97),Resource$(99))
If F$=""
_STATUS_LINE[Resource$(102)]
Pop Proc
End If
If Exist(F$)
Open In 1,F$
Trap Input #1,K$
If Errtrap or K$<>"AMOSPro Rainbow Editor � by Markus Steinlein"
_STATUS_LINE[Resource$(104)]
Close 1
Pop Proc
End If
For I=0 To 3
Input #1,_RB_HEIGHT(I)
Input #1,_COLOUR(I)
Input #1,_OFFSET(I)
Input #1,_VERTPOS(I)
Input #1,_HEIGHT(I)
For J=0 To 2
Input #1,L
CL$(I,J,32)=Str$(L)
For K=0 To L
For M=0 To 2
Input #1,PAT(I,J,M,K)
_RAINBOW=I
_COL=J
Next M
_COPY_NSC_TO_COL[K]
Next K
Next J
Next I
_RAINBOW=0
_COL=0
_DRAW_ALL_VARIABLES
_DRAW_NSC
_COPY_COL_TO_LIST[_COL]
_UPDATE_LIST
Close 1
Else
_STATUS_LINE[Resource$(103)]
Pop Proc
End If
End Proc
Procedure _SAVE_ASCII
_SWITCH_OFF_ANIM
F$=Fsel$("*.ASC","",Resource$(106),Resource$(107))
If F$=""
_STATUS_LINE[Resource$(108)]
Pop Proc
End If
Open Out 1,F$
_MODE=0
_PUTTER
Close 1
_STATUS_LINE[Resource$(109)]
End Proc
Procedure _TO_PRG
_SWITCH_OFF_ANIM
If Prg Under<>1
_STATUS_LINE[Resource$(110)]
Dialog Update 1,5,0
Pop Proc
End If
Call Editor 10
_MODE=1
Dialog Freeze 1
_STATUS_LINE[Resource$(112)]
_PUTTER
Dialog Unfreeze 1
Dialog Update 1,5,0
_STATUS_LINE[Resource$(111)]
End Proc
Procedure _OUTPUT[T$]
If _MODE=0
Print #1,T$
Else
Call Editor 29
Call Editor 71,,T$
Call Editor 10
End If
End Proc
Procedure _PUTTER
_OUTPUT["Procedure _set_rainbow"]
For I=0 To 3
R$="" : G$="" : B$=""
If _ON(0)
For J=0 To Val(CL$(I,0,32))
R$=R$+CL$(I,0,J)
Next J
End If
If _ON(1)
For J=0 To Val(CL$(I,1,32))
G$=G$+CL$(I,1,J)
Next J
End If
If _ON(2)
For J=0 To Val(CL$(I,2,32))
B$=B$+CL$(I,2,J)
Next J
End If
R$=R$-" "
G$=G$-" "
B$=B$-" "
If _COLOUR(I)>-1
If Len(R$)>200
_SPLIT[0,R$]
Else
_OUTPUT[' R$="'+R$+'"']
End If
If Len(G$)>200
_SPLIT[1,G$]
Else
_OUTPUT[' G$="'+G$+'"']
End If
If Len(B$)>200
_SPLIT[2,B$]
Else
_OUTPUT[' B$="'+B$+'"']
End If
_OUTPUT[" Set Rainbow "+Str$(I)+","+Str$(_COLOUR(I))+","+Str$(_HEIGHT(I))+",R$,G$,B$"]
_OUTPUT[" Rainbow "+Str$(I)+","+Str$(_OFFSET(I))+","+Str$(_VERTPOS(I))+","+Str$(_RB_HEIGHT(I))]
_OUTPUT[' R$="" : G$="" : B$=""']
End If
Next I
_OUTPUT["End Proc"]
End Proc
Procedure _SPLIT[NR,T$]
If NR=0
S$=' R$=R$+"'
End If
If NR=1
S$=' G$=G$+"'
End If
If NR=2
S$=' B$=B$+"'
End If
_OUTPUT[S$+Left$(T$,200)+'"']
R$=Right$(T$,Len(T$)-200)
If Len(R$)>200
_SPLIT[NR,R$]
End If
_OUTPUT[S$+R$+'"']
End Proc
Procedure _LOADIFF
Screen 1
Cls 0
If Screen Width=320
Trap Load Iff Fsel$("*.IFF","",Resource$(80),Resource$(81))
Else
Trap Load Iff Fsel$("*.IFF","",Resource$(80),Resource$(82))
End If
Screen 0
E=Errtrap
If E
_STATUS_LINE[Err$(E)]
End If
End Proc