Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
CP437FONT - SUB to easily provide re-sizable CP437 font to use.
#1
CP437FONT is a SUB I add to BAS code to provide a re-sizable code-page 437 font (like the kind QB64-PE uses) without having to depend on an external font file.  This way I can just share/post only BAS code and not an archive of files every time, and it's easy to stick this SUB into any program.  I made this mainly to have larger windows/text for SCREEN 0 tools as changing the font size will resize SCREEN 0 windows to fit the new size.  

This SUB basically just builds a small font as a string, and uses _LOADFONT to load it from memory.   I have posted one before on the forum, but this version has been updated to use a smaller font file, and also made the SUB friendly for those who use OPTION _EXPLICIT.   If you want to extract the font and save it to disk so you can use it eternally instead, there are instructions in the code for that.

The demo code shows how the SUB can be used.  ESC ends.

- Dav

Code: (Select All)
'=============
'cp437font.bas - v1.1 (use new smaller font size)
'=============
'A single SUB that provides in-code re-sizable code-page 437 font to use.
'Coded by Dav for QB64PE, NOV/2025

'Added in v1.1: Now uses smaller sized .otf font - it decodes/loads faster.
'              Made the cp437font SUB friendly for OPTION _EXPLICT users.

'This SUB makes and loads a codepage 437 font, just like QB64PE's font.
'With this you can set the font to larger sizes than QB64's built it one.
'It's like loading an external font to use, but here the external font file
'is in BAS code and loaded from memory instead of loading an external one.
'Using $EMBED you can put fonts in your EXE without needing a SUB like this.
'I still like having everything in code to post sometimes, so here it is.

'If you want to extract/save this contained cp437.otf, to load or $EMBED it,
'just feed the cp437font SUB a -1 size and it will save a cp437.otf file to
'the current dir. Just call the SUB like this:

'cp437font -1  'extracts the cp437.otf font and saves it to current dir.

'I made this mostly make my SCREEN 0 programs start with a larger screen.
'Loading a larger font in SCREEN 0 will auto size it to fit the font size.
'To make a 75% sized SCREEN 0 on my laptops I usually call the SUB this:
'cp437font (Int(_DesktopHeight / 25) * .75)
'(the 25 above means 25 rows, which SCREEN 0 usually has)

'===========================================================================

'Demo....use +/- keys to increase/decrease the font.  ESC ends.

Screen 12

size = 32 'start demo with a double size font (usually it's 16)

cp437font size 'set the new font size to use

Do

    Cls

    Print "The +/- keys resize."
    Print "Current size:"; size

    k$ = Input$(1)

    If k$ = "+" Or k$ = "-" Then
        If k$ = "-" Then size = size - 1: If size < 8 Then size = 8
        If k$ = "+" Then size = size + 1: If size > 64 Then size = 64
        cp437font size
    End If

    _Limit 30

Loop Until k$ = Chr$(27)


End

