home *** CD-ROM | disk | FTP | other *** search
/ Sound, Music & MIDI Collection 2 / SMMVOL2.bin / DEMO / PRG / CIRCLES.ZIP / CI_MAIN.DIX / 00003_FILM.ls < prev    next >
Encoding:
Text File  |  1995-05-01  |  16.2 KB  |  592 lines

  1. on startMovie
  2.   global player, xdbg, demo, demosegs, disk, idsw, maxsegs, minsegs, minsprites, maxsprits, stepcount, backcast, freemaster, file, fileName, dir_sep, memchange, fcommand, scommand, ecommand, fl_msg, segcurrent, framecnt, segsprite, stepsize, playloop, sample_offset, circle_qua, stepaction, mixedloop, t1pos, t2pos, t1idx, t2idx, t1mute, t2mute, t1_segcnt, t2_segcnt, t1_idxcnt, t2_idxcnt, LED_1, LED_2, t_add, areon, cstart, cstop, pastebu, walk_on, pastebuf, objectCount, theObjects, spritecount, soundCount, theSounds, backwhat, firstsound, FLED, TLED, MUTE, new_read, nn_mixcastinit, nn_mixcast, AR_nnsc, nn_sprite, cast_segs, cast_col, text_col, cp_idx, cp_1, cp_2, ver_cfile, ver_ifile, ini_file, my_cursor, my_cursor_on, my_cursor_busy, hp_page, hp_item, up_2ndch, up_sampm, up_load, up_save, up_override, up_temp, up_ini, up_mem, up_lang, up_mdicha, up_mdinot, up_cload, up_csave, mix_vol1, mix_vol2, mix_ofs1, mix_fn1, mix_fn2, mix_fnO, mix_seg, mix_pos, mix_ofs2, mix_rate, mix_qua, mix_mon, mix_size, mix_err, mix_idx1, mix_idx2, mix_loop, mix_start, mix_end, sndobj, mywin, acwin, last_mdinote, last_play, last_mute, ltl_len, ltl_time, ltl_scast, ltl_mix, Sp_idx, Sp_cast, Sp_locH, Sp_locV, Sp_ink, Sp_visib, Sp_name, Sp_fore, Sp_back, Sp_stch, Sp_stcv, ll_cast, ll_ttime, ll_size, ll_walk, ll_name, leff_name, leff_time1, leff_time2, eff_vol, eff_lidx, l_notload, sl_str, sl_x, sl_y, l_fold, l_file, l_disp, fl_bas, fl_step, fl_search, junk_cst, junk_vol, junk_time, loop_time, add_time, ticks_ps, sample_rate, butisflash, mixneed, namepause, namepause_bs, xy_copy, xy_past, xy_load, xy_save, xy_inse, xy_dele, xy_info, xy_ende, xy_paus, xy_halt, xy_mix, xy_rand, xy_setu, xy_l01, xy_l02, xy_l03, xy_l04, xy_l05, xy_l06, xy_l07, xy_l08, xy_l09, xy_l10, xy_l11, xy_l12, xy_m01, xy_m02, xy_s12, xy_s09, xy_s08, xy_s06, xy_s05, xy_s04, xy_s03, xy_s02, xy_s01
  3.   set player to 1
  4.   set xdbg to 0
  5.   set demo to 1
  6.   set disk to "PLANET"
  7.   set idsw to 0
  8.   if demo then
  9.     set demosegs to 12
  10.   else
  11.     set demosegs to 24
  12.   end if
  13.   cursor(4)
  14.   set ltl_len to []
  15.   set ltl_time to []
  16.   set ltl_scast to []
  17.   set ltl_mix to []
  18.   set ltl_upd to []
  19.   set Sp_idx to []
  20.   set Sp_cast to []
  21.   set Sp_locH to []
  22.   set Sp_locV to []
  23.   set Sp_ink to []
  24.   set Sp_visib to []
  25.   set Sp_name to []
  26.   set Sp_fore to []
  27.   set Sp_back to []
  28.   set Sp_stch to []
  29.   set Sp_stcv to []
  30.   set ll_cast to []
  31.   set ll_ttime to []
  32.   set ll_size to []
  33.   set ll_walk to []
  34.   set ll_name to []
  35.   set eff_vol to 16
  36.   set eff_lidx to 1
  37.   set l_notload to []
  38.   setAt(ltl_len, 25, "0")
  39.   setAt(ltl_time, 25, 0)
  40.   setAt(ltl_scast, 25, 0)
  41.   setAt(ltl_mix, 25, 0)
  42.   setAt(ltl_upd, 25, 0)
  43.   set ver_ifile to "--CIRCLE elements INIT v1.04" & RETURN
  44.   set ver_cfile to "--CIRCLE elements v1.01" & RETURN
  45.   set ini_file to the pathName & "circle.ini"
  46.   set the beepOn to 0
  47.   set AR_nnsc to 1
  48.   set butisflash to 0
  49.   set nn_mixcastinit to 500
  50.   set nn_mixcast to nn_mixcastinit
  51.   set nn_sprite to 1
  52.   set my_cursor to 4
  53.   set my_cursor_on to -1
  54.   set my_cursor_busy to 4
  55.   set up_mem to 10
  56.   set circle_qua to "8"
  57.   mem_update()
  58.   set maxsegs to 25
  59.   set minsegs to 1
  60.   set minsprites to 26
  61.   set maxsprits to 48
  62.   set objectCount to minsegs
  63.   set spritecount to minsprites
  64.   set theObjects to Array(mnew)
  65.   set theSounds to Array(mnew)
  66.   InitializeArrays()
  67.   initArLEDS()
  68.   set namepause to "PAUSE_"
  69.   if the machineType = 256 then
  70.     set namepause_bs to "\" & namepause
  71.     set dir_sep to "\"
  72.   else
  73.     set namepause_bs to ":" & namepause
  74.     set dir_sep to ":"
  75.   end if
  76.   set soundCount to 1
  77.   set last_mute to 0
  78.   set ticks_ps to 60
  79.   set sample_rate to 22050
  80.   set mixneed to 0
  81.   set new_read to 1
  82.   set last_mdinote to -1
  83.   set segcurrent to EMPTY
  84.   set segsprite to 0
  85.   put " " into field "sndwin"
  86.   set playloop to 0
  87.   set stepaction to EMPTY
  88.   set framecnt to 0
  89.   set t1_segcnt to 0
  90.   set t2_segcnt to 0
  91.   set t1_idxcnt to 0
  92.   set t2_idxcnt to 0
  93.   set t1pos to 1
  94.   set t2pos to 1
  95.   set t1idx to 1
  96.   set t2idx to 1
  97.   set t1mute to 0
  98.   set t2mute to 0
  99.   set cstart to 1
  100.   set cstop to 0
  101.   set backcast to 0
  102.   set mastervol to 0
  103.   set the searchCurrentFolder to 1
  104.   set firstsound to 1
  105.   set LED_1 to 0
  106.   set LED_2 to 0
  107.   set areon to 0
  108.   set TLED to 13
  109.   set FLED to 13
  110.   set MUTE to 1
  111.   set pastebuf to 0
  112.   set walk_on to 0
  113.   set sample_offset to 100 - 22
  114.   set Citotaltime to 0
  115.   set cp_idx to 25
  116.   set cp_1 to 0
  117.   set cp_2 to 0
  118.   set fl_bas to 42
  119.   set fl_step to 16
  120.   set l_fold to []
  121.   set l_file to []
  122.   set l_disp to []
  123.   set fcommand to "INIT"
  124.   set scommand to EMPTY
  125.   set ecommand to EMPTY
  126.   set fl_msg to EMPTY
  127.   set acwin to "MAIN"
  128.   set the exitLock to 0
  129.   if the colorDepth < 8 then
  130.     alert("CIRCLE ELEMENTS needs a 256 color display" & RETURN & RETURN & "CIRCLE ELEMENTS benoetigt einen 256 Farben Monitor")
  131.     if not demo then
  132.       quit()
  133.     end if
  134.     puppetPalette("PAL_MAIN")
  135.     if 0 then
  136.       set the name of cast "4LOGOCIR" to "LOGOCIR"
  137.       set the name of cast "4LOGOBS" to "LOGOBS"
  138.       set the name of cast "4LED1" to "LED1"
  139.       set the name of cast "4LED2" to "LED2"
  140.       set the name of cast "4POINTER" to "POINTER"
  141.       set the name of cast "4WALK" to "WALK"
  142.       set the name of cast "4EFXHI" to "EFXHI"
  143.       set the name of cast "4ARUP" to "ARUP"
  144.       set the name of cast "4ARDWN" to "ARDWN"
  145.       set the name of cast "4STARS" to "STARS"
  146.     end if
  147.   else
  148.     puppetPalette("PAL_MAIN")
  149.     if 0 then
  150.       set the name of cast "8LOGOCIR" to "LOGOCIR"
  151.       set the name of cast "8LOGOBS" to "LOGOBS"
  152.       set the name of cast "8LED1" to "LED1"
  153.       set the name of cast "8LED2" to "LED2"
  154.       set the name of cast "8POINTER" to "POINTER"
  155.       set the name of cast "8WALK" to "WALK"
  156.       set the name of cast "8EFXHI" to "EFXHI"
  157.       set the name of cast "8ARUP" to "ARUP"
  158.       set the name of cast "8ARDWN" to "ARDWN"
  159.       set the name of cast "8STARS" to "STARS"
  160.     end if
  161.   end if
  162. end
  163.  
  164. on inisys
  165.   global up_ini, demo, player, up_mdicha, idsw
  166.   ini_init()
  167.   if not demo then
  168.     if load_ini() then
  169.       set up_ini to 1
  170.     end if
  171.   end if
  172.   lib_load()
  173.   if snd_init() then
  174.     chk_ini()
  175.     if not demo then
  176.       if player then
  177.         casts_import(70)
  178.       end if
  179.     end if
  180.     eff_init()
  181.     initxy()
  182.     initfl()
  183.     help_init()
  184.     tl_create()
  185.     sl_create()
  186.     if the machineType = 256 then
  187.       if up_mdicha >= 0 then
  188.         midi_init()
  189.       end if
  190.     end if
  191.   else
  192.     play frame 9
  193.     set fcommand to "QUIT"
  194.     cur_on()
  195.   end if
  196. end
  197.  
  198. on haltcircle
  199.   cleanupsounds()
  200.   lib_free()
  201.   halt()
  202. end
  203.  
  204. on stopMovie
  205.   global player, fcommand
  206.   if 0 then
  207.     if the colorDepth < 8 then
  208.       set the name of cast "LOGOCIR" to "4LOGOCIR"
  209.       set the name of cast "LOGOBS" to "4LOGOBS"
  210.       set the name of cast "LED1" to "4LED1"
  211.       set the name of cast "LED2" to "4LED2"
  212.       set the name of cast "POINTER" to "4POINTER"
  213.       set the name of cast "WALK" to "4WALK"
  214.       set the name of cast "EFXHI" to "4EFXHI"
  215.       set the name of cast "ARUP" to "4ARUP"
  216.       set the name of cast "ARDWN" to "4ARDWN"
  217.       set the name of cast "STARS" to "4STARS"
  218.     else
  219.       set the name of cast "LOGOCIR" to "8LOGOCIR"
  220.       set the name of cast "LOGOBS" to "8LOGOBS"
  221.       set the name of cast "LED1" to "8LED1"
  222.       set the name of cast "LED2" to "8LED2"
  223.       set the name of cast "POINTER" to "8POINTER"
  224.       set the name of cast "WALK" to "8WALK"
  225.       set the name of cast "EFXHI" to "8EFXHI"
  226.       set the name of cast "ARUP" to "8ARUP"
  227.       set the name of cast "ARDWN" to "8ARDWN"
  228.       set the name of cast "STARS" to "8STARS"
  229.     end if
  230.   end if
  231.   lib_free()
  232. end
  233.  
  234. on circleend
  235.   global fcommand, hp_page, demo, minsprites, maxSprites, spritecount, theObjects, mywin
  236.   put "circleend"
  237.   save_mix(0)
  238.   cur_busy()
  239.   if not demo then
  240.     save_ini()
  241.   end if
  242.   if hp_page >= 0 then
  243.     help_close()
  244.   end if
  245.   repeat with i = minsprites to spritecount
  246.     set the puppet of sprite i to 0
  247.   end repeat
  248.   cleanup()
  249.   cleanupsounds()
  250.   lib_free()
  251.   KillArrays()
  252.   if objectp(theObjects) = 1 then
  253.     theObjects(mdispose)
  254.   end if
  255.   if the machineType = 256 then
  256.     puppetTransition(50, 1, 5)
  257.   else
  258.     puppetTransition(50, 1, 10)
  259.   end if
  260.   but_reflash()
  261.   set the castNum of sprite 1 to the number of cast "EMPTY"
  262.   set the puppet of sprite 1 to 1
  263.   if objectp(mywin) then
  264.     forget(mywin)
  265.   end if
  266.   play frame 9
  267.   set fcommand to "QUIT"
  268.   cur_on()
  269. end
  270.  
  271. on cleanup
  272.   global objectCount, theObjects, minsegs, maxsegs, segsprite, segcurrent, firstsound, pastebuf, t1_segcnt, t2_segcnt, t1_idxcnt, t2_idxcnt, AR_nnsc, sel_ttrak
  273.   if objectp(theObjects) = 0 then
  274.     exit
  275.   end if
  276.   repeat with i = minsegs + 1 to objectCount
  277.     set ithObject to theObjects(mget, i)
  278.     if objectp(ithObject) then
  279.       ithObject(mrelease)
  280.       ithObject(mdispose)
  281.     end if
  282.   end repeat
  283.   set objectCount to minsegs
  284.   set segsprite to 0
  285.   set segcurrent to EMPTY
  286.   set sel_ttrak to "1"
  287.   puppetSound(0)
  288.   set AR_nnsc to 1
  289.   set t1_segcnt to 0
  290.   set t2_segcnt to 0
  291.   set t1_idxcnt to 0
  292.   set t2_idxcnt to 0
  293.   set firstsound to 1
  294.   mixneed_off()
  295.   ledclear()
  296.   set hl to "LD" & lzero(1)
  297. end
  298.  
  299. on cleanupsounds
  300.   global pastebuf, nn_mixcast, nn_mixcastinit, Citotaltime, ltl_mix, namepause_bs, cp_idx, cp_1, cp_2
  301.   repeat with i = 1 to 24
  302.     if namepause_bs <> Ar1sound(mget, i) then
  303.       if Ar1play(mget, i) > 0 then
  304.         snd_close(Ar1play(mget, i))
  305.         Ar1play(mput, i, 0)
  306.       end if
  307.     end if
  308.   end repeat
  309.   set tmpsprite to getspritenum("FIRE")
  310.   set the visible of sprite tmpsprite to 0
  311.   set pastebuf to 0
  312.   cp1set(0)
  313.   cp2set(0)
  314.   set Citotaltime to 0
  315.   tl_create()
  316. end
  317.  
  318. on cleanUpArrs x
  319.   if x = 0 then
  320.     set x to 1
  321.   end if
  322.   repeat with i = x to x + 23
  323.     AR1idx(mput, i, 0)
  324.     ar1seg(mput, i, 0)
  325.     ar1pos(mput, i, 0)
  326.     ARCiidx(mput, i, 0)
  327.   end repeat
  328. end
  329.  
  330. on cleanUpt2
  331.   global t2_segcnt, t2_idxcnt, namepause_bs
  332.   repeat with i = 13 to 24
  333.     if Ar1sound(mget, i) <> namepause_bs then
  334.       if value(Ar1play(mget, i)) > 0 then
  335.         snd_close(Ar1play(mget, i))
  336.       end if
  337.     end if
  338.     AR1idx(mput, i, 0)
  339.     ar1seg(mput, i, 0)
  340.     ar1pos(mput, i, 0)
  341.     Ar1play(mput, i, 0)
  342.     Ar1sound(mput, i, EMPTY)
  343.     ARCiidx(mput, i, 0)
  344.   end repeat
  345.   set t2_segcnt to 0
  346.   set t2_idxcnt to 0
  347. end
  348.  
  349. on set_sprites
  350.   global minsprites, disk
  351.   set sp to create_vsp("SNDWIN")
  352.   set the ink of sprite sp to 1
  353.   sprite_show(sp, 557, 195)
  354.   set sp to create_vsp("LOP")
  355.   set the ink of sprite sp to 36
  356.   set the backColor of sprite sp to 0
  357.   sprite_show(sp, 235, 292)
  358.   set sp to create_vsp("FIRE")
  359.   set the ink of sprite sp to 8
  360.   sprite_show(sp, 237, 247)
  361.   set the visible of sprite sp to 0
  362.   set sp to create_vsp("DEL")
  363.   set the ink of sprite sp to 8
  364.   sprite_show(sp, 189, 199)
  365.   set sp to create_vsp("MIX")
  366.   set the ink of sprite sp to 8
  367.   sprite_show(sp, 282, 199)
  368.   set sp to create_vsp("VOLUME")
  369.   set the ink of sprite sp to 8
  370.   sprite_show(sp, 458, 458)
  371.   set sp to create_vsp("TITLE")
  372.   set the ink of sprite sp to 1
  373.   sprite_show(sp, 557, 176)
  374.   set sp to create_vsp("POINTER")
  375.   set the ink of sprite sp to 36
  376.   sprite_show(sp, 525, 1500)
  377.   set sp to create_vsp("WINMSG")
  378.   set the ink of sprite sp to 0
  379.   sprite_show(sp, 1500, 1500)
  380.   put "INIT" into field "MSGTXT"
  381.   set sp to create_vsp("MSGTXT")
  382.   set the ink of sprite sp to 1
  383.   set the editableText of sprite sp to 0
  384.   sprite_show(sp, 1500, 1500)
  385.   set sp to create_vsp("EFXHI")
  386.   set the ink of sprite sp to 36
  387.   sprite_show(sp, 1500, 1500)
  388.   set sp to create_vsp("MUTE")
  389.   set the ink of sprite sp to 36
  390.   sprite_show(sp, 1500, 1500)
  391.   set sp to create_vsp("LED1")
  392.   set the ink of sprite sp to 36
  393.   sprite_show(sp, 1500, 1500)
  394.   set sp to create_vsp("LED2")
  395.   set the ink of sprite sp to 36
  396.   sprite_show(sp, 1500, 1500)
  397.   set sp to create_vsp("WALK")
  398.   set the ink of sprite sp to 36
  399.   sprite_show(sp, 1500, 1500)
  400.   set sp to create_vsp("BF_CP1")
  401.   set the ink of sprite sp to 8
  402.   sprite_show(sp, 1500, 1500)
  403.   set sp to create_vsp("BF_CP2")
  404.   set the ink of sprite sp to 8
  405.   sprite_show(sp, 1500, 1500)
  406.   setfont("title")
  407.   setfont("sndwin")
  408.   setdisk_col()
  409. end
  410.  
  411. on getspritenum name
  412.   global minsprites, spritecount, maxSprites
  413.   repeat with i = minsprites to spritecount
  414.     if vsprites(mget, i) = name then
  415.       return i
  416.     end if
  417.   end repeat
  418.   alert("sprite >" & name & "< not found !")
  419. end
  420.  
  421. on create_vsp spritename
  422.   global spritecount
  423.   set the castNum of sprite spritecount to the number of cast spritename
  424.   set the puppet of sprite spritecount to 1
  425.   vsprites(mput, spritecount, spritename)
  426.   set spritecount to spritecount + 1
  427.   return spritecount - 1
  428. end
  429.  
  430. on chksprites
  431.   global spritecount, minsprites, maxSprites
  432.   repeat with i = minsprites to spritecount
  433.   end repeat
  434. end
  435.  
  436. on casts_get disk, colres
  437.   put "DISK>" & disk & "  color>" & colres
  438.   casts_load(the pathName & "CI__" & disk & lzero(colres) & ".DIR", 35)
  439.   casts_load(the pathName & "ci_segs.dir", 95)
  440. end
  441.  
  442. on casts_load file, init
  443.   set chkcast to init + 1
  444.   if the loaded of cast chkcast = 0 then
  445.     importFileInto(cast init, file)
  446.     if the loaded of cast chkcast = 0 then
  447.       alert("File " & file & " not found. Terminating...")
  448.       return 1
  449.     else
  450.       return 0
  451.     end if
  452.   else
  453.     return 0
  454.   end if
  455. end
  456.  
  457. on casts_clear dwn
  458.   repeat with i = 129 down to 69
  459.     erase(cast i)
  460.     duplicate(cast "EMPTY", cast i)
  461.   end repeat
  462. end
  463.  
  464. on circle_init
  465.   global fcommand
  466.   put "init"
  467.   if the machineType = 256 then
  468.     puppetTransition(50, 1, 5)
  469.   else
  470.     puppetTransition(50, 1, 10)
  471.   end if
  472.   set the castNum of sprite 1 to the number of cast "STARS"
  473.   sprite_show(1, 320, 240)
  474.   set the puppet of sprite 1 to 1
  475.   set the castNum of sprite 3 to the number of cast "LOGOBS"
  476.   set the ink of sprite 3 to 8
  477.   sprite_show(3, 310, 140)
  478.   set the puppet of sprite 3 to 1
  479.   set the castNum of sprite 4 to the number of cast "LOGOCIR"
  480.   set the ink of sprite 4 to 8
  481.   sprite_show(4, 310, 340)
  482.   set the puppet of sprite 4 to 1
  483.   set the castNum of sprite 5 to the number of cast "PRESENTS"
  484.   set the ink of sprite 5 to 1
  485.   sprite_show(5, 280, 210)
  486.   set the puppet of sprite 5 to 1
  487.   set fcommand to EMPTY
  488. end
  489.  
  490. on circle_start1
  491.   global fcommand, framecnt, player
  492.   set the exitLock to 1
  493.   inisys()
  494.   if player then
  495.     if the machineType = 256 then
  496.       puppetTransition(50, 1, 5)
  497.     else
  498.       puppetTransition(50, 1, 10)
  499.     end if
  500.   end if
  501.   set the castNum of sprite 1 to the number of cast "MAIN"
  502.   set the locH of sprite 1 to 319
  503.   set the locV of sprite 1 to 240
  504.   set the puppet of sprite 1 to 1
  505.   set the scriptText of cast "MAIN" to the text of cast "SC_MAIN"
  506.   set the scriptText of cast "FSEL" to the text of cast "SC_FSEL"
  507.   set the scriptText of cast "VOLUME" to the text of cast "SC_SLIDE"
  508.   set the scriptText of cast "MIX" to the text of cast "SC_MAIN"
  509.   set the scriptText of cast "DEL" to the text of cast "SC_MAIN"
  510.   set the scriptText of cast "LOP" to the text of cast "SC_MAIN"
  511.   set the scriptText of cast "SELFNA" to the text of cast "SC_SELF"
  512.   set the textStyle of field "TITLE" to "BOLD"
  513.   set_sprites()
  514.   mute1On()
  515.   set fcommand to "STR2"
  516.   updateStage()
  517. end
  518.  
  519. on circle_start2
  520.   global fcommand, demo
  521.   if demo then
  522.     demowin(0)
  523.   end if
  524.   circlemaster()
  525.   set fcommand to EMPTY
  526.   cur_on()
  527.   set hl to "LD" & lzero(1)
  528.   ledklick(hl)
  529. end
  530.  
  531. on lib_load
  532.   global sndobj, xdbg
  533.   if the machineType = 256 then
  534.     openXLib(the pathName & "xsndwork.dll")
  535.     set sndobj to xsndwork(mnew, xdbg)
  536.   else
  537.     openXLib(the pathName & "sndwork")
  538.     set sndobj to sndwork(mnew)
  539.   end if
  540.   if not objectp(sndobj) then
  541.     alert("XOBJ SNDWORK not found")
  542.   end if
  543. end
  544.  
  545. on lib_free
  546.   global sndobj
  547.   snd_done()
  548.   midi_done()
  549.   if objectp(sndobj) then
  550.     sndobj(mdispose)
  551.     if the machineType = 256 then
  552.       closeXLib(the pathName & "xsndwork.dll")
  553.     else
  554.       closeXLib(the pathName & "sndwork")
  555.     end if
  556.   end if
  557. end
  558.  
  559. on keyDown
  560.   global fcommand
  561.   if not (fcommand = "FSDO") then
  562.     mykeyup()
  563.   end if
  564. end
  565.  
  566. on cmdstate
  567.   global fcommand, scommand, ecommand, fl_msg, acwin, framecnt
  568.   put "<<cmdstate sc>" & scommand & " fc>" & fcommand & " ec>" & ecommand
  569.   put "<<cmdstate fl_msg>" & fl_msg & "< acwin>" & acwin & "<"
  570. end
  571.  
  572. on getfreecast
  573.   repeat with i = 33 to the maxinteger
  574.     if not (the loaded of cast i) then
  575.       exit repeat
  576.     end if
  577.   end repeat
  578.   return i
  579. end
  580.  
  581. on mem_update
  582.   global up_mem, up_sampm, circle_qua, freemaster
  583.   if circle_qua = "16" then
  584.     set up_sampm to integer(up_mem * 50000)
  585.   else
  586.     set up_sampm to integer(up_mem * 100000)
  587.   end if
  588.   set freemaster to up_sampm
  589. end
  590.  
  591. factory Array
  592.