home *** CD-ROM | disk | FTP | other *** search
-
-
- TYPE
- TScr = ARRAY [0..199,0..319] OF BYTE;
-
- VAR
- s : ^TScr;
- fi : FILE OF TScr;
-
- Let : ARRAY [0..23,0..23] OF BYTE;
- ncol, nLet, llen : INTEGER;
- adr : INTEGER;
- i : INTEGER;
-
- starts : ARRAY [0..100] OF WORD;
- lens : ARRAY [0..100] OF WORD;
-
-
- FUNCTION IsColEmpty: BOOLEAN;
- VAR
- j : INTEGER;
- BEGIN
- j := 0;
- WHILE (s^[1+i*24+j, ncol] = 0) AND (j < 23) DO
- INC(j);
- IsColEmpty := (j >= 23)
- END;
-
- CONST
- LastCol : BYTE = 0;
- LCount : INTEGER = 0;
- PROCEDURE DumpCol;
- CONST
- LastCol : BYTE = 0;
- LCount : INTEGER = 0;
-
- VAR
- j : INTEGER;
- BEGIN
- {
- Write(' DB '); (* Un pixel por byte. *)
- FOR j := 1 TO 23 DO BEGIN
- Write (s^[i*24+j, ncol]);
- IF j < 23 THEN
- Write(',')
- END;
- INC(adr, 23);
- WriteLn
- }
-
- Write(' DB '); (* Dos pixels por byte. *)
- FOR j := 0 TO 11 DO BEGIN
- Write (s^[i*24+2*j, ncol]*16 + s^[i*24+2*j+1, ncol]);
- IF j < 11 THEN
- Write(',')
- END;
- INC(adr, 12);
- WriteLn
-
- { FOR j := 1 TO 23 DO BEGIN (* Comprimiendo ristras. *)
- IF s^[i*24+j, ncol] = (LastCol AND 7) THEN
- INC(LastCol,8)
- ELSE BEGIN
- Write (LastCol);
- LastCol := s^[i*24+j, ncol];
- IF LCount < 23 THEN BEGIN
- INC(LCount);
- Write(',')
- END ELSE BEGIN
- LCount := 0;
- WriteLn;
- Write('DB ')
- END
- END
- END;
- INC(adr, 23);
- }
- END;
-
-
- BEGIN
- NEW(s);
- Assign(fi, 'Fuente1.Pix');
- Reset(fi);
- Read(fi, s^);
- Close(fi);
-
-
- WriteLn('FontData LABEL BYTE');
- adr := 0;
- nLet := 0;
- FOR i := 0 TO 3 DO BEGIN
- ncol := 0;
- WHILE ncol < 320 DO BEGIN
- IF IsColEmpty THEN
- INC(ncol)
- ELSE BEGIN
- starts[nLet] := adr;
- llen := 0;
- REPEAT
- DumpCol;
- INC(llen);
- INC(ncol)
- UNTIL (llen >= 24) OR (ncol >= 320) OR IsColEmpty;
- lens[nLet] := llen;
- INC(nLet)
- END
- END
- END;
- WriteLn;
- WriteLn('FontTable LABEL BYTE');
- FOR i := 0 TO nLet-1 DO
- WriteLn(' DB ', lens[i]:2{, ', OFFSET FontData+', starts[i]:5})
- END.