mirror of
https://github.com/callapple/GBBS.git
synced 2024-06-09 14:29:30 +00:00
Clear high bits on segment script source files so they are readable on modern systems
This commit is contained in:
parent
c3f50b0432
commit
cb3dbd107a
|
@ -1 +1,170 @@
|
|||
; ********************
; GBBS Pro v2.2
; Copyright 1980-2017
; ********************
; Bulletin Copy Utility
; By GS @ 04/30/85
; Modified by Lance @ 4/20/87
; Updated for 2.1 - 04/11/90
; Updated for 2.2 - 02/19/17
public start
input "press [ret] to continue..." i$
flag=ram
s1$="<"+chr$(8):s2$=">"+chr$(8)
s3$="{"+chr$(8):s4$="}"+chr$(8)
start
home
print "Bulletin Copy Utility v2.2"
print \"Written by Greg Schaefer"
print "Modified for v2.2 by BillM"
input \"Source Bulletin File (ex: F:B1):" f1$
open #1,f1$:a=mark(1):close
if a print \"Cant find "f1$" press [RET] ";:get i$:goto start
ready f1$:print chr$(8);:sz=(peek(36)=79)
fill ram,64,0:if msg(0) goto status
print \"That message file is empty."
gosub getret:goto start
status
home:z=1:b=(msg(0)/20)*5+1
for x=1 to b step 5
a=20:if x=b a=msg(0) mod 20
for y=5 to a+4:a$=left$("*",flag(z))
print @x,y;z;a$;:z=z+1:next:next
cmd
print @1,1 "R=Restart, Q=Quit, V=View, C=Copy"
print "K=Kill, T=Tag, U=Untag, W=Write"
print "Enter Cmd: ";chr$(32,28);chr$(8,28);
get i$:if i$>"a" i$=chr$(asc(i$)-32)
print chr$(8);i$;:z=1
if i$="Q" goto quit
if i$="V" goto view
if i$="C" goto copy
if i$="K" goto kill
if i$="T" goto tag
if i$="U" goto untag
if i$="R" goto restart
if i$="W" goto write
goto cmd
quit
input @0 "uit Y/N ?" i$:if i$<>"Y" goto cmd
home:goto doquit
restart
input @0 "estart Y/N ?" i$:if i$<>"Y" goto cmd
home:goto start
tag
input @2 "ag (#[,#] or ALL):" i$
if i$="" goto cmd
if left$(i$,1)="A" fill ram,64,255:goto status
tag2
a=val(i$):if not ((a=0) or (a>msg(0))) flag(a)=1
a=instr(",",i$):if a i$=mid$(i$,a+1):goto tag2
goto status
untag
input @2 "ntag (#[,#] or ALL):" i$
if i$="" goto cmd
if left$(i$,1)="A" fill ram,64,0:goto status
untag2
a=val(i$):if not ((a=0) or (a>msg(0))) flag(a)=0
a=instr(",",i$):if a i$=mid$(i$,a+1):goto untag2
goto status
view
input @2 "iew (ALL,TAG,#[,#]):" i$
gosub inprng:if i$="" goto cmd
home:print "Viewing Bulletin(s):"
view2
d=0:gosub show:if a goto view2
gosub getret:goto status
write
input @2 "rite (ALL,TAG,#[,#]):" i$
gosub inprng:if i$="" goto cmd
write2
home:print "Write these bulletins:"\
gosub list:input @2 \"Filename (to write):" f$
if f$="" goto cmd
create f$:open #1,f$:append #1
print \"Wait...Writing bulletin(s)"
write3
d=1:gosub show:if a goto write3
close:goto status
kill
input @2 "ill (ALL,TAG,#[,#]):" i$
gosub inprng:if i$="" goto cmd
home:print "Kill these bulletins:"\:gosub list
input @0 \"Kill: Are you sure Y/N ?" i$
if i$<>"Y" goto status
print "Wait...Killing bulletin(s)"
b=msg(msg(0)):for x=1 to msg(0)
if flag(x+512) kill #msg(x)
next:crunch:a=msg(0):if a msg(a)=b
update:if a goto status
home:print \"All bulletins killed."
gosub getret:goto start
copy
input @2 "opy (ALL,TAG,#[,#]):" i$
gosub inprng:if i$="" goto cmd
home:print "Copy these bulletins:"\:gosub list
input @0 \"Copy: Are you sure Y/N ?" i$
if i$<>"Y" goto status
copy2
print \"Enter destination bulletin file"
input @2 \"Destin Bulletin File (ex: D:B2):" f$
if f$="" goto cmd
open #1,f$:a=mark(1):close:b=msg(0)
if a print "Can't find "f$" press [RET]";:get i$:goto copy2
print \"Wait...Copying bulletin(s): ";
open #1,"b:data":input #1,c1,c2,ct,ct$,da$
input #1,nu,mn,wm\lu$:close:ready f$
for x=1 to b:if not flag(x+512) goto copy3
print s1$;:kill "dummy":create "dummy":open #1,"dummy"
print s2$;:ready f1$:copy #msg(x),#1:close:ready f$
print s3$;:b=msg(0)+1:copy "dummy",#msg(b):msg(b)=mn
update:mn=mn+1:print s4$;
copy3
next:open #1,"b:data":print #1,c1,c2,ct,ct$,da$
print #1,nu,mn,wm\lu$:close:ready f1$:goto status
inprng
if left$(i$,1)="T" move ram,64 to ram2:return
if left$(i$,1)="A" fill ram2,64,255:return
fill ram2,64,0
inprng2
a=val(i$):if (a=0) or (a>msg(0)) i$="":return
flag(a+512)=1:a=instr(",",i$):if not a return
i$=mid$(i$,a+1):goto inprng2
list
a$="":for x=1 to msg(0)
if flag(x+512) print a$x;:a$=","
next:if peek(36)>0 print
return
show
if z>msg(0) a=0:return
if flag(z+512)=0 z=z+1:goto show
input #msg(z),sb$\b,b$\c,c$
print #d,\"Numb ->"z" of "msg(0)\" Sub ->"sb$
print #d, " To ->"b$\"From ->"c$
copy #6,#d:a=1:z=z+1:return
getret
input @2 \"Press [RETURN] to continue... "i$
return
doquit
end
|
||||
; ********************
|
||||
; GBBS Pro v2.2
|
||||
; Copyright 1980-2017
|
||||
; ********************
|
||||
|
||||
; Bulletin Copy Utility
|
||||
; By GS @ 04/30/85
|
||||
; Modified by Lance @ 4/20/87
|
||||
; Updated for 2.1 - 04/11/90
|
||||
; Updated for 2.2 - 02/19/17
|
||||
|
||||
public start
|
||||
|
||||
input "press [ret] to continue..." i$
|
||||
|
||||
flag=ram
|
||||
s1$="<"+chr$(8):s2$=">"+chr$(8)
|
||||
s3$="{"+chr$(8):s4$="}"+chr$(8)
|
||||
|
||||
start
|
||||
home
|
||||
print "Bulletin Copy Utility v2.2"
|
||||
print \"Written by Greg Schaefer"
|
||||
print "Modified for v2.2 by BillM"
|
||||
input \"Source Bulletin File (ex: F:B1):" f1$
|
||||
open #1,f1$:a=mark(1):close
|
||||
if a print \"Cant find "f1$" press [RET] ";:get i$:goto start
|
||||
ready f1$:print chr$(8);:sz=(peek(36)=79)
|
||||
fill ram,64,0:if msg(0) goto status
|
||||
print \"That message file is empty."
|
||||
gosub getret:goto start
|
||||
|
||||
status
|
||||
home:z=1:b=(msg(0)/20)*5+1
|
||||
for x=1 to b step 5
|
||||
a=20:if x=b a=msg(0) mod 20
|
||||
for y=5 to a+4:a$=left$("*",flag(z))
|
||||
print @x,y;z;a$;:z=z+1:next:next
|
||||
|
||||
cmd
|
||||
print @1,1 "R=Restart, Q=Quit, V=View, C=Copy"
|
||||
print "K=Kill, T=Tag, U=Untag, W=Write"
|
||||
print "Enter Cmd: ";chr$(32,28);chr$(8,28);
|
||||
get i$:if i$>"a" i$=chr$(asc(i$)-32)
|
||||
print chr$(8);i$;:z=1
|
||||
if i$="Q" goto quit
|
||||
if i$="V" goto view
|
||||
if i$="C" goto copy
|
||||
if i$="K" goto kill
|
||||
if i$="T" goto tag
|
||||
if i$="U" goto untag
|
||||
if i$="R" goto restart
|
||||
if i$="W" goto write
|
||||
goto cmd
|
||||
|
||||
quit
|
||||
input @0 "uit Y/N ?" i$:if i$<>"Y" goto cmd
|
||||
home:goto doquit
|
||||
|
||||
restart
|
||||
input @0 "estart Y/N ?" i$:if i$<>"Y" goto cmd
|
||||
home:goto start
|
||||
|
||||
tag
|
||||
input @2 "ag (#[,#] or ALL):" i$
|
||||
if i$="" goto cmd
|
||||
if left$(i$,1)="A" fill ram,64,255:goto status
|
||||
tag2
|
||||
a=val(i$):if not ((a=0) or (a>msg(0))) flag(a)=1
|
||||
a=instr(",",i$):if a i$=mid$(i$,a+1):goto tag2
|
||||
goto status
|
||||
|
||||
untag
|
||||
input @2 "ntag (#[,#] or ALL):" i$
|
||||
if i$="" goto cmd
|
||||
if left$(i$,1)="A" fill ram,64,0:goto status
|
||||
untag2
|
||||
a=val(i$):if not ((a=0) or (a>msg(0))) flag(a)=0
|
||||
a=instr(",",i$):if a i$=mid$(i$,a+1):goto untag2
|
||||
goto status
|
||||
|
||||
view
|
||||
input @2 "iew (ALL,TAG,#[,#]):" i$
|
||||
gosub inprng:if i$="" goto cmd
|
||||
home:print "Viewing Bulletin(s):"
|
||||
view2
|
||||
d=0:gosub show:if a goto view2
|
||||
gosub getret:goto status
|
||||
|
||||
write
|
||||
input @2 "rite (ALL,TAG,#[,#]):" i$
|
||||
gosub inprng:if i$="" goto cmd
|
||||
write2
|
||||
home:print "Write these bulletins:"\
|
||||
gosub list:input @2 \"Filename (to write):" f$
|
||||
if f$="" goto cmd
|
||||
create f$:open #1,f$:append #1
|
||||
print \"Wait...Writing bulletin(s)"
|
||||
write3
|
||||
d=1:gosub show:if a goto write3
|
||||
close:goto status
|
||||
|
||||
kill
|
||||
input @2 "ill (ALL,TAG,#[,#]):" i$
|
||||
gosub inprng:if i$="" goto cmd
|
||||
home:print "Kill these bulletins:"\:gosub list
|
||||
input @0 \"Kill: Are you sure Y/N ?" i$
|
||||
if i$<>"Y" goto status
|
||||
print "Wait...Killing bulletin(s)"
|
||||
b=msg(msg(0)):for x=1 to msg(0)
|
||||
if flag(x+512) kill #msg(x)
|
||||
next:crunch:a=msg(0):if a msg(a)=b
|
||||
update:if a goto status
|
||||
home:print \"All bulletins killed."
|
||||
gosub getret:goto start
|
||||
|
||||
copy
|
||||
input @2 "opy (ALL,TAG,#[,#]):" i$
|
||||
gosub inprng:if i$="" goto cmd
|
||||
home:print "Copy these bulletins:"\:gosub list
|
||||
input @0 \"Copy: Are you sure Y/N ?" i$
|
||||
if i$<>"Y" goto status
|
||||
copy2
|
||||
print \"Enter destination bulletin file"
|
||||
input @2 \"Destin Bulletin File (ex: D:B2):" f$
|
||||
if f$="" goto cmd
|
||||
open #1,f$:a=mark(1):close:b=msg(0)
|
||||
if a print "Can't find "f$" press [RET]";:get i$:goto copy2
|
||||
print \"Wait...Copying bulletin(s): ";
|
||||
open #1,"b:data":input #1,c1,c2,ct,ct$,da$
|
||||
input #1,nu,mn,wm\lu$:close:ready f$
|
||||
|
||||
for x=1 to b:if not flag(x+512) goto copy3
|
||||
print s1$;:kill "dummy":create "dummy":open #1,"dummy"
|
||||
print s2$;:ready f1$:copy #msg(x),#1:close:ready f$
|
||||
print s3$;:b=msg(0)+1:copy "dummy",#msg(b):msg(b)=mn
|
||||
update:mn=mn+1:print s4$;
|
||||
copy3
|
||||
next:open #1,"b:data":print #1,c1,c2,ct,ct$,da$
|
||||
print #1,nu,mn,wm\lu$:close:ready f1$:goto status
|
||||
|
||||
inprng
|
||||
if left$(i$,1)="T" move ram,64 to ram2:return
|
||||
if left$(i$,1)="A" fill ram2,64,255:return
|
||||
fill ram2,64,0
|
||||
inprng2
|
||||
a=val(i$):if (a=0) or (a>msg(0)) i$="":return
|
||||
flag(a+512)=1:a=instr(",",i$):if not a return
|
||||
i$=mid$(i$,a+1):goto inprng2
|
||||
|
||||
list
|
||||
a$="":for x=1 to msg(0)
|
||||
if flag(x+512) print a$x;:a$=","
|
||||
next:if peek(36)>0 print
|
||||
return
|
||||
|
||||
show
|
||||
if z>msg(0) a=0:return
|
||||
if flag(z+512)=0 z=z+1:goto show
|
||||
input #msg(z),sb$\b,b$\c,c$
|
||||
print #d,\"Numb ->"z" of "msg(0)\" Sub ->"sb$
|
||||
print #d, " To ->"b$\"From ->"c$
|
||||
copy #6,#d:a=1:z=z+1:return
|
||||
|
||||
getret
|
||||
input @2 \"Press [RETURN] to continue... "i$
|
||||
return
|
||||
|
||||
doquit
|
||||
end
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1,68 @@
|
|||
; *******************
; GBBS "Pro" V:2.2
; Copyright 1980-2017
; Kevin M. Smallwood
; *******************
; Message File 1.0-1.2 to 2.2 Converter
; This module will convert the stock GBBS Pro V:1.2
; message formats to the standard V:2.2 format.
; *NOTE*: If you have modified your message segments
; to alter the way it writes the header info you will
; need to adjust this program accordingly.
; Written by Lance on 02/03/87
; Updated to 2.1 on 04/11/90 - LPT
; Updated to 2.2 on 02/19/17 - WPM
msg.conv
print '
Once this program runs your message
files will be in V:2.1 format and will
not run under 1.0-1.2. Once you do this
there is no turnning back.'
print \"Do you wish to continue (YES/[NO]) ? NO";
print chr$(8,2);:input i$
if i$<>"YES" end
open #1,"b:data2"
mark(1)=1120:input #1,ab
close
print \"System has "ab" sub-boards"\
for bb=1 to ab
gosub read.msg
print "Converting Board #"bb" - The "bn$
print "Message #";
for a=1 to msg(0)
print a;
edit(0):gosub convert
print chr$(8,(len(str$(a))));
next:print:print:next
print '
Conversion compleate!
Your systems Message files are now
converted to run under GBBS Pro V:2.2
Please make sure you have made the
changes to your message segments
before running the board with the
messages in this format.':end
read.msg
open #1,"b:data2":position #1,128,bb+8
input #1,bn$\bf$\b3,b4\bs,bs$\mb,kl,kb
close:ready bf$
return
convert
input #msg(a),un,sb$\fr$
copy #6,#8
ti=0:ti$="All Users"
x=msg(a):kill #msg(a)
print #msg(a),sb$\ti,ti$\un,mid$(fr$,8)
copy #8,#6:msg(a)=x:update
return
|
||||
; *******************
|
||||
; GBBS "Pro" V:2.2
|
||||
; Copyright 1980-2017
|
||||
; Kevin M. Smallwood
|
||||
; *******************
|
||||
; Message File 1.0-1.2 to 2.2 Converter
|
||||
; This module will convert the stock GBBS Pro V:1.2
|
||||
; message formats to the standard V:2.2 format.
|
||||
; *NOTE*: If you have modified your message segments
|
||||
; to alter the way it writes the header info you will
|
||||
; need to adjust this program accordingly.
|
||||
|
||||
; Written by Lance on 02/03/87
|
||||
; Updated to 2.1 on 04/11/90 - LPT
|
||||
; Updated to 2.2 on 02/19/17 - WPM
|
||||
|
||||
msg.conv
|
||||
print '
|
||||
Once this program runs your message
|
||||
files will be in V:2.1 format and will
|
||||
not run under 1.0-1.2. Once you do this
|
||||
there is no turnning back.'
|
||||
print \"Do you wish to continue (YES/[NO]) ? NO";
|
||||
print chr$(8,2);:input i$
|
||||
if i$<>"YES" end
|
||||
|
||||
open #1,"b:data2"
|
||||
mark(1)=1120:input #1,ab
|
||||
close
|
||||
print \"System has "ab" sub-boards"\
|
||||
for bb=1 to ab
|
||||
gosub read.msg
|
||||
print "Converting Board #"bb" - The "bn$
|
||||
print "Message #";
|
||||
for a=1 to msg(0)
|
||||
print a;
|
||||
edit(0):gosub convert
|
||||
print chr$(8,(len(str$(a))));
|
||||
next:print:print:next
|
||||
print '
|
||||
Conversion compleate!
|
||||
|
||||
Your systems Message files are now
|
||||
converted to run under GBBS Pro V:2.2
|
||||
|
||||
Please make sure you have made the
|
||||
changes to your message segments
|
||||
before running the board with the
|
||||
messages in this format.':end
|
||||
|
||||
read.msg
|
||||
open #1,"b:data2":position #1,128,bb+8
|
||||
input #1,bn$\bf$\b3,b4\bs,bs$\mb,kl,kb
|
||||
close:ready bf$
|
||||
return
|
||||
|
||||
convert
|
||||
input #msg(a),un,sb$\fr$
|
||||
copy #6,#8
|
||||
ti=0:ti$="All Users"
|
||||
x=msg(a):kill #msg(a)
|
||||
print #msg(a),sb$\ti,ti$\un,mid$(fr$,8)
|
||||
copy #8,#6:msg(a)=x:update
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,71 @@
|
|||
; *******************
; GBBS "Pro" V:2.2
; New Msg Fix
; Copyright 1980-2017
; Kevin M. Smallwood
; *******************
byte=ram
start
text:home
print "New Msg Fix V2.2"
print \"Reset users to see all or none of"
print "the new bulletins?"
input @0 \"(All/None):" i$
if i$="A" lr=1
if i$="N" lr=2
if not lr goto start
open #1,"b:data"
input #1,c1,c2,ct,ct$,da$
input #1,nu,mn,wm,tm\lu$
close:mn=1:tm=0
bb=1:gosub bl.ldinf
for x=1 to ab
bb=x:gosub bl.ldinf
print \"Fixing: "bn$
ready bf$
if not msg(0) goto loop
for y=1 to msg(0)
msg(y)=mn:mn=mn+1
tm=tm+1:next
loop
next:update
if lr=2 then lr=mn
print \"Fixing Users..."\
open #1,"b:users"
for x=1 to nu
print "Fixing user #"x" of "nu;:poke 36,0
position #1,128,x
input #1,a$
if a$="" goto loop2
byte(0)=lr mod 256:byte(1)=lr/256
position #1,128,x,112
write #1,ram,2
loop2
next:close
open #1,"b:data"
print #1,c1,c2,ct,ct$,da$
print #1,nu,mn,wn,tm\lu$
close
print \\"New Msg Fix Complete"
end
bl.ldinf
if bb=0 then bf$="":bl=0:return
me=0:if bl=bb ready bf$:return
bl=bb:open #1,"b:data2"
mark(1)=1120:input #1,ab
if bb>ab close:bf$="":bl=0:return
position #1,128,bb+8
input #1,bn$\bf$\b3,b4\bs,bs$\mb,kl,kb
b1=1:if b3 then b1=flag(b3)
b2=1:if b4 then b2=flag(b4)
close:if bf$="" then bl=0:return
if (b1) ready bf$:nn=nb
return
|
||||
; *******************
|
||||
; GBBS "Pro" V:2.2
|
||||
; New Msg Fix
|
||||
; Copyright 1980-2017
|
||||
; Kevin M. Smallwood
|
||||
; *******************
|
||||
byte=ram
|
||||
|
||||
start
|
||||
text:home
|
||||
print "New Msg Fix V2.2"
|
||||
print \"Reset users to see all or none of"
|
||||
print "the new bulletins?"
|
||||
input @0 \"(All/None):" i$
|
||||
if i$="A" lr=1
|
||||
if i$="N" lr=2
|
||||
if not lr goto start
|
||||
open #1,"b:data"
|
||||
input #1,c1,c2,ct,ct$,da$
|
||||
input #1,nu,mn,wm,tm\lu$
|
||||
close:mn=1:tm=0
|
||||
bb=1:gosub bl.ldinf
|
||||
for x=1 to ab
|
||||
bb=x:gosub bl.ldinf
|
||||
print \"Fixing: "bn$
|
||||
ready bf$
|
||||
if not msg(0) goto loop
|
||||
for y=1 to msg(0)
|
||||
msg(y)=mn:mn=mn+1
|
||||
tm=tm+1:next
|
||||
|
||||
loop
|
||||
next:update
|
||||
if lr=2 then lr=mn
|
||||
|
||||
print \"Fixing Users..."\
|
||||
open #1,"b:users"
|
||||
for x=1 to nu
|
||||
print "Fixing user #"x" of "nu;:poke 36,0
|
||||
position #1,128,x
|
||||
input #1,a$
|
||||
if a$="" goto loop2
|
||||
|
||||
byte(0)=lr mod 256:byte(1)=lr/256
|
||||
position #1,128,x,112
|
||||
write #1,ram,2
|
||||
|
||||
loop2
|
||||
next:close
|
||||
|
||||
open #1,"b:data"
|
||||
print #1,c1,c2,ct,ct$,da$
|
||||
print #1,nu,mn,wn,tm\lu$
|
||||
close
|
||||
|
||||
print \\"New Msg Fix Complete"
|
||||
end
|
||||
|
||||
bl.ldinf
|
||||
if bb=0 then bf$="":bl=0:return
|
||||
me=0:if bl=bb ready bf$:return
|
||||
bl=bb:open #1,"b:data2"
|
||||
mark(1)=1120:input #1,ab
|
||||
if bb>ab close:bf$="":bl=0:return
|
||||
position #1,128,bb+8
|
||||
input #1,bn$\bf$\b3,b4\bs,bs$\mb,kl,kb
|
||||
b1=1:if b3 then b1=flag(b3)
|
||||
b2=1:if b4 then b2=flag(b4)
|
||||
close:if bf$="" then bl=0:return
|
||||
if (b1) ready bf$:nn=nb
|
||||
return
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1,95 @@
|
|||
; *******************
; GBBS "Pro" V:2.2n
; Copyright 1980-1990
; Kevin M. Smallwood
; *******************
; 12/23/86 By Lance
; 04/11/90 Updated to 2.1 - LPT
; 02/19/2017 Updated to 2.2n
; Get data from the Data file for number of users to convert
user.conv
print '
This program will convert your 1.2 user
file to run under the 2.2 format. It
will not harm your existing user file.':print
print \"Do you wish to continue (YES/[NO]) ? NO";
print chr$(8,2):input i$
if i$<>"YES" end
rd.data
open #1,"b:data"
input #1,c1,c2,ct,ct$,da$
input #1,nu,mn,wm,tm\lu$:close
print "System has "nu" users"\
; Start the actual conversion
; create the temp user file
create "b:users.temp"
open #1,"b:users"
open #2,"b:users.temp"
print "Converting User #";
for x=1 to nu:print x;
; set the ram for the old file
set pa$=ram,8:set ph$=ram+8,12
when$=ram+20:flag=ram+22
nibble=ram+27:byte=ram+29
gosub rd.old.user
d$=d1$+" "+d2$:gosub cn.name:d3$=xx$
; Save the stats for conversion to the new format
tl=nibble(1):ct=nibble(2):up=nibble(3)
tc=byte(0):bp=byte(1):dl=byte(2)
lm=byte(3):hm=byte(4):wh$=when$:z=flag
; Set up the new 128 byte ram area
set pa$=ram,8:set ph$=ram+8,12
when$=ram+20:flag=ram+22
nibble=ram+27:byte=ram+37
; Give all users zero nulls & convert the number of uploads
for l=1 to 4:nibble(l)=0:next
nibble(5)=tl:nibble(6)=ct:byte(1)=tc
byte(2)=bp:byte(3)=dl:byte(4)=ul
byte(5)=lm:byte(6)=hm:byte(0)=0
when$=wh$:flag=z:d4$="":d5$=""
gosub wr.new.user
print chr$(8,(len(str$(x))));
next:close
; Rename the files so that 2.2 will run. (saving 1.2's file)
use "b:xdos","r b:users,b:users.1.2"
use "b:xdos","r b:users.temp,b:users"
print "System is now ready for 2.1":end
rd.old.user
position #1,64,x
input #1,d1$,d2$\d3$
position #1,64,x,30
read #1,ram,34:return
wr.new.user
position #2,128,x
print #2,d1$,d2$\d3$\d4$,d5$
position #2,128,x,70
write #2,ram,58:return
cn.name
xx$="":for y=2 to len(d$)
q$=mid$(d$,y,1):if q$=" " q$=mid$(d$,y,2):y=y+1:goto cn.name2
if q$="." q$=mid$(d$,y,2):y=y+1:goto cn.name2
if q$="-" q$=mid$(d$,y,2):y=y+1:goto cn.name2
if q$="_" q$=mid$(d$,y,2):y=y+1:goto cn.name2
if q$=" " q$=mid$(d$,y,2):y=y+1:goto cn.name2
a=asc(q$):if (a<65) or (a>91) and (a<97) y=y+1:goto cn.name2
a=a+32:q$=chr$(a)
cn.name2
xx$=xx$+q$:next:xx$=left$(d$,1)+xx$:return
|
||||
; *******************
|
||||
; GBBS "Pro" V:2.2n
|
||||
; Copyright 1980-1990
|
||||
; Kevin M. Smallwood
|
||||
; *******************
|
||||
; 12/23/86 By Lance
|
||||
; 04/11/90 Updated to 2.1 - LPT
|
||||
; 02/19/2017 Updated to 2.2n
|
||||
; Get data from the Data file for number of users to convert
|
||||
|
||||
user.conv
|
||||
print '
|
||||
This program will convert your 1.2 user
|
||||
file to run under the 2.2 format. It
|
||||
will not harm your existing user file.':print
|
||||
print \"Do you wish to continue (YES/[NO]) ? NO";
|
||||
print chr$(8,2):input i$
|
||||
if i$<>"YES" end
|
||||
|
||||
rd.data
|
||||
open #1,"b:data"
|
||||
input #1,c1,c2,ct,ct$,da$
|
||||
input #1,nu,mn,wm,tm\lu$:close
|
||||
print "System has "nu" users"\
|
||||
|
||||
; Start the actual conversion
|
||||
; create the temp user file
|
||||
|
||||
create "b:users.temp"
|
||||
open #1,"b:users"
|
||||
open #2,"b:users.temp"
|
||||
print "Converting User #";
|
||||
for x=1 to nu:print x;
|
||||
|
||||
; set the ram for the old file
|
||||
|
||||
set pa$=ram,8:set ph$=ram+8,12
|
||||
when$=ram+20:flag=ram+22
|
||||
nibble=ram+27:byte=ram+29
|
||||
gosub rd.old.user
|
||||
d$=d1$+" "+d2$:gosub cn.name:d3$=xx$
|
||||
|
||||
; Save the stats for conversion to the new format
|
||||
|
||||
tl=nibble(1):ct=nibble(2):up=nibble(3)
|
||||
tc=byte(0):bp=byte(1):dl=byte(2)
|
||||
lm=byte(3):hm=byte(4):wh$=when$:z=flag
|
||||
|
||||
; Set up the new 128 byte ram area
|
||||
|
||||
set pa$=ram,8:set ph$=ram+8,12
|
||||
when$=ram+20:flag=ram+22
|
||||
nibble=ram+27:byte=ram+37
|
||||
|
||||
; Give all users zero nulls & convert the number of uploads
|
||||
|
||||
for l=1 to 4:nibble(l)=0:next
|
||||
nibble(5)=tl:nibble(6)=ct:byte(1)=tc
|
||||
byte(2)=bp:byte(3)=dl:byte(4)=ul
|
||||
byte(5)=lm:byte(6)=hm:byte(0)=0
|
||||
when$=wh$:flag=z:d4$="":d5$=""
|
||||
gosub wr.new.user
|
||||
|
||||
print chr$(8,(len(str$(x))));
|
||||
next:close
|
||||
|
||||
; Rename the files so that 2.2 will run. (saving 1.2's file)
|
||||
|
||||
use "b:xdos","r b:users,b:users.1.2"
|
||||
use "b:xdos","r b:users.temp,b:users"
|
||||
print "System is now ready for 2.1":end
|
||||
|
||||
rd.old.user
|
||||
position #1,64,x
|
||||
input #1,d1$,d2$\d3$
|
||||
position #1,64,x,30
|
||||
read #1,ram,34:return
|
||||
|
||||
wr.new.user
|
||||
position #2,128,x
|
||||
print #2,d1$,d2$\d3$\d4$,d5$
|
||||
position #2,128,x,70
|
||||
write #2,ram,58:return
|
||||
|
||||
cn.name
|
||||
xx$="":for y=2 to len(d$)
|
||||
q$=mid$(d$,y,1):if q$=" " q$=mid$(d$,y,2):y=y+1:goto cn.name2
|
||||
if q$="." q$=mid$(d$,y,2):y=y+1:goto cn.name2
|
||||
if q$="-" q$=mid$(d$,y,2):y=y+1:goto cn.name2
|
||||
if q$="_" q$=mid$(d$,y,2):y=y+1:goto cn.name2
|
||||
if q$=" " q$=mid$(d$,y,2):y=y+1:goto cn.name2
|
||||
a=asc(q$):if (a<65) or (a>91) and (a<97) y=y+1:goto cn.name2
|
||||
a=a+32:q$=chr$(a)
|
||||
cn.name2
|
||||
xx$=xx$+q$:next:xx$=left$(d$,1)+xx$:return
|
||||
|
|
Loading…
Reference in New Issue
Block a user