' {$STAMP BS2} ' {$PBASIC 2.5} '------------[(C) 2005, MICHAEL MOLINARI , you can use it any way you like]---------------- aa VAR Byte bb VAR Byte cc VAR Byte dd VAR Byte ee VAR Byte CURENTLINE VAR Byte BLA VAR Word A VAR Byte B VAR Byte C VAR Byte D VAR Byte E VAR Byte F VAR Byte G VAR Byte H VAR Byte I VAR Byte J VAR Byte OUT VAR Byte BLABLA VAR Nib EN VAR Byte PROGRAMING VAR Byte oon VAR Nib MENUE: READ 0 , AA READ 1 , BB READ 2 , CC READ 3 , DD READ 4 , EE CURENTLINE = 0 DEBUG "-(b 1 edit)(B 2 RUN)-" 'DEBUGIN BLA menue_loop: IF IN6 = 0 THEN GOTO EXICUTE IF IN5 = 0 THEN GOTO EDITOR GOTO menue_loop '-----[THIS IS THE EDITOR]--------------------------------------------------------------- EDITOR: PROGRAMING = 1 EN = 0 DEBUG "# OF LINES?" 'DEBUGIN EN GOSUB char_in en = bla + 97 EN = EN - 97 EDITOR_LOOP: DEBUG "[A] " 'DEBUGIN BLA GOSUB char_in WRITE BLABLA * 5 + 0, BLA + 97 DEBUG "[B] " 'DEBUGIN BLA GOSUB char_in WRITE BLABLA * 5 + 1, BLA + 97 DEBUG "[C] " 'DEBUGIN BLA GOSUB char_in WRITE BLABLA * 5 + 2, BLA + 97 DEBUG "[D] " 'DEBUGIN BLA GOSUB char_in WRITE BLABLA * 5 + 3, BLA + 97 DEBUG "[E] " 'DEBUGIN BLA GOSUB char_in WRITE BLABLA * 5 + 4, BLA + 97 BLABLA = BLABLA + 1 IF BLABLA > EN THEN GOTO MENUE GOTO EDITOR_LOOP '-----[THIS IS THE INTERPERTER]------------------------------------------------------------ EXICUTE: PROGRAMING = 0 IF AA = "d" THEN GOSUB DISPLAY_IT IF AA = "i" THEN GOSUB INPUT_IT IF AA = "c" THEN GOSUB COMPARE_IT IF AA = "e" THEN GOSUB EDIT_IT IF AA = "m" THEN GOSUB MATH IF AA = "o" THEN GOSUB PIN_H_L IF AA = "g" THEN GOTO GOTO_IT IF CURENTLINE = EN THEN DEBUG "-DONE-":GOTO MENUE GOTO GOTO_NEXT DISPLAY_IT: IF BB = "v" THEN GOSUB look_up_VAR IF dd = "n" THEN GOTO dis_no 'DEBUG CC IF cc = "A" OR cc = "a" THEN DEBUG "A" IF cc = "B" OR cc = "b" THEN DEBUG "B" IF cc = "C" OR cc = "c" THEN DEBUG "C" IF cc = "D" OR cc = "d" THEN DEBUG "D" IF cc = "E" OR cc = "e" THEN DEBUG "E" IF cc = "F" OR cc = "f" THEN DEBUG "F" IF cc = "G" OR cc = "g" THEN DEBUG "G" IF cc = "H" OR cc = "h" THEN DEBUG "H" IF cc = "I" OR cc = "i" THEN DEBUG "I" IF cc = "J" OR cc = "j" THEN DEBUG "J" IF cc = "K" OR cc = "k" THEN DEBUG "K" IF cc = "L" OR cc = "l" THEN DEBUG "L" IF cc = "M" OR cc = "m" THEN DEBUG "M" IF cc = "N" OR cc = "n" THEN DEBUG "N" IF cc = "O" OR cc = "o" THEN DEBUG "O" IF cc = "P" OR cc = "p" THEN DEBUG "P" IF cc = "Q" OR cc = "q" THEN DEBUG "Q" IF cc = "R" OR cc = "r" THEN DEBUG "R" IF cc = "S" OR cc = "s" THEN DEBUG "S" IF cc = "T" OR cc = "t" THEN DEBUG "T" IF cc = "U" OR cc = "u" THEN DEBUG "U" IF cc = "V" OR cc = "v" THEN DEBUG "V" IF cc = "W" OR cc = "w" THEN DEBUG "W" IF cc = "X" OR cc = "x" THEN DEBUG "X" IF cc = "Y" OR cc = "y" THEN DEBUG "Y" IF cc = "Z" OR cc = "z" THEN DEBUG "Z" RETURN dis_no: bla = cc oon = bla/100 GOSUB dis_char_no oon = (bla - (oon * 100))/ 10 GOSUB dis_char_no oon = bla - (oon * 10) GOSUB dis_char_no RETURN dis_char_no: IF oon = 0 THEN DEBUG "0" IF oon = 1 THEN DEBUG "1" IF oon = 2 THEN DEBUG "2" IF oon = 3 THEN DEBUG "3" IF oon = 4 THEN DEBUG "4" IF oon = 5 THEN DEBUG "5" IF oon = 6 THEN DEBUG "6" IF oon = 7 THEN DEBUG "7" IF oon = 8 THEN DEBUG "8" IF oon = 9 THEN DEBUG "9" RETURN look_up_VAR: IF CC = "a" THEN CC = A IF CC = "b" THEN CC = B IF CC = "c" THEN CC = C IF CC = "d" THEN CC = D IF CC = "e" THEN CC = E IF CC = "f" THEN CC = F IF CC = "g" THEN CC = G IF CC = "h" THEN CC = H IF CC = "i" THEN CC = I IF CC = "j" THEN CC = J bb = 0 RETURN INPUT_IT: DEBUG "? " bla = 0 GOSUB CHAR_IN bla = bla + 65 'DEBUGIN BLA IF BB = "a" THEN A = BLA IF BB = "b" THEN B = BLA IF BB = "c" THEN C = BLA IF BB = "d" THEN D = BLA IF BB = "e" THEN E = BLA IF BB = "f" THEN F = BLA IF BB = "g" THEN G = BLA IF BB = "h" THEN H = BLA IF BB = "i" THEN I = BLA IF BB = "j" THEN J = BLA RETURN GOTO_NEXT: BB = CURENTLINE + 98 GOTO_IT: BLA = BB - 97 READ BLA * 5 + 0 , AA READ BLA * 5 + 1 , BB READ BLA * 5 + 2 , CC READ BLA * 5 + 3 , DD READ BLA * 5 + 4 , EE CURENTLINE = BLA GOTO EXICUTE COMPARE_IT: IF CC = DD THEN AA = "g" RETURN EDIT_IT: IF DD = "v" THEN GOSUB EDIT_VAR WRITE BB * 5 -1 + CC, EE RETURN EDIT_VAR: IF DD = "a" THEN EE = A IF DD = "b" THEN EE = B IF DD = "c" THEN EE = C IF DD = "d" THEN EE = D IF DD = "e" THEN EE = E IF DD = "f" THEN EE = F IF DD = "g" THEN EE = G IF DD = "h" THEN EE = H IF DD = "i" THEN EE = I IF DD = "j" THEN EE = J RETURN MATH: IF BB = "+" THEN BLA = CC + DD IF BB = "-" THEN BLA = CC - DD IF BB = "*" THEN BLA = CC * DD IF BB = "/" THEN BLA = CC / DD IF EE = "a" THEN A = BLA IF EE = "b" THEN B = BLA IF EE = "c" THEN C = BLA IF EE = "d" THEN D = BLA IF EE = "e" THEN E = BLA IF EE = "f" THEN F = BLA IF EE = "g" THEN G = BLA IF EE = "h" THEN H = BLA IF EE = "i" THEN I = BLA IF EE = "j" THEN J = BLA RETURN PIN_H_L: IF BB = "h" THEN HIGH CC IF BB = "j" THEN LOW CC RETURN LED_TEXT_OUT: 'PUT CODE HERE TO CONTROAL LED DISPLAY" RETURN CHAR_IN: PAUSE 150 IF IN4 = 0 THEN RETURN IF IN5 = 0 THEN bla = bla + 1 IF IN6 = 0 THEN bla = bla - 1 IF BLA > 26 THEN BLA = 0 IF bla < 0 THEN bla = 0 cc = bla + 65 GOSUB display_it 'PUT CODE TO GET CHARACTER FROM USER IN THIS AIRYA GOTO char_in