10 CLS KEY OFF SCREEN 7: WIDTH 80: COLOR 1 'GRAPHIC SCREEN : BRIGHT WHITE CLS : CLEAR , , 15500 'CLEAR SCREEN : STRING SPACE WIDTH LPRINT 255 'ALLOWS EPSON TO PRINT LONG GRAPHICS LINES DIM BL(200) 'ESTABLISHES GRAPHIC CHARACTER BLOCK SIZE GET (1, 1)-(12, 12), BL DEFINT A-Z DIM B(40), D(40), R(40) DIM LL(150) DIM C$(128) 'DIM D$(127,2),LD(127) CLS PRINT " THE BROOKLYN BANNER " PRINT " BY BOB STONEWALL": PRINT PRINT GOSUB 10000 'GRAPHIC CHARACTER INITIALIZATION ROUTINE Q = 624: R = 90 1030 IX$ = INKEY$: IF IX$ = "" THEN 1030 ELSE H = ASC(IX$)'GET KEYBOARD INPUT IF H > 96 AND H < 123 THEN H = H - 32 'MAKE UPPER CASE IF H = 27 THEN 10: 'ESC - RESTARTS PROGRAM IF H = 13 THEN 3010 'ENTER -> PRINT SUBROUTINE IF H = 8 AND LEN(A$) > 0 THEN A$ = RIGHT$(A$, LEN(A$) - 1): REM BACKSPACE - TAKE LAST CHAR FROM STRING 1070 IF H = 8 AND Q <> 624 THEN Q = Q + 14: GET (Q, R - 2)-(Q + 12, R + 10), LL ELSE IF Q > 624 THEN Q = 23: R = R - 12: GOTO 1070 IF H = 8 THEN PUT (Q, R - 2), LL, PSET: PUT (Q, R - 2), LL: REM BACKSPACE - ERASE CHAR IF H < 32 OR H > 128 THEN 1030'NOT A CHARACTER - GO BACK FOR INPUT PSET (Q, R) 'SET CURSOR TO PROPER POSITION IX$ = CHR$(H) A$ = IX$ + A$ 'ADD LAST LETTER TO PRINT STRING IF H = 32 THEN PRESET (Q, R): GOTO 1140: REM IF SPACE MAKE A SPACE ON SCREEN DRAW C$(H) 'PLACE HEBREW CHARACTER ON SCREEN 1140 IF Q < 94 THEN BEEP 'LEFT MARGIN BEEP Q = Q - 14: IF Q < 22 THEN Q = 624: R = R + 12: IF R > 190 THEN R = 2: Q = 624'UPDATE CURSOR POSITION GOTO 1030 'GO BACK FOR NEXT CHARACTER FROM KEYBOARD REM Print Routine 3010 DIM TEXT$(94, 2) CODE$ = "HEBREW" FILE$ = "HEBBAN.dta": ON ERROR GOTO 0: OPEN "R", #1, FILE$, 4: FIELD #1, 2 AS B$, 2 AS C$: GET #1, 1: WIDE = VAL(B$): HIGH = VAL(C$): CLOSE : OPEN "R", #1, FILE$, WIDE: FIELD #1, WIDE AS B$ FOR Z = 1 TO 94: FOR Z1 = 0 TO HIGH - 1: GET #1, (Z - 1) * HIGH + Z1 + 2: TEXT$(Z, Z1) = B$: NEXT Z1, Z: CLOSE : SP$ = STRING$(WIDE, 0): FOR Z = 0 TO HIGH - 1: TEXT$(0, Z) = SP$: NEXT Z LOCATE 14, 1: PRINT : FOR Z = 1 TO 80 / (HIGH * 8): PRINT USING "&##\\#.#&"; SPACE$(10); Z; ")"; Z * 8 * HIGH / 10; " inches tall": NEXT Z: PRINT 3060 INPUT "Enter VERTICAL expansion multiple > ", VERT: IF VERT >= Z THEN 3060 FOR Z1 = 1 TO Z - 1: LOCATE Z1 + 14, 50: PRINT USING "##\\###.#&"; Z1; ")"; LEN(A$) * Z1 * WIDE / 10.2857; " inches long": NEXT Z1 LOCATE 15 + Z, 40: INPUT "Enter HORIZONTAL expansion multiple > ", HOR B$ = "": FOR Z = 1 TO LEN(A$): IF MID$(A$, Z, 1) <> " " THEN B$ = B$ + MID$(A$, Z, 1) NEXT Z PRINT CHR$(27); "x3": B$ = CHR$(219) 'SETS DOTS PERFECT TO IBM MODE PRINT CHR$(27); "Q" + CHR$(80) 'sets right margin LOCATE 22, 18: PRINT "SET UP PRINTER AND PRESS ANY KEY WHEN READY": AN$ = INPUT$(1): LOCATE 4, 18: PRINT SPACE$(18) + "PRINTING" + SPACE$(18) TABB$ = SPACE$(INT((80 - VERT * 8 * HIGH) / 2)): PRINT CHR$(27); CHR$(49): REM LINE SPACING AT 7/72" FOR Z = 1 TO LEN(A$): IF MID$(A$, Z, 1) = " " THEN FOR Z1 = 1 TO WIDE * HOR: LPRINT : NEXT Z1: GOTO 3200: REM TAKE A$ APART - SKIP BLANKS ST = ST + 1: FOR Z1 = 1 TO WIDE: FOR Z2 = 1 TO HOR: ST = ST + 1: IF ST > LEN(B$) THEN ST = 1 PT = ST: FOR Z3 = HIGH - 1 TO 0 STEP -1: ASCII = ASC(MID$(TEXT$(ASC(MID$(A$, Z, 1)) - 32, Z3), Z1, 1)): FOR Z4 = 0 TO 7: IF ASCII MOD 2 ^ (Z4 + 1) > 0 THEN ASCII = ASCII - 2 ^ Z4: FLAG = -1 ELSE FLAG = 0 FOR Z5 = 1 TO VERT: PT = PT + 1: IF PT > LEN(B$) THEN PT = 1 IF NOT (FLAG) THEN LN$ = LN$ + " " ELSE IF AN = 2 THEN LN$ = LN$ + MID$(A$, Z, 1) ELSE LN$ = LN$ + MID$(B$, PT, 1) NEXT Z5, Z4, Z3 PRINT TABB$; LN$; SPACE$(80 - LEN(TABB$ + LN$)); : LN$ = "" NEXT Z2, Z1 3200 NEXT Z 'BEEP SCREEN 0, 0, 0 REM END OF PRINT LOOP - All Done! END 10000 REM ********** INITIALIZATION OF SCREEN GFX ********* Q = 624: R = 2 FOR C = 33 TO 64: READ C$(C): NEXT C 'NON-DISPLAYED GRAPHIC CHARS READ C$(65): PSET (580, 50): DRAW C$(65) 'A = ALEPH READ C$(66): PSET (560, 50): DRAW C$(66) 'B = BET READ C$(67): PSET (374, 50): DRAW C$(67) 'C = CAPH READ C$(68): PSET (520, 50): DRAW C$(68) 'D = DALED READ C$(69): PSET (215, 50): DRAW C$(69) 'E = AYIN READ C$(70): PSET (200, 50): DRAW C$(70) 'F = PE READ C$(71): PSET (534, 50): DRAW C$(71) 'G = GIMEL READ C$(72): PSET (494, 50): DRAW C$(72) 'H = HEY READ C$(73): PSET (440, 50): DRAW C$(73) 'I = HET READ C$(74): PSET (256, 50): DRAW C$(74) 'J = NUN SOFIT READ C$(75): PSET (120, 50): DRAW C$(75) 'K = KAPH READ C$(76): PSET (334, 50): DRAW C$(76) 'L = LAMED READ C$(77): PSET (320, 50): DRAW C$(77) 'M = MEM READ C$(78): PSET (280, 50): DRAW C$(78) 'N = NUN READ C$(79): PSET (294, 50): DRAW C$(79) 'O = MEM SOFIT READ C$(80): PSET (175, 50): DRAW C$(80) 'P = PE SOFIT READ C$(81): PSET (360, 50): DRAW C$(81) 'Q = CAPH SOFIT READ C$(82): PSET (96, 50): DRAW C$(82) 'R = RESH READ C$(83): PSET (240, 50): DRAW C$(83) 'S = SAMECH READ C$(84): PSET (55, 50): DRAW C$(84) 'T = TAV READ C$(85): PSET (414, 50): DRAW C$(85) 'U = TET READ C$(86): PSET (480, 50): DRAW C$(86) 'V = VAV READ C$(87): PSET (80, 50): DRAW C$(87) 'W = SHIN READ C$(88): PSET (160, 50): DRAW C$(88) 'X = TZADIK READ C$(89): PSET (400, 50): DRAW C$(89) 'Y = YUD READ C$(90): PSET (454, 50): DRAW C$(90) 'Z = ZION READ C$(96): PSET (135, 50): DRAW C$(96) '` = TZADIK SOFIT FOR PF = 1 TO 4: PRINT : NEXT PF LNE$ = " T W R K ` X P F E S J N O M L Q C Y U I Z" + " V H D G B A" 'ENGLISH LETTERS TO CORRESPOND TO HEBREW REM Correspond English letters to Hebrew Characters PRINT LNE$ LINE (40, 61)-(600, 61)'HORIZONTAL LINE BETWEEN HEBREW & ENGLISH LETTERS LINE (67, 40)-(67, 80)'VERTICAL LINES BETWEEN LETTER PAIRS LINE (110, 40)-(110, 80) LINE (151, 40)-(151, 80) LINE (190, 40)-(190, 80) LINE (230, 40)-(230, 80) LINE (270, 40)-(270, 80) LINE (310, 40)-(310, 80) LINE (350, 40)-(350, 80) LINE (390, 40)-(390, 80) LINE (430, 40)-(430, 80) LINE (470, 40)-(470, 80) LINE (510, 40)-(510, 80) LINE (550, 40)-(550, 80) READ C$(95) PSET (580, 4): DRAW C$(68)'D PSET (568, 4): DRAW C$(71)'G PSET (554, 4): DRAW C$(76)'L PSET (530, 4): DRAW C$(66)'B PSET (516, 4): DRAW C$(82)'R PSET (504, 4): DRAW C$(86)'V PSET (492, 4): DRAW C$(75)'K PSET (480, 4): DRAW C$(76)'L PSET (468, 4): DRAW C$(89)'Y PSET (456, 4): DRAW C$(74)'N SOFIT PSET (585, 16): DRAW C$(77)'M PSET (575, 16): DRAW C$(89)'Y PSET (566, 16): DRAW C$(68)'D PSET (544, 16): DRAW C$(66) 'B PSET (532, 16): DRAW C$(65) 'A PSET (520, 16): DRAW C$(66) 'B PSET (492, 16): DRAW C$(83)'S PSET (480, 16): DRAW C$(85)'U PSET (468, 16): DRAW C$(86)'V PSET (456, 16): DRAW C$(78)'N PSET (444, 16): DRAW C$(72)'H PSET (432, 16): DRAW C$(89)'Y PSET (420, 16): DRAW C$(76)'L RETURN REM ***** DATA STATEMENTS TO DRAW CHARACTERS ***** 'EXCLAMATION POINT ASC=33 DATA "D4;R1;U4;D4;BD2;L1" ' QUOTE MARK ASC=34 DATA "D2;BR3;U2" ' OCTOTHORPE 35 DATA "C0;R2;C15;D6;BR2;U6;BR2;BD2;L6;BD2;R6" 'DOLLAR SIGN $ 36 DATA "C0;R3;C15;D1;R2;L4;G1;F1;R4;F1;G1;L5;R3;D1" ' PERCENT MARK 37 DATA "R1;D1;L1;BR6;BU1;G6;BR5;R1;U1;L1" ' AMPERSAND 38 DATA "C0;R3;C15;R1;F1;G1;L1;H1;F5;H1;G1;L2;H1;U1;E1;R1" ' APOSTROPHE 39 DATA "C0;R3;C15;D1;G1" ' LEFT PARENTHESIS 40 DATA "C0;R3;C15;G2;D2;F2" ' RIGHT PARENTHESIS 41 DATA "F2;D2;G2" ' ASTERISK 42 DATA "C0;D1;C15;F4;H2;E2;G4;E2;R2;L4" ' PLUS 43 DATA "C0;R3;D1;C15;D4;U2;R2;L4" ' COMMA 44 DATA "C0;R3;C15;BD5;G1" ' DASH 45 DATA "C0;D3;C15;R6" ' PERIOD 46 DATA "C0;R3;C15;BD5;R1" ' SLASH 47 DATA "C0;R6;C15;G6" ' ZERO 48 DATA "C0;R2;C15;R3;F1;D4;G1;L3;H1;U4;E1" ' ONE 49 DATA "C0;R4;C15;G1;R1;D5;R1;L2" ' TWO 50 DATA "C0;R2;C15;G1;E1;R3;F1;D1;G1;L3;G1;D2;R5" ' THREE 51 DATA "C0;R2;C15;G1;E1;R3;F1;D1;G1;F1;D1;G1;L3;H1" ' FOUR 52 DATA "C0;R5;C15;G4;R6;L2;D2;U4" 'FIVE 53 DATA "R5;L5;D3;R4;F1;D1;G1;L3;H1" 'SIX 54 DATA "C0;R5;C15;F1;H1;L3;G1;D4;F1;R3;E1;U1;H1;L3" 'SEVEN 55 DATA "R5;G3;D3" 'EIGHT 56 DATA "C0;R2;C15;G1;D1;F1;G1;D1;F1;R3;E1;U1;H1;L2;R2;E1;U1;H1;L2" 'NINE 57 DATA "C0;R2;C15;R2;L2;G1;D1;F1;R4;U2;H1;F1;D2;G3" ' COLON 58 DATA "C0;R5;D3;C15;R1;BD3;L1" ' SEMI-COLON 59 DATA "C0;R5;D3;C15;R1;BD3;G1" ' LESS THAN 60 DATA "C0;R5;C15;G3;F3" ' EQUALS 61 DATA "C0;D2;C15;R5;BD2;L5" ' GREATER THAN 62 DATA "F3;G3" ' QUESTION MARK 63 DATA "C0;R2;C15;G1;E1;R3;F1;G3;BD2;R1" ' AT 64 DATA "C0;F6;C15;L3;H1;U4;E1;R3;F1;D3;L2;U2" 'A = ALEPH 65 DATA "F6;L1;H5;E1;F5;BU3;H2;R1;F1;BD3;BL6;D2;R1;U1" 'B = BET DATA "R4;D1;L4;R5;D4;L5;D1;R6;U1" 'C = CAPH DATA "R5;D1;L4;R6;D4;L6;G1;R6" 'D = DALED DATA "R7;D1;L7;R6;D5" 'E = AYIN DATA "R2;D1;L2;R2;BR4;R2;U1;L2;F2;G3;L5;D1;R4;U2;H2" 'F = PE SOFIT DATA "R5;D1;L4;D2;R1;L1;U2;R6;D4;L6;G1;R6" 'G = GIMEL DATA "R3;D1;L2;R3;D3;G1;L2;G1;R2;BR4;H2" 'H = HEY DATA "R7;D1;L7;R6;D5;BL6;U3" 'I = HET DATA "R7;D1;L7;R6;D5;BL6;U5" 'J = NUN SOFIT DATA "R4;D1;L3;R4;D7" 'K = KAPH DATA "R6;D1;L6;R7;D2;G2;BL4;U2;D5" 'L = LAMED DATA "U2;R4;L4;D2;R6;D1;L6;R6;D1;G2;D2" 'M = MEM DATA "R1;F1;L2;F1;G1;D3;BR3;R3;E1;L4;R4;U3;H2;G1;R1;L3" 'N = NUN DATA "R4;D1;L3;R4;D4;L4;G1;R4" 'O = MEM SOFIT DATA "R6;D1;L6;R7;D4;L6;D1;R6;L7;U4" 'P = PE SOFIT DATA "R5;D1;L4;D2;R1;L1;U2;R6;D7" 'Q = CAPH SOFIT DATA "R7;D1;L7;R6;D7" 'R = RESH DATA "R6;D1;L5;R6;D5" 'S = SAMECH DATA "BR1;R5;D1;L6;R7;D3;G1;L5;U3;D3;F1;R3" 'T = TAV DATA "R6;D1;L6;R7;D5;BL7;R2;U1;L2;E1;H1" 'U = TET DATA "R2;D1;L2;F1;G1;D2;R8;D1;L8;R8;U5;H1;D1;F1;D1;H2" 'V = VAV DATA "R3;D1;L2;R3;D5" 'W = SHIN DATA "R2;D1;L2;BR4;R2;U1;L2;R2;BR2;R2;D1;L2;R2;D2;G2;L7;D1;R5;L3;H3;U1;BR4;D2" 'X = TZADIK DATA "R2;D1;L2;R2;F4;L6;D1;R6;BU5;R2;U1;L2" 'Y = YUD DATA "R4;D1;L3;R4;D1" 'Z = ZION DATA "R4;D1;L3;R4;L2;D5" '` = TZADIK SOFIT DATA "R2;D1;L2;R2;F3;D4;U5;E2;R2;U1;L2" ' DASH (ELEVATED FOR HEBREW 95 DATA "R5;D1;L5"