1 REM ESQ.BAS VER 1.54 2 REM ESQ-1 SYSEX EDITOR 3 REM PAABEGYNT 10-5-87 4 REM VERSJON1.54:20-12-88 10 CLEAR50,&H9EFF:WIDTH40 11 DEFINT A,B,C,R,T,U 12 AP=&HB000:CP=&HAF9A:RG=&H9F00 30 DEFUSR0=RG+6:REM Check Seq length 31 DEFUSR1=RG:REM CurProg CX > ESQ 32 DEFUSR2=RG+9:REM 40 prg CX > ESQ 33 DEFUSR3=RG+3:REM 40 prg ESQ > CX 34 DEFUSR4=RG+15:REM 40 prg Display 35 DEFUSR5=RG+12:REM Curprog Display 36 DEFUSR6=RG+18:REM Prg block reset 37 DEFUSR7=RG+21:REM CurSeq CX->ESQ 38 DEFUSR8=RG+24:REM CurSeq ESQ->CX 39 DEFUSR9=RG+27:REM Swap prgrams/banks 40 BLOAD"ESQ.BIN" 50 A=USR6(0) 60 FORBN=1TO3:BA(BN)=AP+(BN-1)*4080:NEXTBN 70 F$="SQ EP2":REM DUMMY NAME 75 FF$="BSTF0289.ALP" 80 FORT=1TO10:KEY(T)ON:NEXTT:KEYOFF 90 GOSUB300 99 REM MAIN LOOP 100 A$=INKEY$:IFA$=""THEN100 150 GOTO100 195 RETURN 199 REM WAIT LOOP ---------------- 200 FORT=1TO10:KEY(T)OFF:NEXTT 205 FORT=1TO4500:NEXTT:BEEP 210 A$=INKEY$:IFA$=""THEN210 220 IFASC(A$)<>27THEN210 230 FORT=1TO10:KEY(T)ON:NEXTT 250 RETURN 260 BLOAD"FACTORY.ALP" 262 BLOAD"E2PROMA.ALP",4080 264 BLOAD"E2PROMB.ALP",8160 269 RETURN 270 BLOAD"HAPA1.ALP" 272 BLOAD"HAPA2.ALP",4080 274 BLOAD"HAPA3.ALP",8160 279 RETURN 280 BLOAD"HAPA4.ALP" 282 BLOAD"HACKER44.ALP",4080 284 BLOAD"BSTF0289.ALP",8160 299 REM MAIN MENU ---------------- 300 CLS:LOCATE0,0:PRINT"*** Program & Sgl Sequence Editor ***":PRINT:PRINT"*** Main Menu ***" 301 LOCATE0,6:PRINT"F1. Print free disk space" 302 LOCATE0,7:PRINT"F2. Program Transfer" 303 LOCATE0,8:PRINT"F3. Sequence Transfer" 304 LOCATE0,9:PRINT"F4. Swap programs or banks" 305 LOCATE0,10:PRINT"F5. Copy programs or banks" 306 LOCATE0,11:PRINT"F6. Load 120 Ensoniq factory patches" 307 LOCATE0,12:PRINT"F7. Load 120 HackerPatches" 308 LOCATE0,13:PRINT"F8. Load HAPA4,HACKER44,BSTF0289" 310 LOCATE0,15:PRINT"F10. Load All Songs & Sequences Editor" 320 A$=INKEY$ 340 ONKEYGOSUB1000,400,500,2000,2050,260,270,280,195,3000 395 RETURN 399 REM PROGRAM TRANSFER MENU--------- 400 CLS 401 LOCATE0,1:PRINT"**** Program Transfer Menu ****" 405 LOCATE0,5:PRINT"F1. Print free disk space" 406 LOCATE0,6:PRINT"F2. Current program ESQ -> CX5" 407 LOCATE0,7:PRINT"F3. Programs CX5 -> ESQ" 408 LOCATE0,8:PRINT"F4. 40 programs ESQ -> CX5" 409 LOCATE0,9:PRINT"F5. Create random patch" 410 LOCATE0,10:PRINT"F6. Load one program from disk" 411 LOCATE0,11:PRINT"F7. Save current program to disk" 412 LOCATE0,12:PRINT"F8. Load 40 programs from disk to CX5" 413 LOCATE0,13:PRINT"F9. Save 40 programs in Bank 1 to disk" 414 LOCATE0,14:PRINT"F10. Return" 420 A$=INKEY$ 440 ONKEYGOSUB1000,1200,1300,1400,1500,1600,800,1800,600,300 495 RETURN 499 REM SEQUENCE TRANSFER MENU ------ 500 CLS 501 LOCATE0,1:PRINT"**** Sequence Transfer Menu ****" 506 LOCATE0,6:PRINT"F1. Print free disk space" 507 LOCATE0,7:PRINT"F2. 1 sequence Disk -> CX5 -> ESQ" 508 LOCATE0,8:PRINT"F3. Current sequence ESQ -> CX5 -> Disk" 510 LOCATE0,10:PRINT"F5. Check sequence status" 515 LOCATE0,15:PRINT"F10. Return" 520 A$=INKEY$ 540 ONKEYGOSUB1000,2100,2200,195,2300,195,195,195,195,300 595 RETURN 599 REM SAVE ALLE PRG. TIL DISK 600 CLS:ONERRORGOTO950 605 FORT=1TO10:KEY(T)OFF:NEXTT 610 PRINT"* Save 40 programs in Bank 1 to disk *":PRINT"Files:" 620 FILES"*.ALP":PRINT 630 INPUT"File name";F$ 640 FI$=F$+".ALP" 650 PRINT"Press 'SELECT' to save ";FI$ 660 PRINT"Press 'ESCAPE' for Menu" 670 A$=INKEY$:IFA$=""THEN670 680 IFASC(A$)=27THENGOSUB400:GOTO795 690 IFASC(A$)=24THEN700 695 GOTO670 700 BSAVEFI$,AP,AP+4079 790 GOSUB400 795 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 799 REM SAVE ETT PRG. TIL DISK 800 CLS:ONERRORGOTO950 802 FORT=1TO10:KEY(T)OFF:NEXTT 805 PRINT"*** Save current program to disk ***":PRINT"Files:" 810 FILES"*.PRG":PRINT 815 FI$=F$+".PRG" 820 PRINT:PRINTTAB(11);FI$ 830 PRINTCHR$(30);:INPUT"File name";FI$ 840 REM FI$=F$+".PRG" 850 PRINT"Press 'SELECT' to save ";FI$ 860 PRINT"Press 'ESCAPE' for Menu" 870 A$=INKEY$:IFA$=""THEN870 880 IFASC(A$)=27THENGOSUB400:GOTO945 890 IFASC(A$)=24THEN900 895 GOTO870 900 BSAVEFI$,CP,CP+101 940 GOSUB400 945 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 949 REM Error handling------------ 950 IFERR=53THENPRINT"File not on this disk!":GOTO970 951 IFERR=56THENPRINT"Bad file name!":GOTO970 960 GOTO990 970 PRINT:PRINT"'ESC' to proceed":GOSUB200:RESUMENEXT 990 ONERRORGOTO0:RETURN 999 REM Print free disk space--------- 1000 FORT=1TO10:KEY(T)OFF:NEXTT 1010 PRINT:PRINT"Disk: ";DSKF(0);"kBytes free" 1095 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1099 REM Current program CX5 -> ESQ" 1100 FORT=1TO10:KEY(T)OFF:NEXTT 1110 CLS:A=USR2(0):A=USR5(0) 1190 GOSUB200:GOSUB400 1195 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1199 REM Current program ESQ -> CX5" 1200 FORT=1TO10:KEY(T)OFF:NEXTT 1205 A=USR1(0) 1210 MN=VARPTR(F$) 1220 SA=PEEK(MN+1)+256*(PEEK(MN+2)) 1221 FORT=0TO5:POKE(SA+T),PEEK(CP+T):NEXTT 1290 GOSUB200:GOSUB400 1295 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1299 REM 40 programs CX5 -> ESQ" 1300 FORT=1TO10:KEY(T)OFF:NEXTT 1310 CLS:A=USR2(0) 1390 GOSUB400 1395 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1399 REM 40 programs ESQ -> CX5" 1400 FORT=1TO10:KEY(T)OFF:NEXTT 1410 CLS:PRINT"Please wait...":A=USR3(0) 1490 GOSUB200:GOSUB400 1495 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1499 REM RANDOM PATCH---------------- 1500 FORT=1TO10:KEY(T)OFF:NEXTT 1502 CLS:PRINT" @~|ÄK?! Creating random patch. *ÍSÜÐÞ\" 1505 RA=INT(RND(-TIME)*255) 1506 FORT=CPTOCP+5 1508 POKET,&H30 1509 NEXTT 1510 FORT=CP+6TOCP+101 1520 RA=INT(RND(8)*255) 1530 POKET,RA 1540 NEXTT 1550 A=USR5(0) 1590 GOSUB200:GOSUB400 1595 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1599 REM Load 1 program from disk" 1600 FORT=1TO10:KEY(T)OFF:NEXTT 1610 CLS:ONERRORGOTO950 1620 PRINTTAB(3)"**** Load 1 program from disk ****":PRINT"Files:" 1625 FILES"*.PRG":PRINT 1630 PRINT"Select file with cursor" 1635 DEFUSR0=RG+30 1640 A$=USR0(FF$) 1645 CLS:DEFUSR0=RG+6 1650 PRINT"Press 'SELECT' to load ";FF$ 1660 PRINT"Press 'ESCAPE' for Menu" 1670 A$=INKEY$:IFA$=""THEN1670 1680 IFASC(A$)=27THENGOSUB400:GOTO1795 1690 IFASC(A$)=24THEN1700 1695 GOTO1670 1700 BLOADFF$ 1710 CLS:A=USR5(0) 1745 GOSUB200:GOSUB400 1795 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1799 REM Load 40 programs from disk" 1800 FORT=1TO10:KEY(T)OFF:NEXTT 1801 CLS:ONERRORGOTO950 1802 PRINTTAB(7)"*** Load 40 programs ***":PRINT"Files:" 1805 FILES"*.ALP":PRINT 1810 PRINT"Bank no.? "; 1815 A$=INKEY$:IFA$=""THEN1815 1817 BN=VAL(A$) 1820 IFBN<1ORBN>3THENBEEP:GOTO1815 1825 PRINTBN 1830 PRINT"Select file with cursor" 1835 DEFUSR0=RG+30 1840 A$=USR0(FF$) 1845 CLS:DEFUSR0=RG+6 1850 PRINT"Press 'SELECT' to load ";FF$ 1855 PRINTTAB(19)"into Bank ";BN 1860 PRINT"Press 'ESCAPE' for Menu" 1870 A$=INKEY$:IFA$=""THEN1870 1880 IFASC(A$)=27THENGOSUB400:GOTO1995 1890 IFASC(A$)=24THEN1900 1895 GOTO1870 1900 BLOADFF$,(BN-1)*4080 1910 CLS:A=USR4(0) 1945 GOSUB200:GOSUB400 1995 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1999 REM Swap programs or banks: ----- 2000 FORT=1TO10:KEY(T)OFF:NEXTT 2010 CLS:A=USR9(0) 2040 GOSUB300 2045 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 2048 REM -------------------------- 2049 REM Copy programs or banks: ----- 2050 FORT=1TO10:KEY(T)OFF:NEXTT 2060 CLS:A=USR9(1) 2090 GOSUB300 2095 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 2099 REM 1 Sequence disk->CX->ESQ----- 2100 FORT=1TO10:KEY(T)OFF:NEXTT 2101 CLS:ONERRORGOTO950 2102 PRINT"** Load 1 sequence from disk to ESQ-1 **":PRINT"Files:" 2105 FILES"*.SEQ":PRINT 2110 PRINT"Select file with cursor" 2112 DEFUSR0=RG+30 2115 A$=USR0(FF$) 2120 CLS:DEFUSR0=RG+6 2125 PRINT"Press 'SELECT' to load ";FF$ 2130 PRINT"Press 'ESCAPE' for Menu":PRINT 2135 A$=INKEY$:IFA$=""THEN2135 2140 IFASC(A$)=27THENGOSUB500:GOTO2195 2145 IFASC(A$)=24THEN2160 2150 GOTO2135 2160 BLOADFF$ 2170 A=USR7(0) 2180 A=USR6(0) 2190 GOSUB200:GOSUB500 2195 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 2199 REM 1 SEQUENCE ESQ->CX->DISK---- 2200 FORT=1TO10:KEY(T)OFF:NEXTT 2201 CLS:ONERRORGOTO950 2202 PRINT"** Save 1 sequence from ESQ-1 to disk **":PRINT"Files:" 2205 FILES"*.SEQ":PRINT 2210 INPUT"File name";F$ 2220 FI$=LEFT$(F$,8)+".SEQ" 2225 PRINT"Press 'SELECT' to save ";FI$ 2230 PRINT"Press 'ESCAPE' for Menu":PRINT 2235 A$=INKEY$:IFA$=""THEN2235 2240 IFASC(A$)=27THENGOSUB500:GOTO2295 2245 IFASC(A$)=24THEN2255 2250 GOTO2235 2255 A=USR8(0) 2260 BSAVEFI$,CP,A 2270 A=USR6(0) 2290 GOSUB1000:GOSUB200:GOSUB500 2295 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 2299 REM CHECKING SEQUENCE LENGTH---- 2300 FORT=1TO10:KEY(T)OFF:NEXTT 2305 CLS:ONERRORGOTO950 2310 PRINT"**** Checking sequence status ****" 2325 LOCATE0,22:PRINT"'SELECT' for current sequence status" 2330 PRINT"'ESCAPE' for Menu"; 2333 LOCATE0,2:PRINT"Seq Time Bars Tempo Bytes" 2335 A$=INKEY$:IFA$=""THEN2335 2340 IFASC(A$)=27THENGOSUB500:GOTO2395 2345 IFASC(A$)=24THEN2355 2350 GOTO2335 2355 A=USR0(0) 2370 FORT=1TO4500:NEXTT:BEEP:GOTO2335 2395 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 3000 CLS:PRINT"Load All Songs & Sequences Editor?":PRINT 3010 PRINT" 'SELECT' or 'ESCAPE'" 3020 A$=INKEY$:IFA$=""THEN3020 3030 IFASC(A$)=27THENGOSUB300:RETURN 3040 IFASC(A$)=24THEN3100 3050 GOTO3020 3100 CLS:PRINT"Program loading. Please wait.....":LOAD"ALSEQ.BAS",R 4000 END:REM SLUTT ESQ.BAS