(set @default-dest "") ;vi behöver ingen default-katalog (set DISK_NAME "DMZ15-95") ;Ändras för varje diskett (set NO_HELP "") ;Finns med temporärt ;följande används för avslutningstexten och checken om det finns plats för att packa upp programmet. ;En variabel för varje program. (message "DISCLAIMER \n" "Datormagazin garanterar inte på något sätt " "funktionen i de program som ligger på disketten. " "Programmen har testats och viruskontrollerats " "av tidningens redaktion men vi föreslår att " "även du gör en kontroll. Vi ger heller inte " "användarstöd för de olika programmen - de flesta " "program levereras med en instruktion som MÅSTE " "läsas innan man använder programmet.") (set DOSMAN 1) (set prg_1 "") (set DOSMAN_size 378178) (set HEXAGONS 2) (set prg_2 "") (set HEXAGONS_size 87305) (set MLINE 4) (set prg_3 "") (set MLINE_SIZE 843094) (set INS 8) (set prg_4 "") (set INS_SIZE 115144) ; Packar upp ett LHa-arkiv till ett ställe användaren bestämmer själv (procedure UnPackLHA (message (cat ("Nu ska programmet %s packas upp. I nästa steg kommer " prg_name) "installationsprogrammet att fråga dig efter ett lämpligt ställe att packa upp till. " ("Installationsprogrammet kontrollerar även om det finns plats för %s.\n\n" prg_name) "OBS! Väljer du RAM-disken kan programmet inte kontrollera om det finns plats " "Du får själv se till att utrymmet är tillräckligt.\n\n" ("%s behöver ca. %ld Bytes" prg_name prg_size))) (set directory (askdir (prompt "Välj ett ställe där det färdigt uppackde programmet ska hamna. Du " "behöver inte skapa en låda för programmet. Det görs automatiskt.") (help "Här ska du välja ett ställe som programmet ska packas upp till. " "Om det inte finns plats nog för detta meddelar installationsprogrammet detta " "och ger dig möjlighet att välja ett annat ställe.") (default "RAM:") );askdir ) (if (<> (getdevice directory) "RAM") (while (> prg_size (getdiskspace directory))( (message (Cat ("Det finns inte tillräckligt med plats på enhet %s: för att " (getdevice directory)) ("installera %s. Det lediga utrymmet på enheten är %ld Bytes " prg_name (getdiskspace directory)) ("Programmet behöver ca. %ld Bytes. Klicka på proceed och försök med ett annat ställe." prg_size))) (set directory (askdir (prompt "Välj ett ställe där det färdigt uppackde programmet ska hamna. Du " "behöver inte skapa en låda för programmet. Det görs automatiskt.") (help "Här ska du välja ett ställe som programmet ska packas upp till. " "Om det inte finns plats nog för detta meddelar installationsprogrammet detta " "och ger dig möjlighet att välja ett annat ställe.") (default "RAM:") );askdir );set directory (if (= directory "RAM:") (set prg_size 0)) ) );while );if ram: (if (<> directory "") ( ; Lha vill ha ett '/'-tecken bakom en sökväg som inte är rooten till ett device (set space (getdiskspace directory)) (if (<> (getdevice directory) "RAM") (if (< space prg_size) (message "Här borde man ha kod för att välja ett annat ställe") ) ) (set str_len (strlen directory)) (set last_letter (substr directory (- str_len 1))) (if (<> last_letter ":") (set directory (cat directory "/"))) (working ("Packar upp programet %s\nDet tar bara en kort stund..." prg_name)) (run ("%s:c/lhx x %s:program/%s.lha #? \"%s\"" DISK_NAME DISK_NAME prg_name directory)) ) (abort ("Hoppar över programmet %s" prg_name)) ) ) ; main (set prgbitmap (askoptions (prompt "Vilket/Vilka program vill du packa upp?") (help "Vill du bara packa upp ett program så bockar du bara för just det " "programmet. Det går naturligtvis att packa upp alla på en gång. " "Var beredd på att du behöver två eller tre tomma disketter för " "att få plats med allt.") (choices "Dosmanual" "Hexagons" "Musicline v1.14" "Installera installeraren") (default 0) ; inga program förbockade från början ) ) (if (BITAND prgbitmap DOSMAN) ( (set prg_name "DOSMAN") (set prg_1 (cat prg_name "\n")) (set prg_size DOSMAN_SIZE) (UnPackLHA) ) ) (if (BITAND prgbitmap HEXAGONS) ( (set prg_name "HEXAGONS") (set prg_2 (cat prg_name "\n")) (set prg_size HEXAGONS_SIZE) (UnPackLHA) ) ) (if (BITAND prgbitmap MLINE) ( (set prg_name "MLINE") (set prg_3 (cat prg_name "\n")) (set prg_size MLINE_SIZE) (UnPackLHA) ) ) (if (BITAND prgbitmap INS) ( (message "Många program behöver samma installationsprogram som vi använder till DMZ-disketten. " "Därför kan du installera detta program i ditt system nu. Programmet installer kommer att " "kopieras till din kommandokatalog C: Installationsprogrammet kontrollerar även om det " "finns plats för installern. Installern behöver 115144 bytes ledigt.\n\n") (if (exists "C:installer" (noreq)) ;then ( (message "Installern finns redan i din kommandokatalog.") ) ;else (if (> 116000 (getdiskspace "c:")) ;then ( (message "Det finns inte tillräckligt med plats på din systemdisk " "för att installera installern. Programmet behöver " "ca. 116000 Bytes.\n\nDu måste rensa lite på din " "systemdisk.") ) ;else ( (copyfiles (prompt "") (help "") (source (cat DISKNAME ":c/installer")) (dest "c:") ) (set prg_4 "Installer\n") ) );if );if ) ) (message ("Följande program blev installerade:\n\n%s%s%s%s" prg_1 prg_2 prg_3 prg_4)) (exit (quiet))