home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / utl / change.ba < prev    next >
Text File  |  2006-10-19  |  6KB  |  83 lines

  1. 0 REM CHANGE - Rick Perry - 3/1/86        CLUB 100 LIBRARY 415/939-1246 BBS,      937-5039 NEWSLETTER, 932-8856 VOICE
  2. 1 CLEAR500:DEFINTA-Y:DIMF$(26),F(26),Z(2):CLS:SCREEN,0:POKE64173,0:CALL23161:E$=CHR$(27):PRINTE$"V"E$"Q";:ONERRORGOTO74
  3. 2 GOSUB13:A$="":FORI=148TO155:A$=A$+CHR$(I):NEXT:I=VARPTR(A$):CALL23164,0,PEEK(I+1)+256*PEEK(I+2):R$=CHR$(0)+CHR$(8)+CHR$(13)
  4. 3 FORI=20TO32:R$=R$+CHR$(I):NEXT:P=0:L=0:H=0:G=1:K=-1:E=K
  5. 4 PRINT@L*40+H*10,E$"p "F$(P)E$"q
  6. 5 ONG+1GOSUB19,21,24,31:A$=INKEY$:IFA$=""THEN5ELSEONINSTR(R$,A$)GOSUB18,7,77,33,47,59,63,65,68,70,72,6,7,9,11,6:GOTO4
  7. 6 P=(P+1)MOD(N+1):GOTO12
  8. 7 P=P-1:IFP<0THENP=N
  9. 8 GOTO12
  10. 9 IFP>3THENP=P-4ELSERETURN
  11. 10 GOTO12
  12. 11 IFP+3<NTHENP=P+4ELSERETURN
  13. 12 K=-1:PRINT@L*40+H*10," "F$(L*4+H):L=P\4:H=P-L*4:RETURN
  14. 13 P=0:L=0:H=0:FORF=1TO5:READG:FORI=-1694TO-1408STEP11
  15. 14 IF(PEEK(I)AND247)=GTHENN$="":FORJ=3TO10:N$=N$+CHR$(PEEK(I+J)):NEXT:F$(P)=N$:N$=RIGHT$(N$,2):GOSUB16:F(P)=I:P=P+1:GOSUB12
  16. 15 NEXT:NEXT:N=P-1:RETURN:DATA176,240,192,128,160
  17. 16 IFN$="  "ORN$=" "+CHR$(0)THENA$=" "ELSEA$=".
  18. 17 F$(P)=LEFT$(F$(P),6)+A$+N$:RETURN
  19. 18 K=-1:E=K:G=(G+1)MOD4:RETURN
  20. 19 IFETHENE=0:PRINT@308,E$"l"FRE(0)"Free
  21. 20 PRINT@280,;:CALL23064:RETURN
  22. 21 IFETHENE=0:PRINT@280,">Hex >Bin >CA  >CO  Name Kill Invs Menu 
  23. 22 IFKTHENK=0:PRINT@310,;:IFPEEK(F(P))AND8THENPRINTE$"pInvs"E$"q"ELSEPRINT"Invs
  24. 23 RETURN
  25. 24 IFNOTKTHENRETURNELSEK=0:PRINT@280,E$"K":F=F(P):I=PEEK(F)AND247
  26. 25 IFI=240THENPRINT"Alt ROM";ELSEZ=PEEK(F+1)+256*PEEK(F+2):IFI=176THENPRINT"ROM";ELSEIFI=160THENGOSUB61:Z1=Z(1)+6:IFZ(0)=65535ANDZ(2)=63012THENPRINT"CA";:Z(1)=Z(1)-65536ELSEPRINT"CO";ELSEGOSUB29:IFI=128THENPRINT"BA";ELSEPRINT"DO";
  27. 26 PRINT" ";
  28. 27 IFI<>240THENPRINT"@"Z;:IFI<>176THENPRINT"+"Z1;:IFI=160THENPRINTSTR$(Z(0))","MID$(STR$(Z(0)+Z(1)-1),2)","MID$(STR$(Z(2)),2)
  29. 28 RETURN
  30. 29 Z2=PEEK(64434)+256*PEEK(64435):FORJ=0TON:Z3=PEEK(F(J)+1)+256*PEEK(F(J)+2):IFZ3<Z2ANDZ3>ZTHENZ2=Z3
  31. 30 NEXT:Z1=Z2-Z:RETURN
  32. 31 IFETHENE=0:PRINT@280,"Free"FRE(0)"  HIMEM"HIMEM"  MAXRAM"MAXRAM;E$"K
  33. 32 RETURN
  34. 33 F$=F$(P):F=F(P):GOSUB61
  35. 34 IFQANDZ(0)+Z(1)>MAXRAMTHEN73ELSEIFQTHENPOKE-186,PEEK(F+1):POKE-185,PEEK(F+2):Z1=Z(0):GOSUB44ELSEZ1=0:F$="":GOTO37
  36. 35 CLEAR500,Z1:ONERRORGOTO74:GOSUB45:LOADMF$:ONERRORGOTO74:GOSUB45:Z=PEEK(-186)+256*PEEK(-185):Z1=HIMEM
  37. 36 Z2=PEEK(Z+2)+256*PEEK(Z+3)+Z1-1:Z3=PEEK(Z+4)+256*PEEK(Z+5)
  38. 37 GOSUB43:CLS:PRINTCHR$(27)"W":LINEINPUT"Hex output file:";O$:IFO$=""THENRUNELSEGOSUB81:OPENO$FOROUTPUTAS1
  39. 38 IFZ1=0THENZ1=HIMEM:PRINT"Top ("Z1") ";:INPUTZ1:Z2=MAXRMREAD1:PRINT"End ("Z2") ";:INPUTZ2:Z3=Z1:PRINT"Exe ("Z3") ";:INPUTZ3
  40. 39 PRINT#1,Z1;Z2;Z3:ZC=Z1+Z2+Z3:J=0:PRINT"Working...":FORZ=Z1TOZ2:A=PEEK(Z):ZC=ZC+A:X=A\16:Y=AAND15
  41. 40 PRINT#1,MID$(H$,X+1,1)MID$(H$,Y+1,1);:J=J+1:IFJ=39THENJ=0:PRINT#1,
  42. 41 NEXT:IFJ<>0THENPRINT#1,
  43. 42 PRINT#1,ZC:PRINT#1,CHR$(26);:CLOSE:BEEP:IFF$=""THENRUNELSECLEAR500,MAXRAM:RUN
  44. 43 DEFINTA-Y:H$="0123456789ABCDEF":RETURN
  45. 44 F$=F$+CHR$(0):FORJ=1TOLEN(F$):POKEJ-185,ASC(MID$(F$,J)):NEXT:RETURN
  46. 45 F$="":FORJ=1TO9:A=PEEK(J-185):IFA=0THENJ=9ELSEF$=F$+CHR$(A)
  47. 46 NEXT:RETURN
  48. 47 F$=F$(P):CLS:PRINTE$"W":IF(PEEK(F(P))AND247)=192THEN49
  49. 48 LINEINPUT"Hex input file:";F$:IFF$=""THENRUNELSEIFINSTR(F$,":")=0ANDINSTR(F$,".")=0THENF$=F$+".DO
  50. 49 GOSUB43:OPENF$FORINPUTAS1:INPUT#1,Z1,Z2,Z3
  51. 50 IFZ2>=MAXRAMTHENERROR5ELSEIFZ1>=HIMEMTHEN52ELSECLOSE:GOSUB44:CLEAR500,Z1:ONERRORGOTO74:GOSUB45
  52. 51 IFINSTR(F$,":")THENBEEP:PRINT"HIMEM reset... rewind input file,":PRINT"and press ENTER to continue:";:POKE-86,0:A$=INPUT$(1):PRINT:IFA$=CHR$(13)THEN49ELSERUNELSE49
  53. 52 LINEINPUT".CO output file:";B$:N=0:ZC=Z1+Z2+Z3:PRINT"Working...":FORZ=Z1TOZ2
  54. 53 A$=INPUT$(1,1):I=INSTR(H$,A$)-1:IFI<0THEN53
  55. 54 N=NOTN
  56. 55 IFNTHENA=I:GOTO53ELSEA=16*A+I:ZC=ZC+A:POKEZ,A:NEXT:LINEINPUT#1,A$:INPUT#1,Z:CLOSE:IFZ<>ZCTHENGOSUB73:PRINT"Checksum is wrong.":GOTO76
  57. 56 BEEP:IFINSTR(F$,":")=0THENPRINT"Kill hex input file? ";:A$=INPUT$(1):PRINTA$:IFA$="Y"ORA$="y"THENKILLF$
  58. 57 IFB$=""THENRUNELSEA$="clear500,maxram:run":GOSUB58:SAVEMB$,Z1,Z2,Z3
  59. 58 A$=A$+CHR$(13):FORI=1TOLEN(A$):POKE2*I-87,ASC(MID$(A$,I)):POKE2*I-86,0:NEXT:POKE-86,I-1:RETURN
  60. 59 F=F(P):GOSUB61:IFNOTQORZ(2)<>0ORZ(0)+Z(1)<>MAXRAMTHEN73ELSEPOKEZ,255:POKEZ+1,255:POKEZ+4,36:POKEZ+5,246:N$="CA
  61. 60 K=-1:POKEF+9,ASC(N$):POKEF+10,ASC(MID$(N$,2)):GOTO16
  62. 61 Q=0
  63. 62 IF(PEEK(F)AND247)<>160THENRETURNELSEZ=PEEK(F+1)+256*PEEK(F+2):FORJ=0TO2:Z(J)=PEEK(Z+2*J)+256*PEEK(Z+2*J+1):NEXT:Q=-1:RETURN
  64. 63 F=F(P):GOSUB61
  65. 64 IFNOTQORZ(0)<>65535ORZ(2)<>63012THEN73ELSEPOKEZ+4,0:POKEZ+5,0:Z(0)=MAXRAM-Z(1):Y=FIX(Z(0)/256):X=Z(0)-256*Y:POKEZ,X:POKEZ+1,Y:N$="CO":GOTO60
  66. 65 K=-1:E=K:F=F(P):PRINT@280,"New name:"E$"K";:LINEINPUTN$
  67. 66 IFN$>""THENMID$(F$(P),1,6)=LEFT$(N$+SPACE$(6),6):FORJ=1TO6:POKEF+J+2,ASC(MID$(F$(P),J)):NEXT
  68. 67 PRINT"New extension:"E$"K";:LINEINPUTN$:IFN$>""THENN$=LEFT$(N$+SPACE$(2),2):GOTO60ELSERETURN
  69. 68 F=F(P):I=PEEK(F)AND247
  70. 69 IFI=176ORI=240ORF>-1640ANDF<-1606THEN73ELSEK=-1:E=K:PRINT@280,"Kill? "E$"K";:B$=INPUT$(1):PRINTB$:IFB$<>"Y"ANDB$<>"y"THENRETURNELSEA$="run":GOSUB58:KILLF$(P):END
  71. 70 K=-1:F=F(P):I=PEEK(F):IFI=240THENPOKEF,0:RUNELSEIFIAND8THENPOKEF,IAND247ELSEPOKEF,IOR8
  72. 71 RETURN
  73. 72 MENU
  74. 73 SOUND9394,8:RETURN
  75. 74 GOSUB73:CLS:PRINT:IFERR<23THENI=ERRELSEIFERR<50THENI=21ELSEIFERR<59THENI=ERR-27ELSEI=21
  76. 75 I=794+2*I:PRINT"?"CHR$(PEEK(I))CHR$(PEEK(I+1))" Error #"ERR"in line"ERL
  77. 76 PRINTCHR$(27)"W":PRINT"Press ENTER to continue:";:POKE-86,0:IFINPUT$(1)=CHR$(13)THENRUNELSEPOKE64173,1:CALL27804:END
  78. 77 F$=F$(P):F=F(P):I=PEEK(F)AND247:IFI=160THENGOSUB61:IFZ(2)=0THEN73ELSEIFZ(0)<>65535ANDZ(0)+Z(1)>MAXRAMTHEN73
  79. 78 CLS:PRINTE$"W";:POKE64173,1:Z=F+65536:Y=FIX(Z/256):X=Z-256*Y:POKE-589,X:POKE-588,Y:IFI=240THENPOKE-530,0ELSEPOKE-530,9
  80. 79 IFI=160ANDZ(0)<HIMEMTHENCLEAR0,Z(0)ELSECLEAR0
  81. 80 Z=PEEK(-589)+256*PEEK(-588):CALL22848,PEEK(Z)AND247,Z
  82. 81 BEEP:PRINT"Kill .CO file? ";:A$=INPUT$(1):PRINTA$:IFA$="Y"ORA$="y"THENKILLF$:RETURN
  83.