Create an ASCII bitmap for INKEY$ referance

by (Login burger2227)
R

DEFINT A-Z
DECLARE SUB FourBIT (x1%, y1%, x2%, y2%, Filename$)
DECLARE SUB Border (clr%)
'ASCII Code set....used with the INKEY$ to find out what kind of information
' is entered and can filter for CAPS (65 to 90) or lowcase (97 to 122)
ON ERROR GOTO Handler
SCREEN 12
CLS
COLOR 14
LOCATE 2, 4: PRINT " ASCII and IBM Character Code set using CHR$(n%)"
PRINT STRING$(80, CHR$(223))
COLOR 12
FOR i% = 1 TO 6
PRINT i%; CHR$(i%); " ";
NEXT i%
PRINT 7; " ";
FOR i% = 14 TO 16
PRINT i%; CHR$(i%); " ";
NEXT
PRINT 17; CHR$(17); " ";
PRINT 18; CHR$(18); " ";
PRINT 19; CHR$(19); " ";
PRINT 20; CHR$(20); " ";
PRINT 21; CHR$(21); " ";
PRINT 22; CHR$(22); " ";
PRINT 23; CHR$(23); " ";
PRINT 24; CHR$(24); " ";
PRINT 25; CHR$(25); " ";
PRINT 26; CHR$(26); " ";
PRINT 27; CHR$(27); " ";
FOR i% = 33 TO 255
COLOR 10
IF i% > 47 AND i% < 58 THEN COLOR 9 'denotes number keys 48 to 57
IF i% > 175 AND i% < 224 THEN COLOR 11 'drawing characters 176 to 223
IF i% > 64 AND i% < 91 THEN COLOR 13 ' A to Z keys 65 to 90
IF i% > 96 AND i% < 123 THEN COLOR 15 'a to z keys 97 to 122
IF i% > 91 AND i% < 100 THEN PRINT " ";
IF i% = 100 THEN PRINT " ";
PRINT i%; CHR$(i%); " ";
NEXT i%
COLOR 14: PRINT STRING$(80, CHR$(220))
Border 14
COLOR 12: LOCATE 26, 4: PRINT " 7) BEEP, 8) Backspace, 9) Tab, 10) LineFeed(printer)"
LOCATE 27, 4: PRINT " 12) FormFeed(printer), 13) Return, 26) End of file"
LOCATE 28, 4: PRINT " 27) Escape 30) Line up, 31) Line down, 32) Spacebar"

OPEN "ASCII.BMP" FOR INPUT AS #2
CLOSE #2
IF FileErr = 1 THEN
COLOR 10: LOCATE 29, 27: PRINT "Wait! Creating ASCII.BMP";
FourBIT 0, 0, 639, 479, "ASCII.BMP"
FileErr = 0
END IF

Handler:
FileErr = 1
RESUME NEXT

COLOR 13: LOCATE 29, 27: PRINT " Hit any key to continue! ";

DO: LOOP UNTIL INKEY$ <> ""

SYSTEM

SUB Border (clr)
COLOR clr
FOR Row = 1 TO 30
LOCATE Row, 1: PRINT CHR$(179);
LOCATE Row, 80: PRINT CHR$(179);
NEXT Row
FOR Col = 1 TO 80
LOCATE 1, Col: PRINT CHR$(196);
LOCATE 30, Col: PRINT CHR$(196);
NEXT Col
LOCATE 1, 1: PRINT CHR$(218);
LOCATE 1, 80: PRINT CHR$(191);
LOCATE 30, 1: PRINT CHR$(192);
LOCATE 30, 80: PRINT CHR$(217);
END SUB

SUB FourBIT (x1%, y1%, x2%, y2%, Filename$)
'SCREEN 12 bitmap maker by TheBob

DIM FileCOLORS%(1 TO 48)
DIM Colors4%(0 TO 15)

IF INSTR(Filename$, ".BMP") = 0 THEN
Filename$ = RTRIM$(LEFT$(Filename$, 8)) + ".BMP"
END IF

FileTYPE$ = "BM"
Reserved1% = 0
Reserved2% = 0
OffsetBITS& = 118
InfoHEADER& = 40
PictureWIDTH& = x2% - x1% + 1
PictureDEPTH& = y2% - y1% + 1
NumPLANES% = 1
BPP% = 4
Compression& = 0
WidthPELS& = 3780
DepthPELS& = 3780
NumCOLORS& = 16

IF PictureWIDTH& MOD 8 <> 0 THEN
ZeroPAD$ = SPACE$((8 - PictureWIDTH& MOD 8) \ 2)
END IF

ImageSIZE& = (((PictureWIDTH& + LEN(ZeroPAD$)) * PictureDEPTH&) + .1) / 2
FileSize& = ImageSIZE& + OffsetBITS&

Colr = 0 'start at color 0
FOR n = 1 TO 48 STEP 3
OUT &H3C7, Colr
FileCOLORS%(n) = INP(&H3C9)
FileCOLORS%(n + 1) = INP(&H3C9)
FileCOLORS%(n + 2) = INP(&H3C9)
Colr = Colr + 1
NEXT n

OPEN Filename$ FOR BINARY AS #1
'Header bytes
PUT #1, , FileTYPE$ '2
PUT #1, , FileSize& '4
PUT #1, , Reserved1% 'should be zero '2
PUT #1, , Reserved2% 'should be zero '2
PUT #1, , OffsetBITS& '4
PUT #1, , InfoHEADER& '4
PUT #1, , PictureWIDTH& '4
PUT #1, , PictureDEPTH& '4
PUT #1, , NumPLANES% '2
PUT #1, , BPP% '2
PUT #1, , Compression& '4
PUT #1, , ImageSIZE& '4
PUT #1, , WidthPELS& '4
PUT #1, , DepthPELS& '4
PUT #1, , NumCOLORS& '4
PUT #1, , SigCOLORS& '4 '51 - 54

u$ = " " 'add unused byte
FOR n% = 1 TO 46 STEP 3
Colr$ = CHR$(FileCOLORS%(n% + 2) * 4)
PUT #1, , Colr$
Colr$ = CHR$(FileCOLORS%(n% + 1) * 4)
PUT #1, , Colr$
Colr$ = CHR$(FileCOLORS%(n%) * 4)
PUT #1, , Colr$
PUT #1, , u$ 'Unused byte
NEXT n%

FOR y = y2% TO y1% STEP -1
FOR x = x1% TO x2% STEP 2
HiX = POINT(x, y): Colors4%(HiX) = 1 'added here
LoX = POINT(x + 1, y): Colors4%(LoX) = 1
HiNIBBLE$ = HEX$(HiX)
LoNIBBLE$ = HEX$(LoX)
HexVAL$ = "&H" + HiNIBBLE$ + LoNIBBLE$
a$ = CHR$(VAL(HexVAL$))
PUT #1, , a$
NEXT x
PUT #1, , ZeroPAD$
NEXT y

FOR n = 0 TO 15
IF Colors4%(n) = 1 THEN SigCOLORS& = SigCOLORS& + 1
NEXT n
PUT #1, 51, SigCOLORS& 'new PUT

CLOSE #1
BEEP

END SUB



    
This message has been edited by burger2227 on Nov 25, 2009 12:42 PM
This message has been edited by burger2227 on Nov 25, 2009 12:13 PM

Posted on Nov 25, 2009, 12:08 PM

Respond to this message   

Return to Index