Sub cp437font (size)
    'cp437font SUB by Dav
    'Makes and loads a resizable code-page 437 font.
    'This SUB is OPTION _EXPLICIT friendly for easy plug & play.

    Static cp437& 'font handle this make
    Static cp437init 'flag set when this SUB is first used
    Static cp437$ 'font file data mem

    'if doing a font extraction....
    If size = -1 Then
        Dim oldinit
        oldinit = cp437init: cp437init = 0
    End If

    'if first time called...
    If cp437init = 0 Then
        Dim A$, c$, o$, btemp$, a&, j&, p&, oc&, i, i&, a, c&
        A$ = Space$(9221): a& = 1 'make basfile encoded file: cp437.otf
        Mid$(A$, a&, 80) = "0EOVLFm^jMny|Ps;2n+_C3DQ5MfmNI.H:4)g*e<AQ<}MXRAACD*Yt/C.DSIdg?k>/\dFLLJm>1Q,e}<z": a& = a& + 80
        Mid$(A$, a&, 80) = "+PKwX4cHcq<]lD;QDarvakGE?o7O::+xcEBBs*^1Zx\nvUdiMo?;W.R6m]g<2JwJM?mb}F)XAw9GslvU": a& = a& + 80
        Mid$(A$, a&, 80) = "vP,7*,5v\yVwrsG>fA/aGO/a2hle)pzf/h'0]W=-a[>(IRyk5VJ*AR)AX].CXe']AvP1ykk]*twJKaW{": a& = a& + 80
        Mid$(A$, a&, 80) = "X^|CtosrdY/+55+6qYh4jPB[(Cq>CnNdb^8HZg>M:+u^:yYZ3j.wd>dHsyu4U5\^(*2KWFk(vwV8u}0n": a& = a& + 80
        Mid$(A$, a&, 80) = ")0Ui7:C(K-e,No,SBjO6DPmR\Ev.PFO]|gs2>nl^QX'T/aFf7t4^or{4F.;U^i1FNHd(g)(H?t6T,r3^": a& = a& + 80
        Mid$(A$, a&, 80) = "7WaAb1Du5/}m6VcoKl?uww?hbcXazUwd)XAAH+y)'9l1I<_JxYT^rz5)Eo-)wRArP=tYF3Uv:^^z^wqv": a& = a& + 80
        Mid$(A$, a&, 80) = "1bpg=pJ[9DvMazrIJ|>EZxG;\rl',KEk]tPb8:rbepVao9,ML=g=98QQQ\9B}d'\J'cBMM7udND:]a5?": a& = a& + 80
        Mid$(A$, a&, 80) = "4_8g'3Saae+hTo'=85SNPJ5hHTDuao*I.NAn_gBt.4Z^p1nfccu4IIvemPx)b3^M?SlOR|iQ6:O=:N,O": a& = a& + 80
        Mid$(A$, a&, 80) = "5J2z=x[EgVWT:c_vEK'^4c*Uo_3}O5zsMH86I5Uo_pnUWpIUAQ)r2REetM[EAK09mZbv}/ScfQ)AI;Dz": a& = a& + 80
        Mid$(A$, a&, 80) = "REUso0FM9[cbp-Ocvy?5?2\lmNB?sv<tE1uYyZ/]ZZb)5;?/H|tFTkmdX8Auj*o)T*pfXuw>iEW,YsGK": a& = a& + 80
        Mid$(A$, a&, 80) = "5bS^3)DiS](Ja|1}DeTAz9Kqxgrhac_j29D;_h)fFb7DX>FYnf8v|\[:]Tku}3bl(tOL8+2FU:gzH\YN": a& = a& + 80
        Mid$(A$, a&, 80) = "Z;GUNgc'TPe6u>43u:r_TY>ttTa337:PiOd594Na8]fc5_I{6MNF[^,lxx?N5HTTs;NbmY|XcRv9Z0Tb": a& = a& + 80
        Mid$(A$, a&, 80) = "}kp}QoOG>J6g/ZGuiuidTYn,nKKaAQIi6{VyuK+Qkd'|t4-o*ChXQ:4\wV.uFmQ(we*2?g,3I;_x\VQ|": a& = a& + 80
        Mid$(A$, a&, 80) = ",)N=u+XYE8uA[NY*0u'-i]F{SDo]pNqtF\w\m?xVw<TQ>QhJYY_m=XdTzLO?QAyxm?dIJvDa*Mw;Gy>L": a& = a& + 80
        Mid$(A$, a&, 80) = "DR9.{YxgGZQKdN[x8kDRjq}pY20x4NP0aq9lxap6;Z|rp\[;ug.Z*0V.YKW>25f-6)k[WG6TxzXUtUz(": a& = a& + 80
        Mid$(A$, a&, 80) = "=viVgP9{\/FaYlFyPZhpZK/:H\K]]1Bv{KaigVK'\lcIkKADz6^QLs63O?-Y+9z5,-4jRb[f1q>an3;T": a& = a& + 80
        Mid$(A$, a&, 80) = "m<n+?0j*,UQm;9d|y45ta)6.6Urq8HP6G2_F*sZx^?>mRDb6uw/](v51C/vAm:ud))lt}R4pu,iO_V](": a& = a& + 80
        Mid$(A$, a&, 80) = "4kR?9*'^P[-s]|7(Ev6<c_E1J}jG[3)^AKx5B3H{[CXib]zeF7H9gxLIBrz{Om2I*\wtcbVa7GG|t2'A": a& = a& + 80
        Mid$(A$, a&, 80) = ";_a+ltNP8((y:8dU9fCB[k;_oqsBobhMr;EGr/Lw3P2/80xFOTdJ]R='pDr/.+o8qa2SOFWi4IBtE}Nx": a& = a& + 80
        Mid$(A$, a&, 80) = "E6J}VGA(,qjtM*I-:yP/R)J<Igvc/_GCYi1hn/5pAvWmC}^CHxC0>(kPzv^g4hUjRtwqStS8nN-5>qax": a& = a& + 80
        Mid$(A$, a&, 80) = "Q'}.-BDpOEb2|svAk2vX0:'0zvZxsk'jyMrPk>kXJ_;{HYuN<PUun);:[)*BO_OKcKwI^S1?I3>eXnnP": a& = a& + 80
        Mid$(A$, a&, 80) = "pJ'}(G?Bq^OWw5;9+z1N5G(*eMNn5cd^;pup^nA'CI8Jns2]dvqaHttMo['87hgiH'6;G5_Y<wn9P.N+": a& = a& + 80
        Mid$(A$, a&, 80) = "z6Jv36kIaPoZwmQrMk8wi2OYRPD;RItsu2jjel^hznBjO>FN6K-w|4L(P6[Ug{*]D<psPsp[<5qBFx4C": a& = a& + 80
        Mid$(A$, a&, 80) = "jX/vj>WFZkFm;qXTbv<9jE5{r;_(li/yZWHHt]uQDtb8C)tZm-[t]b|Zn.=Owmu*fGtb\qSmt\L\b6mb": a& = a& + 80
        Mid$(A$, a&, 80) = "lJoMj}o>K;We|ZpraGg1n]yaA^\U_,|ntxwexEhKIx28W[yjP)>yn8R{ylw_Iyl-.Uyk'I+N6o,2:os=": a& = a& + 80
        Mid$(A$, a&, 80) = "-Ab7D'3F?l<k>ByW^5D0hjapM[-_pQ<5('2Yx0q2J-ad+J2bxtU+Vst14C1A7WvG}*FZdHVj/EJe6AEc": a& = a& + 80
        Mid$(A$, a&, 80) = "jHVb8F._5pt7>D[6Tzu}NY>QGZ=Py}fjk,<mRw5aj^pZt?s8zyM+Cf{oUL0<ZmYW.iGH|78b8/>nb*'S": a& = a& + 80
        Mid$(A$, a&, 80) = "WkKOFu=xHEg?;GP?whv}8cC=NtDK]k[JKEI3<Ehx5K+Q8kT)ki[tc0|dmn.(o_56qahyNDT=OLlIE=f+": a& = a& + 80
        Mid$(A$, a&, 80) = "QoDwU>^OFMz^KsoJJ0=9^uQ;46e)V[VjGDPXho:^;cfG:,F)3[mKiU7:/g\/77)a7auB<eTk;b/VqHOT": a& = a& + 80
        Mid$(A$, a&, 80) = "]-TZ+x?i}:{z)Olm<cUbnfAIlJ(6>q:E1=D}XQL80bu,>zmJOlsJDgW)T.Tlr=0ssd?9+>'kBOi44G(P": a& = a& + 80
        Mid$(A$, a&, 80) = "(Pzg)sra|Ph7_>x.I4:pfHtdHrND0H0jBb2[kZKdgj4_bWsfy}]jl8jkIt<yhw4uI5w7V2T/srepwQ2U": a& = a& + 80
        Mid$(A$, a&, 80) = "Vb_:3GpT3S>K)bB3V*mKhor\_.yBd}3ceX\GMYOX?z(\QvTpd\ntFX4}qn|aXdf\KPmJh;WoS'm2u:/N": a& = a& + 80
        Mid$(A$, a&, 80) = "YxCTJLa7pVQrsBDMTpZuLUOP1\+>K':mv<YwM}}JGl{:_^c6aY>WE[soJFa1n+10P1=zW-4J[K+lo-1T": a& = a& + 80
        Mid$(A$, a&, 80) = "HKtqKNcfZ2XMi)lw>>0KonzPOFiMA)ir4x*B*+<Abx'BD>yWLoBF^(Rt]6AB|_fDe=tP_Mm6gW/.Z0Ky": a& = a& + 80
        Mid$(A$, a&, 80) = "ZbcM7u^w*=btiWEeum\CXwaav*Rh>8bk1vim(:/Thm>nTi:Wp8FG'xbU;zK'mTs:Ed'}:xBiwsNne)a'": a& = a& + 80
        Mid$(A$, a&, 80) = "4W,^gyR.kA=BkRxX_uQT\6WYWi=a6+PQNtLbsAqb*s?);dVFoG[175zgPR\4Y_B{pyprR*0G6+4A)=l\": a& = a& + 80
        Mid$(A$, a&, 80) = "WXL(<D)r\UU>qqjrfcpu[DZ-[>J5{DBvdQOn]lRauAMy*cCI19<Fcaf}^B(seJYny.'=v_Ck8lm(WIHm": a& = a& + 80
        Mid$(A$, a&, 80) = "Y]KwJ17H<;)qSEqm*s4ZF,4oWmQb(rvo,|gctf4l(E^]V>:=}.i//ugVSJg+u+{sKSkt<UQ5w_E,,HEt": a& = a& + 80
        Mid$(A$, a&, 80) = "o[8_}G[=*xL[Rkm|su}>k0eq>>i<Hb><GV}CwlI*PyUy+^925:rbp4ux=K7g_x)s^=zJ3WrA/ZTK/}^m": a& = a& + 80
        Mid$(A$, a&, 80) = "'F+5=G_13p_+ndwzPeP0]pt__lxbp:x(>gwm>O2DewU/OUzmf[)XUpyD<8|;|^Br)Tl_[^atCq1ttN/W": a& = a& + 80
        Mid$(A$, a&, 80) = "|dA9d^Rf<JX?/i]ME;rto^^5hJM?mbI1uRZ?wSN}NNO0m?jrNoHb33{prm(06ddX:w4zB?rrg)SWNp44": a& = a& + 80
        Mid$(A$, a&, 80) = "K6E03/h_B0TV[>dlWGVzDs{AIHF_ZK8R4[*oV5XEBOR}{1wR5t/P?k]V*S_3+mo]O=1F[>(jz_.fv\Aa": a& = a& + 80
        Mid$(A$, a&, 80) = "X6,Uf.=P=.dg>p)w;Gv3xHLQHSWM];1eAQWibLw\f]Y*^>CSIDomx8K7x]6scKt*n[pjCS>P*gYSz_,X": a& = a& + 80
        Mid$(A$, a&, 80) = "szt1t?faMCE{5X1WGx.VLgR3cqozGV/Y06/-b.;Jt/u23\k4Te?e2W0m;b*ni=69n(Bp;1-8Fq=MOrOB": a& = a& + 80
        Mid$(A$, a&, 80) = "Q+iEp9FOt>]yf6(HbJJ9:Yjt6[L7M37XJYUsa,fsDsA7k'r>Gy;G<?OdUVc5AN>cYKheSf3xd2WIi7=,": a& = a& + 80
        Mid$(A$, a&, 80) = "fkb=+mPLJt}KQVNUD3|^jpMTr\e^tiLk.DStR/(c5;L7Ooqzn9tVJ1=WX?YBu)X7y4{3dI3z=ArM6UH7": a& = a& + 80
        Mid$(A$, a&, 80) = "og1mDO.2kWeEr|jRoIPQr*VeL95mpy0d<^Erg_3l)5MU|q\caA8T7qoi9/;jXRgPnP0zbo/='SUJG{IU": a& = a& + 80
        Mid$(A$, a&, 80) = "4Z/KehrV'vIGM8J4+MLp,Yu\KYOH8y|FHKCJyI'C\B6KSYI_ow0\H^K4=PCU[5imSkJTA)(Pus7*I0wW": a& = a& + 80
        Mid$(A$, a&, 80) = "3yvk'eD1pIJY|nVSKcmyRKcxcuuU?7Tgq.z].X.)non\6ivZ0HZ.D6{0C^)y;/9[bxmsD7:9H=Q(W.z,": a& = a& + 80
        Mid$(A$, a&, 80) = "*5YK*ZV=O^7+ppIoh>)\5;1_1TI>T[BK.j6UbI:d:bP<,]Wt))GEMY7oO)64ft_n]EOZ-3_nqzA.Wq*,": a& = a& + 80
        Mid$(A$, a&, 80) = "DjWYW<X;Ep2O\rLpS:l[>iEs98LP-f}g(KHczT}d[3VPEwvP{W6h5U7[Q\}x>Str,-V]V,ZvPl*Yw[,W": a& = a& + 80
        Mid$(A$, a&, 80) = "Z\]1|b1:CIw-Kr,:QxYgU8e/\c4Z+5q(xRG09a<(VRZfv4-w{4iRs5|qyVmf/1:nesez\_e^)t}RrA1q": a& = a& + 80
        Mid$(A$, a&, 80) = "rltACm+U=7UNdYFR.u*uEco5j|pn.yw[bsJ\iktNF?s>qnqn(x<A.W>|_C<YESb<ZpSXFe;L<3umLU.w": a& = a& + 80
        Mid$(A$, a&, 80) = "Uk:\?I(X|5BqL<,HA9S.ld?NNr:09zOI3L0,..B18)AIwH,w9:/y.]}n1v*Q:bu^/+Ve's\<ttu07Pgu": a& = a& + 80
        Mid$(A$, a&, 80) = "(wo6gz_hZCws:,j[+nu;C27gN\ziW]4:M/tRIT=beu><T]L^yjX<8im|O;+P,6oI+bxseap6zlBQ^1-_": a& = a& + 80
        Mid$(A$, a&, 80) = "wZ.w|]-x?p}\rR7t1*jz:;D<)P,p]]+)642iq{iLP[N;DF3p552tP>3U.Fc?LVmTrw;nOA:6Cca6J-Od": a& = a& + 80
        Mid$(A$, a&, 80) = "TIhnu[;On+qU/qSf,Oifl'AwJrxp?tn//*|oW=uC.U)5tqVrN\.^I2b_R+N[WLH_,E2DP.y,m\n9Sl*?": a& = a& + 80
        Mid$(A$, a&, 80) = "fQ8T^\O9bhi2DHT'fq^5uftfqRE0Afy2.=c,GxKog=n0)qvm,N5)EHJH/5)']?hof_JW]t=lMDO483O\": a& = a& + 80
        Mid$(A$, a&, 80) = "l)aRvX1}{o\U*Mt5O=z7yPNp}eO<NOxW<h=sIHO}}G\xa;__L-c<ZyrLqTT>W>TOr2swRZ\B<</p6BQe": a& = a& + 80
        Mid$(A$, a&, 80) = "oMyCatI,b8vI>o;.^Uy0;3SH=iwXAey(>QP\HPr+Ywj.)44108Ky[fqqIw-4?-k/?D?BE6gUz(F879mz": a& = a& + 80
        Mid$(A$, a&, 80) = "OPLB*Q3;c2sQ3.+86y]ykIXtdXGziypt=4+LIH{p/CUk<g4-aVpgj15i<QBW(Pcu^igG1D*L*hZtIY:_": a& = a& + 80
        Mid$(A$, a&, 80) = "}^srLKTBytl,c=K\0G3+TeMcRR:.N(IYm7o5s)>VZV4^H9(y[R8s[EK**HAXz5)(O3YBQn0WVyc7)<]S": a& = a& + 80
        Mid$(A$, a&, 80) = "?MQW]8jx4TrqfBv]UjlRtvOI9;2OLdPWCK7twO\pjW(CUMs+M?5'gU>K=98k<6gJ<=t6/=zf,;5Nc;i{": a& = a& + 80
        Mid$(A$, a&, 80) = "?[*kRly*hO<wp(bY*[?}tg2CHu>u:h(:KU|f+P+rt3b-fw[s[E411e6jgxOUWwjgzm1,y{6Wht7;k}og": a& = a& + 80
        Mid$(A$, a&, 80) = "m5_Q2O(vSfD^DY[Ave(WL\q7[YL33rRVEgt=-oHBk0K(P|]+(}s\U\B^^f+3GdP7N'{4W+vba>6.Er11": a& = a& + 80
        Mid$(A$, a&, 80) = "=>o2K|c9u[rXuwL9t[R+q6af62?)7BHH}7t.?cteyxUM;2jAJHetU1nc]-*|}>Q+2_Db>0)7tWU6po.'": a& = a& + 80
        Mid$(A$, a&, 80) = "b0u|^6Mm,k[gj.'p<9zu[MTW?BTd'ih=(z1,2:F90elBxu9*Q-^W6(f^Q:.an)SGar<5X{oCg6(IokYL": a& = a& + 80
        Mid$(A$, a&, 80) = ";*KZvF7b_.37y5OO5}aztdPH(sxkJ|ZEyt;5oYf_,>('{<nqJkM(4nbWqb8L)07nKSB:81/Fyh\d'Cpb": a& = a& + 80
        Mid$(A$, a&, 80) = "p:p['yxpmdcJj*2C?fY6K)Zx4>nhH?kPI9v0zuR)26IzRQq*^qtl.uNODL4GNUG;r8_f_:K88suLLU\E": a& = a& + 80
        Mid$(A$, a&, 80) = "48m1(sSVR?88Gg+(r?]rNh7BZtdcJ.-,i\8gjmVK{s|<OtNpCl<p?U|vn<'_W4/zH(6Mt-E=ZEP|>gGl": a& = a& + 80
        Mid$(A$, a&, 80) = "mAJQ)RmqhJgqF,rX5L9zBMbrET)oZ>KG'UQ2a}Hi4+i[;o)-*i5*Oh.LHFsI|((Xfr]ubwa[OAUj']49": a& = a& + 80
        Mid$(A$, a&, 80) = "cR\uc|C.|apSREfnyC-9VuzH64LBEe]1tiK8<l2jJZOW+L/?^p31DyaA;w[zF'F=al4iHe2qA:AvDa6_": a& = a& + 80
        Mid$(A$, a&, 80) = "D(7xEl4?g'<rgDXRwXLoktNrZ\iU0QfSfUDkHT684f{sHg?HXB(zAiMT8e3uUZh3_m;uyS=atm5_7Jqv": a& = a& + 80
        Mid$(A$, a&, 80) = "i;p;QHisaUgxf[KxNr'ez81NL;<+P8K'<xc>'Yj3vPRAgtb>voAYRWy1G6NB_0<k.F5G,C-UfVf;pI]A": a& = a& + 80
        Mid$(A$, a&, 80) = "k*jO{i(ov]G:?I)>J2|I|B:Q6|hC+J1+([=ge8,oLq:D-ilRsNb)k{2D;uums?Tf7vl)^J2bYKG\'|fq": a& = a& + 80
        Mid$(A$, a&, 80) = "]t7mb4s';Uj:YER30.m?iahHjmT7Mm>'h9C.tvnLa?'S*W5lFWNX.t<pGt|_S?nvC+any5aN=<0hDQ<\": a& = a& + 80
        Mid$(A$, a&, 80) = "v=l4qPXokYNjmemq.Vk^x15SU?*xFjW\4wEN.Qo*GGGcapjiw?,O.+TW-g=)V5OTb<-((.9({EU8RnNg": a& = a& + 80
        Mid$(A$, a&, 80) = "mktCFv70uR78,S;P/NXZ/(Lf\,<XUD0MjTQg>^CM'IwSsUd[a9?Y,/I/'e3pIL}dh/67?^eGL:Qv1kl\": a& = a& + 80
        Mid$(A$, a&, 80) = "SzEDDN_Tn_z1Mu=S\j9HbJ5[418;TeS/<1A{SjYt](cxQEZi(g22r;}1U?v^w8u(-,6[KnS(9OyV<90M": a& = a& + 80
        Mid$(A$, a&, 80) = "lD}v06-)nm8_GHrwQTW+T;Xcg[M|z']ZqGt<\qeEsUl3ANFB9<C6Z*zEl1(MYgf21AqMWVwk>AzUOhzM": a& = a& + 80
        Mid$(A$, a&, 80) = ")7u8Y=wM'3MFjnpAU;_m-F/.A/dkHZ+[wntlW|y]y->{9q1j9-QrCdVe(p;P},{3_5*3CGw^e[vLEd[)": a& = a& + 80
        Mid$(A$, a&, 80) = "u7L}14FR+V/O.<}[N:<h:]H.}4??xuXV8E6OaKq:^jrk7P2T}523Xek3xdTYh)A6s]s+k;nfXCB^A?wh": a& = a& + 80
        Mid$(A$, a&, 80) = "z^8=Jvw_/*[.3q(<bjraFdD1v822lIUeR>)PhM{3(35*h}n71|]rXvmJ=u/74U4mq_A=/CYA0w)]61-F": a& = a& + 80
        Mid$(A$, a&, 80) = "RpZ]e6,XsUiKUa5h0(q/waQ}qaAlPC;=Zb1O6Ab|;\hsU;3)S-v>A*9\IwTJn1n1Gp8z]^q=|}7B_((<": a& = a& + 80
        Mid$(A$, a&, 80) = "'*9jkPaM3RM3*[[CE.Xh/C=/1RA<RnG)Nl9fZ?6uA.DH\ACP+8fok_?uGFD0w3W?]0f(Px9:A,)Z=s0j": a& = a& + 80
        Mid$(A$, a&, 80) = "^7WtP1StH)P(G]VeaofN-G5A4S*X/BFW?t1Jgs?mg{+,q(XIKQ;ic3(1)L_K\Ypz(d,oNsd]G[njLsI5": a& = a& + 80
        Mid$(A$, a&, 80) = "(,>LSv153ojf,p3k6N3./l*?J8;1Dk_N{'^e;h,v[2bFW?BAA;J9,1B_g<09|vOsexS*VPa?.EM[4pp-": a& = a& + 80
        Mid$(A$, a&, 80) = "|]MoF=YNyEZ6uRgN9)5Kfw\pGt_G52IK*'B)ExYn(1z:MBvAtnJ3,Y*7?jfa}6d8Jc=b>j9'25te(;_C": a& = a& + 80
        Mid$(A$, a&, 80) = "N7^JK5;bD(R0/R]JLP4{J-Z4IP5oC(lpu;.A_jFpP9<W29bG2-.bYsc/^6J5IUp/P\*<gJCacYvuTgWp": a& = a& + 80
        Mid$(A$, a&, 80) = "MW,c=6BhXeX7>fG5d{.:;e5UttxKl<H4|pr{:;)3_^FV_>i{]hwqEc{cgT'PsqOpLoL,s8QH^/h?]S7K": a& = a& + 80
        Mid$(A$, a&, 80) = "2J9hy6,t1'E^*Fq/N(lF{-+I,uBM?\IEa0JR:/G9o:{<p-HYyDJ1LEYxOETY>J'u7uOUo_Vla,O7X0AQ": a& = a& + 80
        Mid$(A$, a&, 80) = "NXGYx.-.H]3[}v]ePLG41/Olrj?F*67[kkrz/X;{T2RIn90lJXWW:xH4b+^dd0]^t;S}OKC4wFII(u[>": a& = a& + 80
        Mid$(A$, a&, 80) = "ze2Ky4?Z0y*QK}s]P+.dA48BTOqnXDf-g^C\P=ri3(Rg6S4M^'|/IMp{(aLJ=,MnrgRoQf*Vh0n2QE1)": a& = a& + 80
        Mid$(A$, a&, 80) = ";VZ^t<a<ISrtZC[uggGBI,.{bU1as5m:h6;q>,m4CP=*z2?U0NDDgfVOGc1Kg8ner,Eu5e7*8kcMK['X": a& = a& + 80
        Mid$(A$, a&, 80) = "pOSwDL9(:-H]53}Fh:QB},=vC(:vn|I^)1\Rf/PDTYYak<.=J2SoA5<oiXtc/;YMX(q)m7elxopOnXXt": a& = a& + 80
        Mid$(A$, a&, 80) = "eJ<*c30E,SJ:i,(cd+rtB*ZFVWx?vXz_{[C?1u(s>'Ou2{BjZ3]m<ZaY]X*ZUoLFs90EeG6JQt?q<[c9": a& = a& + 80
        Mid$(A$, a&, 80) = "Z-IIFRY=9}Y6tTbLOy4re5gpF<W,LreW\Hq4=_)NN<[x.EF{SO['rbitTc<)E\9sC-7:e{xhM,o\[TWo": a& = a& + 80
        Mid$(A$, a&, 80) = "rqPb>/z(eNZV+oq+=VnZ<gF.vF?=85gKaTG<?Mofy2E?8GX1kDYAb1<1]2sI^'e/k:1s^YG.LbQuVrg8": a& = a& + 80
        Mid$(A$, a&, 80) = "?0R8E_9kT:Bk'_Pu>?2<jYvC.D{7z32mYC}N\*UaD<9*FTh>m^up_2Lpc63[]M|DB(-85|1\M{gh:=j;": a& = a& + 80
        Mid$(A$, a&, 80) = "pTM;X>z,yHp,)lI<CrfSoKe37/d;1Gk+xz+Us{nK7PN//Pi]f?VZnA=F\;v[s7mUBv,)H'uc}R9,p{-w": a& = a& + 80
        Mid$(A$, a&, 80) = "ze0'-]KL+dA1'<,\9T/aoQb4V|qyKRkdkkSzlR\wn;Xwm<u}^|pY0HiVt=|QT?ZJnl4pb:M*bTex,Ux3": a& = a& + 80
        Mid$(A$, a&, 80) = "ah-vm4k-sVT.j[Xj>BCwM'f|p/3:rwwdVUBvDbjheTzsmkpHr.5FZyOJa9|ih<U3zdGxZ'r]pvasUXc\": a& = a& + 80
        Mid$(A$, a&, 80) = "LOuXlb{>B?.nRVa2nR;kg9d7hzl}KoXkSA5Yqq>:Sznrn^4bY1i/<+{f^=DO.^/tmQJ?2rff?<7rm7Y-": a& = a& + 80
        Mid$(A$, a&, 80) = ">e)(,dkh0VBEU{jr?|gE=_bhl<tVBEvtYB.Cwwr5p?,<vlMZ;utW-zxRH=,{/b<3Tvd(J+(oA1JyA9mp": a& = a& + 80
        Mid$(A$, a&, 80) = "]M3'b2^Z(WT7Yz9-jMZ<xk.,YEOl:4mQ_uv46UTV9E,2cq=INAyrP>aI8Qd<yRUrDL+(>:vHjbWxB1/{": a& = a& + 80
        Mid$(A$, a&, 80) = "4uiGV;hZ\.zibWohuz0Bi8S>F_UuBsTbA)D,Qu|=SF:Di=q?*+:rUaf4M_hQwYHil<BM|rP)P,S:2mi\": a& = a& + 80
        Mid$(A$, a&, 80) = ";Y{:Tb8qeKLCoHA9_+BkLNJC+GF9xJ2VJl;]R+IR12QMrL[\0fzhnKErf<APAjJ)0R.2l1nkzrwi(CKf": a& = a& + 80
        Mid$(A$, a&, 80) = "/0i3vohIkq{<m'2rnry5X]**H,D\FSV;I._7vcuERjPoM/8i9xz>\QLEYlh4t[,z8I]jDaX<D\,]11G5": a& = a& + 80
        Mid$(A$, a&, 80) = "*41=ulvO9OVQV?HqdHQPC]=qX-k9a6E<ZrQHSF-G+8dyYY4>kdHFLkoHZs<qn^|W{'JD+>v(e9ON^a3n": a& = a& + 80
        Mid$(A$, a&, 80) = "'fb,2RcGfAETtS(6I8_cd+Ek/U:|nronluV[bkUU-_9*zXtb=*wrJ^Ntcx^w,hf1{_/ZN7:2,1{(3E0u": a& = a& + 80
        Mid$(A$, a&, 80) = "\WR(M4(>{xC3OhzomJBA=DkeI-=j,o4J?LO^,P>N_OF3iQ<Od8JxKfY+==L5G49)|AjaGjnpB7tQiOmq": a& = a& + 80
        Mid$(A$, a&, 80) = "K32=UNNCqkQ9LXWuTrKX;k<bT(f]H=nB;7h>CG;Hckr+_dO(E}4p)4X(O]wKxsZbQ77ujXQX-{^xA*C^": a& = a& + 80
        Mid$(A$, a&, 80) = "UUB>IO1'yZON4ChS7=p<vv8Vg.V\9a}*:R4eT6gO/Xo<;k4AlsMWiA*k'akT8Ozk-J*.xmHBZ9KW{5)>": a& = a& + 80
        Mid$(A$, a&, 80) = "Nlc?62kd-(7>oHqI?L:r(0=h<DIsXF'?Hvf(zWBgCx\{Gn.H2(,BoV^MQaDOW.VdNYMVQ)}].>svPg31": a& = a& + 80
        Mid$(A$, a&, 80) = "/;0:{\p\kdw^A,'R+ns(XNW+0mlg6H6A]<X*D)-w\uTd6yWlcWj,K\7}dE2Pam./0t4KR}.b_)1JQ)g}": a& = a& + 80
        Mid$(A$, a&, 80) = "<oq)f^fG8-o)<7DGv8sB"
        o$ = Space$(7376): oc& = 1
        For i = 39 To 125
            If i <> 64 And i <> 96 Then c$ = c$ + Chr$(i)
        Next: Dim v As _Unsigned Long
        a = Val(Mid$(A$, 1, 1))
        For i& = 2 To Len(A$) Step 5: v = 0
            For j& = 0 To 4: p& = 85 ^ (4 - j&)
                c& = InStr(c$, Mid$(A$, i& + j&, 1)) - 1
            v = v + c& * p&: Next: Mid$(o$, oc&, 4) = MKL$(v)
            oc& = oc& + 4
        Next: btemp$ = Mid$(o$, 1, Len(o$) - a + 1)
        cp437$ = _Inflate$(btemp$, 14784): btemp$ = ""
        'if doing extraction...
        If size = -1 Then
            Dim CP: CP = FreeFile
            Open "cp437.otf" For Output As #CP
            Print #CP, cp437$;
            Close #CP
            cp437init = oldinit
            Exit Sub
        End If

        cp437& = _LoadFont(cp437$, size, "memory, monospace")
        _Font cp437&
        cp437init = 1
        Exit Sub
    End If

    'unload previous font/size, if loaded
    If cp437& > 0 Then
        _Font 16 'have to do this first...
        _FreeFont cp437&
    End If

    'load the font
    cp437& = _LoadFont(cp437$, size, "memory, monospace")
    If cp437& > 0 Then _Font cp437&

End Sub

Find my programs here in Dav's QB64 Corner
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  BASFONT - Turns a FONT into BAS code SUB for using in your programs. Dav 9 2,890 09-04-2023, 12:13 AM
Last Post: grymmjack

Forum Jump:


Users browsing this thread: 1 Guest(s)