Announcement

Collapse
No announcement yet.

Double size letters on screen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Double size letters on screen

    A few months ago I submitted a request for a program that would print large size letter on the screen or printer. While I produced a fairly good program to produce large letters for my printer, when it came to the screen they were all too big, 8 times the normal type. I am looking for something that would produce about twice the high and width on the screen. I wander if PowerBASIC could come up with a command that would accomplish this, such as:
    PRINT DOUBLE "This line is Double High & Wide"
    where: the command DOUBLE would accomplish the double high and wide screen presentation.

    I can accomplish this on my printer by using printer commands. I would like to see PowerBASIC come up with something equaled.

  • #2
    I don't know if this will be possible. (I am not trying to speak for PB) The printer when printing Double Wide is set to graphics mode. There is no way of setting a section of a DOS screen to graphics mode. Either the whole screen is graphic or not. You can use the extended ASCII chr set to make large chars but these would be quite big to be readable.


    Another way I can think of to get this functionality is to draw with line statements the letters. You could then make a routine that when passed the Row,Col and Letter it would draw the letter.

    And yet another, you could redefine what the ASCII char are in video memory. Then taking a piece of each one draw the char. There are used to be several DOS based programs that you could load and replace the ASCII chr map. I may have one or two on an old backup if you would like to email me I will check.

    mailto[email protected][email protected]</A>

    ------------------


    [This message has been edited by Shawn Tartaglia (edited March 27, 2000).]

    Comment


    • #3
      In what screen/video mode(s)?
      If you try to make something idiot-proof, someone will invent a better idiot.

      Comment


      • #4
        What about 40 character wide mode?
        Code:
        SCREEN 0
        WIDTH 40
        PRINT "Hello PB/DOS at 40 characters!"

        ------------------
        Lance
        PowerBASIC Support
        mailto:[email protected][email protected]</A>
        Lance
        mailto:[email protected]

        Comment


        • #5
          Fred,

          years ago I wrote a program displaying text double-width,
          double-high and shaddowed in graphic mode (screen 12 etc.),
          however, it doesn't work for screen 0. (If I remember well, I
          used some code from PB-Xtra and a textbook by Tischer.) If you
          are (or someone else is!) interested in this, please let me know.
          I think it should be no problem to find the code in a desert
          corner of my HD.

          Hanns.


          ------------------

          Comment


          • #6
            Hi Fred,

            just found the code mentioned in my last post, hope that helps.
            Please feel free to use and modify it. The code is not up-to-date,
            however, six years ago I had much fun with it. I think it's no
            problem to write some lines for double-high-double-width and so on.
            The code is fairly long for this thread, sorry, Lance ...

            Cheers, Hanns.


            Code:
            ' --------------------------------------------------------------------------
            ' EXAMPLE MAIN PROG: Writing characters to screen (graphics mode)
            ' Styles: Normal, Small, Double-width, Double-high, Double-width-Shadowed
            ' DOS >= 3.3 only, Screen>3 incl. HGC (good old days)
            ' --------------------------------------------------------------------------
            
            ' Pfad$= Path of ASCII-Table listed below (if char.set not found, cf. below)
            ' CALL VersionDos(DosVersion)       ' DOS version
            ' CALL WoBinIch(DosVersion,Pfad$)   ' Find app's path
            
              Screenmodus%=12
              SCREEN Screenmodus%
              COLOR 1,1 : CLS
              WINDOW (0,0)-(100,100)
            
              CALL WoIstFont(Screenmodus%)             ' Searching address of characters
            
              Xpos=10 : Ypos=15                        ' Position of your text
              VX%=0 : VY%=0                            ' Shift units (half character)
              CO%=15                                   ' Text color
              Cs%=7                                    ' Shadow color
              Text$="PowerBasic. That's all you need." ' Your text
            
              CALL FontKlein (Text$,Xpos,Ypos   ,VX%,VY%,Co%)        ' Small
              CALL FontNormal(Text$,Xpos,Ypos+10,VX%,VY%,Co%-1)      ' Normal
              CALL FontHoch  (Text$,Xpos,Ypos+20,VX%,VY%,Co%-2)      ' Double-high
              CALL FontBreitX(Text$,Xpos,Ypos+30,VX%,VY%,Co%-3,0)    ' Double-width
              CALL FontBreitX(Text$,Xpos,Ypos+40,VX%,VY%,Co%-4,Cs%)  ' Double-w. shadow
            ' CALL HGCFont   (Text$,Xpos,Ypos   ,VX%,VY%,Co%)        ' Hercules !!!!
            
            END
            
            
            ' ---------------------------------------------------------------------------
            
            ' WoIstFont:                                          6.3.1994   LV: 5.5.1994
            '
            ' Lokalisiert die Zeichentabellen 8*8 und 8*14 bzw. 8*16: Tischer p. 1185
            ' Segmentadresse: FontSen&,FontSek&  Offset: FontOfn&,FontOfk&
            
            ' ---------------------------------------------------------------------------
            
            SUB WoIstFont(ScreenModus%)
            
              SHARED FontSen&,FontOfn&,FontSem&,FontOfm&,FontSek&,FontOfk&
              LOCAL  I%,X%,X$
            
              If ScreenModus%<=3 then
                FontSen&=-1 : FontOfn&=-1
              Else
                REG 1, &H1130        ' Funktion 11, Unterfunktion 30 fr INT &H10
                REG 2, &H0600        ' 8*16-Zeichensatz Tischer p.1185
                CALL INTERRUPT &H10  ' Info ber Z-Generator holen
                FontSen&=REG(9) : FontSen&=FontSen&-65536*(FontSen&<0) ' REG(9)=ES
                FontOfn&=REG(7) : FontOfn&=FontOfn&-65536*(FontOfn&<0) ' REG(7)=BP
                REG 1, &H1130        ' Funktion 11, Unterfunktion 30 fr INT &H10
                REG 2, &H0200        ' 8*14-Zeichensatz Tischer p.1185
                CALL INTERRUPT &H10  ' Info ber Z-Generator holen
                FontSem&=REG(9) : FontSem&=FontSem&-65536*(FontSem&<0) ' REG(9)=ES
                FontOfm&=REG(7) : FontOfm&=FontOfm&-65536*(FontOfm&<0) ' REG(7)=BP
                REG 1, &H1130        ' Funktion 11, Unterfunktion 30 fr INT &H10
                REG 2, &H0300        ' 8*8-Zeichensatz Tischer p.1185
                CALL INTERRUPT &H10  ' Info ber Z-Generator holen
                FontSek&=REG(9) : FontSek&=FontSek&-65536*(FontSek&<0) ' REG(9)=ES
                FontOfk&=REG(7) : FontOfk&=FontOfk&-65536*(FontOfk&<0) ' REG(7)=BP
              End If
            
            END SUB
            
            
            ' ---------------------------------------------------------------------------
            '
            ' FONTS:                                               6.3.1994  LV 10.5.1996
            '
            ' FONTS setzt die Lokalisation der Zeichentabelle voraus.
            ' Segmentadresse: Normal: FontSen&, Klein: FontSek&
            ' Offset:         Normal: FontOfn&, Klein: FontOfk&
            '
            ' ---------------------------------------------------------------------------
            ' Umstellung von 8*14 auf 8*16 am 10.5.96:
            ' Nur vertikal jede 13 durch 15, jede 14 durch 16 ersetzt, horizontal bleibt!
            ' ---------------------------------------------------------------------------
            
            
            SUB FontNormal(X$,XX,YY,VX%,VY%,Co%)                 ' Font 8*16 horizontal
            
              LOCAL  X%,Y%,Ad&,Y,Y1%,X0%,Z%,Vert%,Hori%,Zeich%
              SHARED FontSen&,FontOfn&
            
              DEF SEG = FontSen&
              X%=PMAP(XX,0)-3+VX%*4
              Y%=PMAP(YY,1)-6-VY%*7
              For Zeich%=1 to LEN(X$)
                X1%=ASC(MID$(X$,Zeich%,1))
                Ad&=FontOfn&+16*X1%
                X0%=X%+8*(Zeich%-1)
                For Vert%=0 to 15
                  Z%=PEEK(Ad&+Vert%)
                  Y=PMAP(Y%+Vert%,3)
                  For Hori%=0 to 7
                    If BIT(Z%,Hori%) then PSET (PMAP(X0%+7-Hori%,2),Y),Co%
                  Next Hori%
                Next Vert%
              Next Zeich%
            
            END SUB
            
            
            SUB FontHoch(X$,XX,YY,VX%,VY%,Co%)                ' Font 8*28 hoch
            
              SHARED FontSen&,FontOfn&,FontSem&,FontOfm& , Pfad$
              STATIC Gelesen?,Font?()
              LOCAL  X%,Y%,I%,J%,F%,I1%,I2%,I3%,I4%
            
              If FontSen&<>FontSem& or FontOfn&<>FontOfm& then  ' Zeichensatz 8*14 vorh.!
                X%=PMAP(XX,0)-3+VX%*4 : Y%=PMAP(YY,1)-7-VY%*13
                DEF SEG = FontSem&
                Ad& = FontOfm&+14*65 ' Zeichenanfang via 'A'!
                V%=0: DO: Z%=PEEK(Ad&+V%): V%=V%+1: LOOP UNTIL Z%<>0: V%=V%-1
                For Zch% = 1 to LEN(X$)
                  X1% = ASC(MID$(X$,Zch%,1))
                  Ad& = FontOfm&+14*X1%
                  X0% = X%+8*(Zch%-1)
                  For Ve% = 0 to 13-V%
                    Z% = PEEK(Ad&+V%+Ve%)
                    For Ho% = 0 to 7
                      If (Z% AND 2^Ho%)<>0 then
                        PSET (PMAP(X0%+7-Ho%,2),PMAP(Y%+2*Ve%  ,3)),Co%
                        PSET (PMAP(X0%+7-Ho%,2),PMAP(Y%+2*Ve%-1,3)),Co%
                      End If
                    Next Ho%
                  Next Ve%
                Next Zch%
              Else   ' falls 8*14 nicht vorhanden, HGC-Font 8*14 verwenden
                If Gelesen?=0 then                           ' 1. Lauf: einlesen
                  Gelesen?=1
                  I1%=32:I2%=123:I3%=0:I4%=13 : DIM Font?(I1%:I2%,I3%:I4%)
                  F%=FREEFILE
                  OPEN Pfad$+"HGCFONTS.BIN" for Input as #F%
                  For I%=32 to 123
                    For J%=0 to 13
                      Input #F%, Font?(I%,J%)  ' ASCII32-122, Font?(123)=ASCII0!
                    Next J%
                  Next I%
                  CLOSE #F%
                End If
                X%=PMAP(XX,0)-3+VX%*4
                Y%=PMAP(YY,1)-13-VY%*13
                For Zeich%=1 to LEN(X$)
                  X1%=ASC(MID$(X$, Zeich%, 1)) : If X1%<32 or X1%>122 then X1%=123 ' ASCII0
                  X0%=X%+8*(Zeich%-1)
                  For Vert%=0 to 13
                    Z%=Font?(X1%,Vert%)
                    For Hori%=0 to 7
                      If BIT(Z%,Hori%) then
                        PSET (PMAP(X0%+7-Hori%,2),PMAP(Y%+2*Vert%  ,3)),Co%
                        PSET (PMAP(X0%+7-Hori%,2),PMAP(Y%+2*Vert%-1,3)),Co%
                      End If
                    Next Hori%
                  Next Vert%
                Next Zeich%
              End If
            
            END SUB
            
            
            SUB FontBreitX(X$,XX,YY,VX%,VY%,Co%,Cs%)  ' Font 2*8*16 breit incl. Schatten
            
              SHARED FontSen&,FontOfn&
              LOCAL  X%,Y%,Zeich%,X1%,X0%,Y1,Y2,Ad&,Vert%,Hori%,X00%
            
              DEF SEG = FontSen&
              X%=PMAP(XX,0)-6+VX%*8
              Y%=PMAP(YY,1)-6-VY%*7
              For Zeich%=1 to LEN(X$)
              X1%=ASC(MID$(X$,Zeich%,1))
              Ad&=FontOfn&+16*X1%
              X0%=X%+16*(Zeich%-1)
              For Vert%=15 to 0 Step -1
              Z%=PEEK(Ad&+Vert%)
              Y1=PMAP(Y%+Vert%-1,3)
              Y2=PMAP(Y%+Vert%  ,3)
              For Hori%=0 to 7
              If BIT(Z%,Hori%) then    ' BIT()=(Z% AND 2^Hori%)
                X00%=X0%+14-2*Hori%
                If Cs%>0 then
                  PSET (PMAP(X00%+1,2),Y1),Cs%
                  PSET (PMAP(X00%+2,2),Y1),Cs%
                End If
                PSET (PMAP(X00%  ,2),Y2),Co%
                PSET (PMAP(X00%+1,2),Y2),Co%
              End If
              Next Hori%
              Next Vert%
              Next Zeich%
            
            END SUB
            
            
            SUB FontKlein(X$,XX,YY,VX%,VY%,Co%)             ' Font 8*8 klein
            
              SHARED FontSen&,FontOfn&,FontSek&,FontOfk& , Pfad$
              STATIC Gelesen?,Font?()
              LOCAL  X%,Y%,I%,J%,F%,I1%,I2%,I3%,I4%
            
              If FontSen&<>FontSek& or FontOfn&<>FontOfk& then  ' Zeichensatz 8*8 vorh.!
                X%=PMAP(XX,0)-3+VX%*4 : Y%=PMAP(YY,1)-3-VY%*4
                DEF SEG = FontSek&
                For Zeich%=1 to LEN(X$)
                  X1%=ASC(MID$(X$,Zeich%,1))
                  Ad&=FontOfk&+8*X1%
                  X0%=X%+8*(Zeich%-1)
                  For Vert%=0 to 7
                    Z%=PEEK(Ad&+Vert%)
                    For Hori%=0 to 7
                      If (Z% AND 2^Hori%)>0 then PSET (PMAP(X0%+7-Hori%,2),PMAP(Y%+Vert%,3)),Co%
                    Next Hori%
                  Next Vert%
                Next Zeich%
              Else                ' falls 8*14 nicht vorhanden, HGC-Font 8*14 verwenden!
                If Gelesen?=0 then                           ' 1. Lauf: einlesen
                  Gelesen?=1
                  I1%=32:I2%=123:I3%=0:I4%=13 : DIM Font?(I1%:I2%,I3%:I4%)
                  F%=FREEFILE
                  OPEN Pfad$+"HGCFONTS.BIN" for Input as #F%
                  For I%=32 to 123
                    For J%=0 to 13
                      Input #F%, Font?(I%,J%)  ' ASCII32-122, Font?(123)=ASCII0!
                    Next J%
                  Next I%
                  CLOSE #F%
                End If
                X%=PMAP(XX,0)-3+VX%*4
                Y%=PMAP(YY,1)-7-VY%*7
                For Zeich%=1 to LEN(X$)
                  X1%=ASC(MID$(X$, Zeich%, 1)) : If X1%<32 or X1%>122 then X1%=123 ' ASCII0
                  X0%=X%+8*(Zeich%-1)
                  For Vert%=0 to 13
                    Z%=Font?(X1%,Vert%)
                    For Hori%=0 to 7
                      If BIT(Z%,Hori%) then PSET (PMAP(X0%+7-Hori%,2),PMAP(Y%+Vert%,3)),Co%
                    Next Hori%
                  Next Vert%
                Next Zeich%
              End If
            
            END SUB
            
            SUB HGCFont(X$,XX,YY,VX%,VY%,Co%)            ' HGC&CGA-Font 8*14 horizontal
            
              STATIC Gelesen?,Font?()
              LOCAL  X%,Y%,I%,J%,F%,I1%,I2%,I3%,I4%
              SHARED Pfad$
            
              If Gelesen?=0 then                           ' 1. Lauf: einlesen
                Gelesen?=1
                I1%=32:I2%=123:I3%=0:I4%=13 : DIM Font?(I1%:I2%,I3%:I4%)
                F%=FREEFILE
                OPEN Pfad$+"HGCFONTS.BIN" for Input as #F%
                For I%=32 to 123
                For J%=0 to 13
                  Input #F%, Font?(I%,J%)  ' ASCII32-122, Font?(123)=ASCII254!
                Next J%
                Next I%
                CLOSE #F%
              End If
              X%=PMAP(XX,0)-3+VX%*4
              Y%=PMAP(YY,1)-7-VY%*7
              For Zeich%=1 to LEN(X$)
              X1%=ASC(MID$(X$, Zeich%, 1)) : If X1%<32 or X1%>122 then X1%=123 ' ASCII254
              X0%=X%+8*(Zeich%-1)
              For Vert%=0 to 13
              Z%=Font?(X1%,Vert%)
              Y=PMAP(Y%+Vert%,3)
              For Hori%=0 to 7
              If BIT(Z%,Hori%) then PSET (PMAP(X0%+7-Hori%,2),Y),Co%  ' BIT()=(Z% AND 2^Hori%)
              Next Hori%
              Next Vert%
              Next Zeich%
            
            END SUB
            
            
            '----------------------------------------------------------------------------
            '  WoBinIch() gibt den Pfad des aktuellen Programms zurck.        12.04.1994
            '  Programmgrundlage ist Tischer, PC-Intern pp. 756,849,1295.
            '----------------------------------------------------------------------------
            
            SUB WoBinIch(DosVersion,Pfad$)
            
              LOCAL BX&,EB&,Z%,L%
            
              If DosVersion<3.3 then
                Pfad$=""
              Else
                REG 1, &H6200              ' Adresse PSP ermitteln (BX&)
                CALL INTERRUPT &H21
                BX&=REG(2)      : BX&=BX&-2^16*(BX&<0)
                DEF SEG = BX&              ' Segmentadresse (EB&) Environment-Block holen
                EB&=PEEKI(&H2C) : EB&=EB&-2^16*(EB&<0)
            
                DEF SEG = EB&              ' Environment:
                Z%=0                       ' Offset immer Null!
                DO                         ' Bei DoppelNUL: Env-Block Ende
                  INCR Z%
                LOOP UNTIL PEEK(Z%)=0 AND PEEK(Z%+1)=0
                Pfad$=""
                If PEEK(Z%+2)=1 AND PEEK(Z%+3)=0 then
                  Z%=Z%+4
                  DO                       ' Name von DoppelNUL,1,NUL bis n„chste NUL!
                    Pfad$=Pfad$+CHR$(PEEK(Z%))
                    INCR Z%
                  LOOP UNTIL PEEK(Z%)=0
                  L%=LEN(Pfad$)            ' Nur Pfad, Name weg!
                  WHILE MID$(Pfad$,L%,1)<>"\"
                    DECR L%
                  WEND
                  Pfad$=UCASE$(MID$(Pfad$,1,L%))
                End If
              End If
            END SUB
            
            
            '----------------------------------------------------------------------------
            '  DOS-Version ermitteln
            '----------------------------------------------------------------------------
            
               SUB VersionDos(DosVersion)
            '  DOS-Version: Tischer p. 1238
               REG 1, &H3000
               CALL INTERRUPT &H21
               AH%=(REG(1)/&H0100) AND &HFF    ' AH: Unterversion
               AL%= REG(1)         AND &HFF    ' AL: Hauptversion
               DosVersion=AL%+AH%/100
               END SUB
            
            '============================================================================
            
            $IF 0
            ' PLEASE WRITE THIS TO >> HGCFONTS.BIN << AS ASCII --------------------------
               0   0   0   0   0   0   0   0   0   0   0   0   0   0
               0   0   0  24  60  60  60  24  24   0  24  24   0   0
               0   0 102 102 102  36   0   0   0   0   0   0   0   0
               0   0   0 108 108 254 108 108 108 254 108 108   0   0
               0  24  24 124 198 194 192 124   6 134 198 124  24  24
               0   0   0   0   0 194 198  12  24  48 102 198   0   0
               0   0   0  56 108 108  56 118 220 204 204 118   0   0
               0   0  48  48  48  96   0   0   0   0   0   0   0   0
               0   0   0  12  24  48  48  48  48  48  24  12   0   0
               0   0   0  48  24  12  12  12  12  12  24  48   0   0
               0   0   0   0   0 102  60 255  60 102   0   0   0   0
               0   0   0   0   0  24  24 126  24  24   0   0   0   0
               0   0   0   0   0   0   0   0   0  24  24  24  48   0
               0   0   0   0   0   0   0 254   0   0   0   0   0   0
               0   0   0   0   0   0   0   0   0   0  24  24   0   0
               0   0   0   2   6  12  24  48  96 192 128   0   0   0
               0   0   0 124 198 206 222 246 230 198 198 124   0   0
               0   0   0  24  56 120  24  24  24  24  24 126   0   0
               0   0   0 124 198   6  12  24  48  96 198 254   0   0
               0   0   0 124 198   6   6  60   6   6 198 124   0   0
               0   0   0  12  28  60 108 204 254  12  12  30   0   0
               0   0   0 254 192 192 252  14   6   6 198 124   0   0
               0   0   0  56  96 192 192 252 198 198 198 124   0   0
               0   0   0 254 198   6  12  24  48  48  48  48   0   0
               0   0   0 124 198 198 198 124 198 198 198 124   0   0
               0   0   0 124 198 198 198 126   6   6  12 120   0   0
               0   0   0   0  24  24   0   0   0  24  24   0   0   0
               0   0   0   0  24  24   0   0   0  24  24  48   0   0
               0   0   0   6  12  24  48  96  48  24  12   6   0   0
               0   0   0   0   0   0 254   0   0 254   0   0   0   0
               0   0   0  96  48  24  12   6  12  24  48  96   0   0
               0   0   0 124 198 198  12  24  24   0  24  24   0   0
               0   0   0 124 198 198 222 222 222 220 192 124   0   0
               0   0   0  16  56 108 198 198 254 198 198 198   0   0
               0   0   0 252 102 102 102 124 102 102 102 252   0   0
               0   0   0  60 102 194 192 192 192 194 102  60   0   0
               0   0   0 248 108 102 102 102 102 102 108 248   0   0
               0   0   0 254 102  98 104 120 104  98 102 254   0   0
               0   0   0 254 102  98 104 120 104  96  96 240   0   0
               0   0   0  60 102 194 192 192 222 198 102  58   0   0
               0   0   0 198 198 198 198 254 198 198 198 198   0   0
               0   0   0  60  24  24  24  24  24  24  24  60   0   0
               0   0   0  30  12  12  12  12  12 204 204 120   0   0
               0   0   0 230 102 108 108 120 108 108 102 230   0   0
               0   0   0 240  96  96  96  96  96  98 102 254   0   0
               0   0   0 198 238 254 254 214 198 198 198 198   0   0
               0   0   0 198 230 246 254 222 206 198 198 198   0   0
               0   0   0  56 108 198 198 198 198 198 108  56   0   0
               0   0   0 252 102 102 102 124  96  96  96 240   0   0
               0   0   0 124 198 198 198 198 214 222 124  12   0   0
               0   0   0 252 102 102 102 124 108 102 102 230   0   0
               0   0   0 124 198 198  96  56  12 198 198 124   0   0
               0   0   0 126 126  90  24  24  24  24  24  60   0   0
               0   0   0 198 198 198 198 198 198 198 198 124   0   0
               0   0   0 198 198 198 198 198 198 108  56  16   0   0
               0   0   0 198 198 198 198 214 214 254 124 108   0   0
               0   0   0 198 198 108  56  56  56 108 198 198   0   0
               0   0   0 102 102 102 102  60  24  24  24  60   0   0
               0   0   0 254 198 140  24  48  96 194 198 254   0   0
               0   0   0  60  48  48  48  48  48  48  48  60   0   0
               0   0   0 128 192 224 112  56  28  14   6   2   0   0
               0   0   0  60  12  12  12  12  12  12  12  60   0   0
               0  16  56 108 198   0   0   0   0   0   0   0   0   0
               0   0   0   0   0   0   0   0   0   0   0   0   0 255
               0  48  48  24   0   0   0   0   0   0   0   0   0   0
               0   0   0   0   0   0 120  12 124 204 204 118   0   0
               0   0   0 224  96  96 120 108 102 102 102 220   0   0
               0   0   0   0   0   0 124 198 192 192 198 124   0   0
               0   0   0  28  12  12  60 108 204 204 204 118   0   0
               0   0   0   0   0   0 124 198 254 192 198 124   0   0
               0   0   0  56 108 100  96 240  96  96  96 240   0   0
               0   0   0   0   0   0 118 204 204 204 124  12 204 120
               0   0   0 224  96  96 108 118 102 102 102 230   0   0
               0   0   0  24  24   0  56  24  24  24  24  60   0   0
               0   0   0   6   6   0  14   6   6   6   6 102 102  60
               0   0   0 224  96  96 102 108 120 108 102 230   0   0
               0   0   0  56  24  24  24  24  24  24  24  60   0   0
               0   0   0   0   0   0 236 254 214 214 214 214   0   0
               0   0   0   0   0   0 220 102 102 102 102 102   0   0
               0   0   0   0   0   0 124 198 198 198 198 124   0   0
               0   0   0   0   0   0 220 102 102 102 124  96  96 240
               0   0   0   0   0   0 118 204 204 204 124  12  12  30
               0   0   0   0   0   0 220 118  98  96  96 240   0   0
               0   0   0   0   0   0 124 198 112  28 198 124   0   0
               0   0   0  16  48  48 252  48  48  48  54  28   0   0
               0   0   0   0   0   0 204 204 204 204 204 118   0   0
               0   0   0   0   0   0 102 102 102 102  60  24   0   0
               0   0   0   0   0   0 198 198 214 214 254 108   0   0
               0   0   0   0   0   0 198 108  56  56 108 198   0   0
               0   0   0   0   0   0 198 198 198 198 126   6  12 248
               0   0   0   0   0   0 254 204  24  48 102 254   0   0
               0   0   0   0   0   0   0   0   0   0   0   0   0   0
            '--------   END OF FILE ------------------------------------------
            $ENDIF

            ------------------




            [This message has been edited by Hanns Ackermann (edited April 01, 2000).]

            Comment


            • #7

              print large size letter on the screen.
              This program will print latters any size you wount.

              'gary.bas by gary russell
              '[email protected]
              DECLARE SUB NORMAL0 ()
              DECLARE SUB LAYER2 ()
              DECLARE SUB LAYER1 ()
              DECLARE SUB TRANSLATE ()
              DECLARE SUB LETTERS ()

              DEFINT A-Z '
              DIM P$(122)
              SHARED P$()
              SHARED P$, SIZE$
              SHARED C1$, C2$, C3$
              SHARED C4$, BGC, DOT$
              SHARED SPACING$, WORD$
              SHARED PFT, PFL
              CALL LETTERS '
              SCREEN 9 '''''''''''''''''''''

              EFFECT1:
              LINE (1, 1)-(590, 72), 4, BF
              LINE (202, 3)-(588, 70), 1, BF
              WORD$ = "GARY RUSSELL" '
              SPACING$ = "L1"
              SIZE$ = "24" '
              DOT$ = "N" '
              BGC = 4 '
              CALL TRANSLATE '
              C1$ = "C14": C2$ = "C 8": C3$ = "C 0": C4$ = "C15" '
              PFT = 52: PFL = 13: CALL LAYER1 '
              PFT = 52: PFL = 9: CALL LAYER1 '
              PFT = 51: PFL = 10: CALL LAYER1 '
              PFT = 51: PFL = 11: CALL LAYER1
              t$ = INPUT$(1)

              EFFECT2:
              LINE (3, 78)-(494, 130), 13, B
              LINE (5, 80)-(492, 128), 7, BF
              WORD$ = "DAVID RUSSELL"
              SPACING$ = "L1"
              SIZE$ = "20"
              DOT$ = "N"
              BGC = 7
              CALL TRANSLATE
              C1$ = "C 5": C2$ = "C 8": C3$ = "C 8": C4$ = "C 8"
              PFT = 117: PFL = 17: CALL LAYER2
              PFT = 117: PFL = 15: CALL LAYER2
              PFT = 117: PFL = 13: CALL LAYER2
              C1$ = "C 5": C2$ = "C 0": C3$ = "C 0": C4$ = "C15"
              PFT = 115: PFL = 19: CALL LAYER2
              PFT = 115: PFL = 18: CALL LAYER2
              t$ = INPUT$(1)

              EFFECT3:
              LINE (3, 136)-(178, 192), 8, BF
              LINE (3, 136)-(415, 192), 9, B
              WORD$ = "JAMES RUSSELL"
              SPACING$ = "L1"
              SIZE$ = "16"
              DOT$ = "N"
              BGC = 8
              CALL TRANSLATE
              C1$ = "C 0": C2$ = "C 0": C3$ = "C 0": C4$ = "C 0"
              PFT = 167: PFL = 12: CALL LAYER1
              C1$ = "C 8": C2$ = "C 7": C3$ = "C15": C4$ = "C 0"
              PFT = 167: PFL = 13: CALL LAYER2
              PFT = 167: PFL = 12: CALL LAYER2
              PFT = 166: PFL = 13: CALL LAYER2
              PFT = 167: PFL = 11: CALL LAYER2
              t$ = INPUT$(1)

              EFFECT4:
              LINE (2, 206)-(636, 303), 12, BF
              LINE (1, 204)-(639, 306), 15, B
              LINE (19, 280)-(620, 280), 14, B
              LINE (20, 281)-(619, 281), 0, B
              LINE (21, 282)-(618, 282), 0, B
              WORD$ = "JOHN RUSSELL"
              SPACING$ = "L1"
              SIZE$ = "28"
              DOT$ = "N"
              BGC = 12
              CALL TRANSLATE
              C1$ = "C12": C2$ = "C 4": C3$ = "C 0": C4$ = "C 0"
              PFT = 266: PFL = 24: CALL LAYER1
              C1$ = "C12": C2$ = "C 4": C3$ = "C 0": C4$ = "C 0"
              PFT = 265
              FOR XX = 25 TO 33 STEP 2
              PFL = XX: CALL LAYER1
              PFT = PFT - 1
              NEXT
              C1$ = "C15": C2$ = "C 6": C3$ = "C 6": C4$ = "C14"
              PFT = 259: PFL = 40: CALL LAYER1
              PFT = 259: PFL = 36: CALL LAYER1
              PFT = 258: PFL = 38: CALL LAYER1
              t$ = INPUT$(1)

              ALPHABET:
              LINE (1, 315)-(639, 331), 7, B
              LINE (2, 316)-(638, 330), 15, BF
              WORD$ = " THE RUSSELL BOYS MOMY JULIE ANN RUSSELL"
              SPACING$ = "R0"
              SIZE$ = "4"
              DOT$ = "N"
              BGC = 15
              CALL TRANSLATE
              C1$ = "C 1"
              PFT = 324: PFL = 5: CALL NORMAL0
              t$ = INPUT$(1)

              SUB LAYER1
              PSET (PFL + 2, PFT + 5), BGC: DRAW C3$ + P$
              PSET (PFL + 0, PFT + 5), BGC: DRAW C3$ + P$
              PSET (PFL + 1, PFT + 5), BGC: DRAW C3$ + P$
              PSET (PFL + 0, PFT + 4), BGC: DRAW C3$ + P$
              PSET (PFL + 1, PFT + 2), BGC: DRAW C2$ + P$
              PSET (PFL + 2, PFT + 4), BGC: DRAW C1$ + P$
              PSET (PFL + 3, PFT + 3), BGC: DRAW C4$ + P$
              PSET (PFL + 3, PFT + 2), BGC: DRAW C2$ + P$
              PSET (PFL + 4, PFT + 4), BGC: DRAW C2$ + P$
              PSET (PFL + 5, PFT + 2), BGC: DRAW C3$ + P$
              PSET (PFL + 5, PFT + 3), BGC: DRAW C2$ + P$
              PSET (PFL + 4, PFT + 3), BGC: DRAW C1$ + P$
              END SUB

              SUB LAYER2
              PSET (PFL + 0, PFT + 5), BGC: DRAW C4$ + P$
              PSET (PFL + 0, PFT + 3), BGC: DRAW C4$ + P$
              PSET (PFL + 2, PFT + 3), BGC: DRAW C1$ + P$
              PSET (PFL + 1, PFT + 2), BGC: DRAW C1$ + P$
              PSET (PFL + 2, PFT + 4), BGC: DRAW C4$ + P$
              PSET (PFL + 3, PFT + 3), BGC: DRAW C3$ + P$
              PSET (PFL + 3, PFT + 2), BGC: DRAW C1$ + P$
              PSET (PFL + 4, PFT + 4), BGC: DRAW C1$ + P$
              PSET (PFL + 5, PFT + 2), BGC: DRAW C1$ + P$
              PSET (PFL + 5, PFT + 3), BGC: DRAW C2$ + P$
              PSET (PFL + 4, PFT + 3), BGC: DRAW C1$ + P$
              END SUB

              SUB LETTERS
              P$(32) = "BR4" 'space
              P$(65) = "BD1U7E1R3F1D3L5R5D4BR4BU1" 'A
              P$(66) = "BD1U8R4F1D2G1L4R4F1D2G1L4BU1BR9" 'B
              P$(67) = "BD1BU1U6E1R3F1BD6G1L3H1F1R3BR4BU1" 'C
              P$(68) = "BD1U8R4F1D6G1L4BR9BU1" 'D
              P$(69) = "BD1U8R4L4D4R3L3D4R4BU1BR4" 'E
              P$(70) = "BD1U8R5L5D4R4L4D4BR8BU1" 'F
              P$(71) = "BD1BU1U6E1R3F1BD6G1L3H1F1R3E1U3L2RD3BR4" 'G
              P$(72) = "BD1U8D4R4U4D8BR4BU1" 'H
              P$(73) = "BD1BR1U8L1R2L1D8L1R2BR4BU1" 'I
              P$(74) = "BD1BU1F1R2E1U7L1R2L1D7BR5" 'J
              P$(75) = "BD1BU8D8U4R1E4G4F4BR4BU1" 'K
              P$(76) = "BD1BU8D8R4BU1BR4" 'L
              P$(77) = "BD1U7E1R2F1D7U7E1R2F1D7BU1BR4" 'M
              P$(78) = "BD1U8F7D1U8D8BR4BU1" 'N
              P$(79) = "BD1BU1U6E1R3F1BD6G1L3H1BR5U6D6BR4" 'O
              P$(80) = "BD1U8R4F1D2G1L4D4BR9BU1" 'P
              P$(81) = "BD1BU1U6E1R3F1BD6G1L3H1BR5U6BL3BD5F3BG3BR7BU5" 'Q
              P$(82) = "BD1U8R4F1D2G1L4R1F4BR4BU1" 'R
              P$(83) = "BD1BU5U2E1R3F1BD2BL5F1R3F1D2G1L3H1BR9" 'S
              P$(84) = "BR3BD1BU8L4R6L3D8BR6BU1" 'T
              P$(85) = "BD1BU1U7D7F1R3E1U7D7BR4" 'U
              P$(86) = "BD1BU8D5F2D1U1E2U5D5BR5BD2" 'V 'P$(86) = "BD1BU8D5F2D1U1E2U5D5BR5BD2"
              P$(87) = "BD1BU1U7D7F1R2E1U7D7F1R2E1U7D7BD1BR4BU1" 'W
              P$(88) = "BD1BU8D1F3E3U1D1G6D1U1E3F3D1BU1BR5" 'X
              P$(89) = "BL1BU5U2D2F3E3U2D2G3D3BU1BR7" 'Y
              P$(90) = "BU7R5D2G5D1R5BR4BU1" 'Z
              END SUB

              SUB NORMAL0
              PSET (PFL + 0, PFT + 0), BGC: DRAW C1$ + P$
              END SUB

              SUB TRANSLATE
              SPACING$ = "B" + UCASE$(SPACING$)
              SIZE$ = "S" + UCASE$(SIZE$)
              P$(105) = "BR0BD1U6BU2BD7BR4" 'i
              P$(106) = "BR1BD1U6BU2BD7D3G1L2BU4BR8" 'j
              IF DOT$ = "Y" THEN P$(105) = "BR0BD1U6BU1U1BD7BR4"
              IF DOT$ = "Y" THEN P$(106) = "BR1BD1U6BU1U1BD7D3G1L2BU4BR8"
              P$ = SIZE$
              FOR J = 1 TO LEN(WORD$)
              P$ = P$ + P$(ASC(MID$(WORD$, J, 1))) + SPACING$
              NEXT J
              END SUB



              ------------------

              Comment


              • #8
                The program I sent can produse print to the screen of any size.
                Jest change the SIZE$ = "24" to SIZE$ = "4" or whotever.

                ------------------

                Comment

                Working...
                X