home *** CD-ROM | disk | FTP | other *** search
- SUB InitSmallFont (SmallFont%())
- OPEN "smallfnt.dat" FOR BINARY AS #1
- FOR tmp% = 0 TO 319
- GET #1, , SmallFont%(tmp%)
- NEXT
- CLOSE #1
- SmallFont%(320) = &H101 ' cursor position
- END SUB
-
- SUB SmallLocate (SmallFont%(), Row%, Column%)
- SmallFont%(320) = CVI(CHR$(Column%) + CHR$(Row%))
- END SUB
-
- SUB SmallPrint (SmallFont%(), Text$)
- REDIM Scroll%(1 TO 8002)
- tmp$ = MKI$(SmallFont%(320))
- y% = ASC(RIGHT$(tmp$, 1))
- x% = ASC(LEFT$(tmp$, 1))
- FOR tmp% = 1 TO LEN(Text$)
- ch% = ASC(UCASE$(CHR$(ASC(MID$(Text$, tmp%, 1)) AND &H7F)))
- IF ch% > 122 THEN ' high ASCII character, convert it
- ch% = (ch% - 59) * 5
- ELSEIF ch% = 32 THEN ' space
- x% = x% + 1
- ch% = -1
- ELSEIF ch% = 13 THEN ' carriage return
- x% = 1
- ch% = -1
- ELSEIF ch% = 10 THEN ' linefeed
- y% = y% + 1
- ch% = -1
- ELSEIF ch% = 8 THEN ' backspace
- IF x% > 1 THEN x% = x% - 1
- ch% = -1
- ELSE ' low ASCII character, convert it
- ch% = (ch% - 33) * 5
- END IF
- IF ch% >= 0 AND ch% <= 315 THEN
- PUT ((x% - 1) * 6, (y% - 1) * 6), SmallFont%(ch%), PSET
- x% = x% + 1
- END IF
- IF x% > 106 THEN ' wrap to next line
- x% = 1
- y% = y% + 1
- END IF
- IF y% > 33 THEN ' scroll the screen
- GET (0, 6)-(639, 197), Scroll%
- PUT (0, 0), Scroll%, PSET
- LINE (0, 192)-(639, 197), 0, BF
- y% = 33
- END IF
- NEXT
- SmallFont%(320) = CVI(CHR$(x%) + CHR$(y%))
- END SUB
-