1 REM MAP.BAS 10 REM VER. 1.3 23-3-89 20 CLS:CLEAR200,&H9F00:KEYOFF:WIDTH40 25 DEFINTR,M:RG=&H9F00:MP=&HB000 30 DEFUSR0=RG:REM START 31 DEFUSR1=RG+3:REM MAP RESET 32 DEFUSR2=RG+6:REM FILE SELECT 33 DEFUSR3=RG+9:REM MIDI THRU 34 DEFUSR4=RG+12:REM MAP VIA MIDI 35 DEFUSR5=RG+15:REM SET MIDI CHANNELS 40 LOCATE13,6:PRINT"MIDI Mapper" 42 LOCATE7,10:PRINT"Syntax Terror Association" 50 BLOAD"MAP.BIN" 55 LOCATE11,22:GOSUB200 90 FF$="NONE ":REM DUMMY NAME 92 FORT=1TO10:KEY(T)ON:NEXTT 94 GOSUB890 99 REM MAIN LOOP 100 A$=INKEY$:IFA$=""THEN100 150 GOTO100 195 RETURN 199 REM WAIT LOOP ---------------- 200 FORT=1TO10:KEY(T)OFF:NEXTT 203 PRINT"Wait a minute..." 205 FORT=1TO2500:NEXTT:BEEP 230 FORT=1TO10:KEY(T)ON:NEXTT 250 RETURN 499 REM MAIN MENU --------------------- 500 CLS 501 LOCATE0,1:PRINT"***** Main Menu *****" 506 LOCATE0,6:PRINT"F1. Print free disk space" 507 LOCATE0,7:PRINT"F2. MIDI thru" 508 LOCATE0,8:PRINT"F3. Activate map" 509 LOCATE0,9:PRINT"F4. Map via MIDI" 510 LOCATE0,10:PRINT"F5. Make new map" 511 LOCATE0,11:PRINT"F6. Reset map" 512 LOCATE0,12:PRINT"F7. Load map from disk" 513 LOCATE0,13:PRINT"F8. Save current map to disk" 515 LOCATE0,15:PRINT"F10. Load ESQ editor?" 520 A$=INKEY$ 540 ONKEYGOSUB1000,1300,1200,1400,1100,800,1600,600,195,3000 595 RETURN 599 REM SAVE CURRENT MAP TO DISK ----- 600 CLS:ONERRORGOTO950 605 FORT=1TO10:KEY(T)OFF:NEXTT 610 PRINT"* Save current map to disk *":PRINT"Files:" 620 FILES"*.MAP":PRINT 630 INPUT"File name";F$ 640 FF$=F$+".MAP" 650 PRINT"Press 'SELECT' to save ";FF$ 660 PRINT"Press 'ESCAPE' for Menu" 670 A$=INKEY$:IFA$=""THEN670 680 IFASC(A$)=27THENGOSUB500:GOTO795 690 IFASC(A$)=24THEN700 695 GOTO670 700 BSAVEFF$,MP,MP+255 790 GOSUB200:GOSUB500 795 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 799 REM reset map --------------------- 800 CLS:PRINT"Reset map?":PRINT:PRINT"'SELECT' or 'ESCAPE'" 870 A$=INKEY$:IFA$=""THEN870 880 IFASC(A$)=27THENGOSUB500:GOTO895 885 IFASC(A$)=24THEN890 888 GOTO870 890 A=USR1(0):GOSUB500 895 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":PRINT:GOSUB200 1095 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 1099 REM MAKE NEW MAP -------------- 1100 CLS:GOSUB1500 1110 PRINT"Enter MIDI note no. 0 to quit":PRINT 1130 INPUT"MIDI note no.";X 1140 IFX>127THENBEEP:GOTO1130 1150 IFX=0THEN1195 1160 PRINTTAB(19):PRINTCHR$(30);:INPUT"map to";Y 1170 IFY>127THENBEEP:PRINT:GOTO1160 1180 POKEMP+X,Y:X=0:GOTO1130 1195 GOSUB500:RETURN 1199 REM ACTIVATE MAP ----------------- 1200 CLS 1210 PRINT"Current map: ";FF$:PRINT 1220 PRINT"Maps from MIDI ch."; 1230 PRINT(PEEK(MP+128)AND15)+1; 1240 PRINT"to ch."; 1250 PRINT(PEEK(MP+129)AND15)+1:PRINT 1270 PRINT"Pitch bend on ch 1 to quit" 1280 A=USR0(0) 1295 GOSUB500:RETURN 1299 REM MIDI THRU -------------------- 1300 CLS 1310 PRINT"MIDI thru":PRINT 1320 PRINT"Pitch bend on ch 16 to quit" 1330 A=USR3(0) 1395 GOSUB500:RETURN 1399 REM MAP VIA MIDI ----------------- 1400 CLS:GOSUB1500 1410 PRINT"Map via MIDI":PRINT 1420 PRINT"Pitch bend on ch 1 to quit":PRINT 1430 A=USR4(0) 1495 GOSUB500:RETURN 1499 REM SET MIDI CHANNELS ---------- 1500 CLS 1510 PRINT"Set MIDI channels":PRINT 1520 INPUT"Map from MIDI ch.";M1 1530 IFM1>16ORM1<1THENBEEP:GOTO1520 1540 PRINTTAB(22):PRINTCHR$(30);:INPUT"to ch.";M2 1550 IFM2>16ORM2<1THENBEEP:PRINT:GOTO1540 1560 MC%=(M2-1)*256+M1-1 1570 A=USR5(MC%) 1595 RETURN 1599 REM Load map from disk ---------- 1600 FORT=1TO10:KEY(T)OFF:NEXTT 1610 CLS 1620 PRINTTAB(3)"**** Load map from disk ****":PRINT"Files:" 1625 FILES"*.MAP":PRINT 1630 PRINT"Select file with cursor" 1640 A$=USR2(FF$) 1645 CLS 1650 PRINT"Press 'SELECT' to load ";FF$ 1660 PRINT"Press 'ESCAPE' for Menu" 1670 A$=INKEY$:IFA$=""THEN1670 1680 IFASC(A$)=27THENGOSUB500:GOTO1795 1690 IFASC(A$)=24THEN1700 1695 GOTO1670 1700 BLOADFF$ 1710 CLS 1745 GOSUB200:GOSUB500 1795 FORT=1TO10:KEY(T)ON:NEXTT:RETURN 3000 CLS:PRINT"Load ESQ Prgs & Sequences Editor?":PRINT 3010 PRINT" 'SELECT' or 'ESCAPE'" 3020 A$=INKEY$:IFA$=""THEN3020 3030 IFASC(A$)=27THENGOSUB500:RETURN 3040 IFASC(A$)=24THEN3100 3050 GOTO3020 3100 CLS:PRINT"Program loading. Please wait.....":LOAD"ESQ.BAS",R 4000 END:REM SLUTT MAP.BAS