Archived
1
0
This repository has been archived on 2025-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
powerbasic/gam_mast.bas
2013-07-15 23:19:32 +02:00

271 lines
5.8 KiB
QBasic
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$link "text.obj"
dim x(100)
dim title$(100)
dim file$(100)
declare sub putchar(integer,integer,integer,integer,string)
noz=0
gosub Logo
1 a$=inkey$:if a$="" then 1
screen 0,0,0
12 width 40
color 14:print"*** GAME * MASTER ***"
color 11:print" written by Markus Birth"
print
color 15
print"W„hlen Sie ein System:"
print
print" System Anzahl Tips"
msk$="*.MD_":gosub GetFileNum
MDNum=filenum
print" [M]ega Drive ";MDNum
msk$="*.TIP":gosub GetFileNum
PCNum=filenum
msk$="*.HEX":gosub GetFileNum
PCNum=PCNum+filenum
msk$="*.ADV":gosub GetFileNum
PCNum=PCNum+filenum
msk$="*.COD":gosub GetFileNum
PCNum=PCNum+filenum
print" [P]C ";PCNum
print" [E]nde"
print
print"Geben Sie einen Buchstaben ein: ";
2 a$=inkey$:if A$="" then 2
if (a$="m" or a$="M") and MDNum>0 then print "M":gosub Roger:goto MegaDrive
if (A$="p" or a$="P") and PCNum>0 then print "P":gosub Roger:goto PC
if a$="e" or a$="E" then print "E":gosub Roger:goto Ende
gosub Signal
goto 2
MegaDrive:
cls
width 80
color 15
print"Zu folgenden Spielen existiert ein Text: (Auswahl mit 8/2/RET/ESC)"
x=0
'********* MDGetName
x=x+1
dat$=dir$("*.md_")
3 open "I",#1,dat$
file$(x)=dat$
line input #1, title$(x)
close #1
x=x+1
dat$=dir$
if dat$="" then mx=x-1:a=1:goto 4
goto 3
4 for f=a to mx
if f+y>21 then more=1:exit for
locate f+y+2,1
print title$(f)
next f
if x=0 or x>21 then x=1
'************ MDPrintItOut
6 locate x+y+2,1:color 0,7:print title$(x);space$(80-len(title$(x)))
if oldx<>0 then mem=oldx:oldx=0:goto 10
a$=inkey$:if a$="" then 6
10 locate x+y+2,1:color 15,0:print title$(x);space$(80-len(title$(x)))
altx=x
if mem<>0 then x=mem:mem=0
if a$=chr$(27) then gosub Roger:goto 12
if x<mx and (a$="2" or a$=chr$(34)) then x=x+1:gosub Roger
if x>20 and mx>21 and a$="2" or a$=chr$(34) then a=a+1:y=y-1:x=x+1:gosub Roger:goto 4
if x>=2 and (a$="8" or a$="(") then x=x-1:gosub Roger
if a$=chr$(13) then gosub ReadyBeep:goto 7
if altx=x then gosub Signal
goto 6
'********* MDGotIt
7 num=x
file$=file$(x)
bez$=title$(x)
cls:color 15
print bez$:color 7
print
print"[1] Ansehen"
print"[2] Editieren"
fill$=mid$(str$(num),2,5)
8 if len(fill$)<5 then fill$="0"+fill$:goto 8 else FUCK=0
sav$="GM_"+fill$+".DAT"
print"[3] Abspeichern als ";sav$
print"[4] Ausdrucken auf PRN"
print"[5] L™SCHEN"
print:color 15
print"[6] Zur<75>ck":color 7
print
print"Geben Sie eine Zahl ein: "
9 a$=inkey$:if a$="" then 9
if a$="1" or a$="!" then goto MDView
if a$="2" or a$=chr$(34) then goto MDEdit
if a$="3" then goto MDSave
if a$="4" or a$="$" then goto MDPrint
if a$="5" or a$="%" then gosub Roger:goto MDKill
if a$="6" or a$="&" then oldx=num:gosub Roger:goto MegaDrive
goto 9
MDView:
cls
shl$="wpview "+file$
gosub ReadyBeep
shell shl$
oldx=num
goto MegaDrive
MDEdit:
cls
shl$="ncedit "+file$
gosub ReadyBeep
shell shl$
oldx=num-1
goto MegaDrive
MDSave:
cls
print"Speichere '";bez$;"' in ";chr$(34);sav$;chr$(34);" ... ";
shl$="copy "+file$+" "+sav$+" >NUL"
shell shl$
print"OK"
oldx=num
gosub ReadyBeep
goto MegaDrive
MDPrint:
cls
print"Drucke '";bez$;"' nach LPT1 ... ";
shl$="copy "+file$+" LPT1 >NUL"
shell shl$
print"OK"
oldx=num
gosub ReadyBeep
goto MegaDrive
MDKill:
cls
print"Wollen Sie die Datei '";file$;"' mit den Tips f<>r"
print"'";bez$;"'"
input"l”schen (Ja/n)? ",ans$
if ans$="Ja" or ans$="ja" then goto MDKillItNow
oldx=num
goto MegaDrive
MDKillItNow:
print
print"L”sche '";file$;"' ... ";
kill file$
print "OK"
gosub ReadyBeep
goto MegaDrive
PC:
end
Signal:
for z=1 to 3
sound 1000,1.0
delay 1.5/18.2
next z
return
Roger:
sound 1200,1
return
Logo:
screen 9
color 15,0
line (179,13)-(36,13),15
line -(36,135),15
line -(180,135),15
line -(180,74),15
line -(114,74),15
line -(114,94),15
line -(148,94),15
line -(148,112),15
line -(66,112),15
line -(66,37),15
line -(180,37),15
line -(180,13),15
line (194,135)-(194,13),15
line -(292,13),15
line -(292,135),15
line -(261,135),15
line -(261,92),15
line -(226,92),15
line -(226,135),15
line -(194,135),15
line (226,64)-(261,33),15,b
line (305,135)-(305,13),15
line -(352,13),15
line -(390,72),15
line -(417,13),15
line -(467,13),15
line -(467,135),15
line -(438,135),15
line -(438,37),15
line -(403,107),15
line -(375,107),15
line -(334,37),15
line -(334,135),15
line -(305,135),15
line (479,135)-(479,13),15
line -(607,13),15
line -(607,40),15
line -(522,40),15
line -(522,107),15
line -(607,107),15
line -(607,135),15
line -(479,135),15
line (522,65)-(569,85),15,b
if noz<>1 then sound 130.81,54.6
call putchar(480,140,15,14,"**** MASTER ****")
if noz<>1 then delay 54.6/18.2
if noz<>1 then sound 174.61,36.4
call putchar(36,4,3,8,"(C)1995 by RoboCop INDUSTRIES")
if noz<>1 then delay 36.4/18.2
if noz<>1 then sound 220,36.4
call putchar(150,317,15,8,"----- Bitte Taste dr<64>cken, -----")
if noz<>1 then delay 36.4/18.2
if noz<>1 then sound 523.25,4
if noz<>1 then delay 3/18.2
paint (165,113),14,15
paint (212,86),12,15
paint (323,86),10,15
if noz<>1 then sound 493.88,36.4
paint (505,78),10,15
paint (531,78),10,15
paint (508,93),8,15
paint (536,81),8,15
call putchar(150,317,15,8,"----- Bitte Taste dr<64>cken, jetzt -----")
if noz<>1 then 14
gosub ReadyBeep
14 return
ReadyBeep:
sound 800,1
delay 1.5/18.2
sound 1000,1
delay 1.5/18.2
sound 1200,1
return
GetFileNum:
filenum=0
x=0
dat$=dir$(msk$)
if dat$="" then return
x=x+1
5 dat$=dir$
if dat$="" then
filenum=x
return
else
x=x+1
goto 5
end if
Ende:
noz=1
gosub Logo
11 a$=inkey$:if a$="" then 11 else gosub Roger
screen 0,0,0
end