+arcadeshopper Posted January 5, 2020 Share Posted January 5, 2020 Hmmm! I wonder if I could load it into my HSGPL card? Does it support not inverted roms of that size? Sent from my LM-G820 using Tapatalk 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 12, 2020 Author Share Posted January 12, 2020 (edited) Still wrestling with adding The Missing Link, but making good progress. Meanwhile, here is a teaser preview showing the 30 fonts. Edited January 12, 2020 by senior_falcon 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted January 12, 2020 Share Posted January 12, 2020 21 minutes ago, senior_falcon said: Still wrestling with adding The Missing Link, but making good progress. Meanwhile, here is a teaser preview showing the 30 fonts. Very very nice. Are the fonts loading here in real time? Are they binary files or source code? Are the files available to the public... Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 12, 2020 Author Share Posted January 12, 2020 3 hours ago, TheBF said: Very very nice. Are the fonts loading here in real time? Are they binary files or source code? Are the files available to the public... CALL FONT(N) uses XMLLNK to move the font from cartridge rom into VDP. I set up a loop and found that it takes about .04 seconds to load a font, and this doesn't take into account the overhead of the loop. So essentially it is instantaneous, at least by XB standards. At some point, hopefully soon, this will be released as a cartridge. Right now it is a work in progress. 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted January 12, 2020 Share Posted January 12, 2020 4 hours ago, senior_falcon said: CALL FONT(N) uses XMLLNK to move the font from cartridge rom into VDP. I set up a loop and found that it takes about .04 seconds to load a font, and this doesn't take into account the overhead of the loop. So essentially it is instantaneous, at least by XB standards. At some point, hopefully soon, this will be released as a cartridge. Right now it is a work in progress. OK thanks That is similar to my results, but I am not using XMLLNK. I used a DSR call to the LOAD operation. I have not actually timed it but the results appear to be instantaneous from the Forth command line as well. Those are very nice looking fonts. I am going to download the missing link zip file and look at it. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 13, 2020 Author Share Posted January 13, 2020 (edited) If you are interested, I can send the binaries for the three 8K pages that contain the fonts. You would have to remove the first >200 bytes, then each file has 10 fonts using >300 bytes per font. The cursor is in the definition for ascii 127. Sounds like you are reading fron disk and putting the fonts directly into VDP ram. I would really like to see some different fonts in there that have true lower case letters. Also, most of these use the standard patterns for ASCII 32 to 47 Edited January 13, 2020 by senior_falcon Quote Link to comment Share on other sites More sharing options...
LASooner Posted January 13, 2020 Share Posted January 13, 2020 How does CALL FONT work when it's compiled? Or can it compile? Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 14, 2020 Author Share Posted January 14, 2020 7 hours ago, LASooner said: How does CALL FONT work when it's compiled? Or can it compile? In theory it could be added to the compiler, but only if you had the XB 2.8 G.E.M. cartridge. (which is not yet complete.) There are a bunch of additional CALLs in XB2.7 that would be nice to add to the compiler, but since there is no place to put them this will almost certainly not happen. 2 Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted January 14, 2020 Share Posted January 14, 2020 1 hour ago, senior_falcon said: In theory it could be added to the compiler, but only if you had the XB 2.8 G.E.M. cartridge. (which is not yet complete.) There are a bunch of additional CALLs in XB2.7 that would be nice to add to the compiler, but since there is no place to put them this will almost certainly not happen. Would it be possible to make these calls run from cartridge space and add multiple banks? Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 14, 2020 Author Share Posted January 14, 2020 7 hours ago, retroclouds said: Would it be possible to make these calls run from cartridge space and add multiple banks? Yes, but then the ability to run the compiled program would be dependent on having that particular cartridge in the slot. Quote Link to comment Share on other sites More sharing options...
+TheBF Posted January 14, 2020 Share Posted January 14, 2020 (edited) 22 hours ago, senior_falcon said: If you are interested, I can send the binaries for the three 8K pages that contain the fonts. You would have to remove the first >200 bytes, then each file has 10 fonts using >300 bytes per font. The cursor is in the definition for ascii 127. Sounds like you are reading fron disk and putting the fonts directly into VDP ram. I would really like to see some different fonts in there that have true lower case letters. Also, most of these use the standard patterns for ASCII 32 to 47 Yes please. I would be interested in the files. I have made some tools to help me do that. It's a little convoluted however. Use GIF fonts, put them in Magellan export them out as Assembly Language files remove the unneeded source code, keep the data statements Edit the data statements to be Forth compilable Compile the Forth font file with Forth Save the font as a binary to TI-99 disk Not easy but it got me some new fonts. The Font source code looks like this so it's a fair bit of editing. If I was good at this I would write a program to do the reformatting. The hidden content is a Font that I massaged a little for my own use. \ SANS Serif SOURCE code. For 32col and 40 col modes NEEDS CALLCHAR FROM DSK1.CALLCHAR NEEDS SAVE-FONT FROM DSK1.LOADSAVE CR .( Compiling Font data) DECIMAL 30 S" 007C7C7C7C7C7C00" CALLCHAR 30 EMIT 31 S" 00000000007C7C00" CALLCHAR 31 EMIT 32 S" 0000000000000000" CALLCHAR .( ) 33 S" 1010101000001000" CALLCHAR .( !) 34 S" 2828280000000000" CALLCHAR .( ") 35 S" 28287C287C282800" CALLCHAR .( #) 36 S" 103C503814781000" CALLCHAR .( $) 37 S" 64640810204C4C00" CALLCHAR .( %) 38 S" 2050502054483400" CALLCHAR .( &) 39 S" 3010200000000000" CALLCHAR .( ') 40 S" 0810202020100800" CALLCHAR ." (" 41 S" 2010080808102000" CALLCHAR ." )" 42 S" 000028107C102800" CALLCHAR .( *) 43 S" 0010107C10100000" CALLCHAR .( +) 44 S" 0000003030102000" CALLCHAR .( ,) 45 S" 0000007C00000000" CALLCHAR .( —) 46 S" 0000000030300000" CALLCHAR .( .) 47 S" 0002040810204000" CALLCHAR .( /) 48 S" 38444C5464443800" CALLCHAR .( 0) 49 S" 1030101010103800" CALLCHAR .( 1) 50 S" 3844041820407C00" CALLCHAR .( 2) 51 S" 7C08100804443800" CALLCHAR .( 3) 52 S" 081828487C080800" CALLCHAR .( 4) 53 S" 7C40780404443800" CALLCHAR .( 5) 54 S" 3840407844443800" CALLCHAR .( 6) 55 S" 7C04081020202000" CALLCHAR .( 7) 56 S" 3844443844443800" CALLCHAR .( 8) 57 S" 3844443C04043800" CALLCHAR .( 9) 58 S" 0000303000303000" CALLCHAR .( :) 59 S" 0030300030301020" CALLCHAR .( ;) 60 S" 0810204020100800" CALLCHAR .( <) 61 S" 00007C007C000000" CALLCHAR .( =) 62 S" 2010080408102000" CALLCHAR .( >) 63 S" 3844040810001000" CALLCHAR .( ?) 64 S" 38445C545C403C00" CALLCHAR .( @) 65 S" 3844447C44444400" CALLCHAR .( A) 66 S" 7844447844447800" CALLCHAR .( B) 67 S" 3844404040443800" CALLCHAR .( C) 68 S" 7844444444447800" CALLCHAR .( D) 69 S" 7C40407840407C00" CALLCHAR .( E) 70 S" 7C40407840404000" CALLCHAR .( F) 71 S" 3844405C44443800" CALLCHAR .( G) 72 S" 4444447C44444400" CALLCHAR .( H) 73 S" 3810101010103800" CALLCHAR .( I) 74 S" 3C08080848483000" CALLCHAR .( J) 75 S" 4448506050484400" CALLCHAR .( K) 76 S" 4040404040407C00" CALLCHAR .( L) 77 S" 446C545444444400" CALLCHAR .( M) 78 S" 444464544C444400" CALLCHAR .( N) 79 S" 3844444444443800" CALLCHAR .( 0) 80 S" 7844447840404000" CALLCHAR .( P) 81 S" 3844444454483400" CALLCHAR .( Q) 82 S" 7844447850484400" CALLCHAR .( R) 83 S" 3844403804443800" CALLCHAR .( S) 84 S" 7C10101010101000" CALLCHAR .( T) 85 S" 4444444444443800" CALLCHAR .( U) 86 S" 4444444428281000" CALLCHAR .( V) 87 S" 4444445454542800" CALLCHAR .( W) 88 S" 4444281028444400" CALLCHAR .( X) 89 S" 4444281010101000" CALLCHAR .( Y) 90 S" 7C04081020407C00" CALLCHAR .( Z) 91 S" 3820202020203800" CALLCHAR .( [) 92 S" 0040201008040200" CALLCHAR .( .) 93 S" 3808080808083800" CALLCHAR .( ]) 94 S" 1028440000000000" CALLCHAR .( ^) 95 S" 0000000000007C00" CALLCHAR .( _) 96 S" 1810080000000000" CALLCHAR .( ') 97 S" 0000300838483C00" CALLCHAR .( a) 98 S" 4040704848487000" CALLCHAR .( b) 99 S" 0000384040403800" CALLCHAR .( c) 100 S" 0808384848483800" CALLCHAR .( d) 101 S" 000038447C403C00" CALLCHAR .( e) 102 S" 0010282070202000" CALLCHAR .( f) 103 S" 00003844443C0438" CALLCHAR .( g) 104 S" 4040704848484800" CALLCHAR .( h) 105 S" 0010001010101000" CALLCHAR .( i) 106 S" 0008000808084830" CALLCHAR .( j) 107 S" 4040485060504800" CALLCHAR .( k) 108 S" 0010101010101000" CALLCHAR .( l) 109 S" 0000685454545400" CALLCHAR .( m) 110 S" 0000704848484800" CALLCHAR .( n) 111 S" 0000384444443800" CALLCHAR .( o) 112 S" 0000704848704040" CALLCHAR .( p) 113 S" 0000384848380808" CALLCHAR .( q) 114 S" 0000586040404000" CALLCHAR .( r) 115 S" 0000384038047800" CALLCHAR .( s) 116 S" 2020782020201800" CALLCHAR .( t) 117 S" 0000484848483400" CALLCHAR .( u) 118 S" 0000444428101000" CALLCHAR .( v) 119 S" 0000444454542800" CALLCHAR .( w) 120 S" 0000442810284400" CALLCHAR .( x) 121 S" 00002424241C0438" CALLCHAR .( y) 122 S" 00007C0810207C00" CALLCHAR .( z) 123 S" 0C10102010100C00" CALLCHAR .( {) 124 S" 1010101010101010" CALLCHAR .( |) 125 S" 6010100810106000" CALLCHAR .( }) 126 S" 2454480000000000" CALLCHAR .( ~) CR .( Saving binary font file...) S" DSK3.BFFONT" SAVE-FONT Edited January 14, 2020 by TheBF Quote Link to comment Share on other sites More sharing options...
+9640News Posted January 14, 2020 Share Posted January 14, 2020 On 1/12/2020 at 1:11 PM, senior_falcon said: CALL FONT(N) uses XMLLNK to move the font from cartridge rom into VDP. I set up a loop and found that it takes about .04 seconds to load a font, and this doesn't take into account the overhead of the loop. So essentially it is instantaneous, at least by XB standards. At some point, hopefully soon, this will be released as a cartridge. Right now it is a work in progress. A trick Ron Walters taught me back in the 90's for fast multiple VDP writes or data MOVes, was to have multiple MOVB *R1+,@VDPPORT instructions in a row. Then the DECrementer instruction have fewer loops. I had a few tricks where I had 8, 16, or 32 such instructions in a row so that I spent more time moving cycles rather than spending extra time in DEC/JNE code. At 0.04 seconds, it sounds pretty fast already. I just brought it up as it was a neat trick when you have the extra memory to use. I'm not familiar with XMLLNK to know how it is coded. Beery Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 14, 2020 Author Share Posted January 14, 2020 Tests have shown that it takes about .02 seconds to simply execute a CALL , so the actual code that moves the font into VDP takes an additional .02 seconds. If the transfer happened instantly it would still take about .02 seconds to do the CALL. The XML code that I wrote for this is a standard assembly language loop. XMLLNK uses jump tables to know where to go. In this case the jump table starts at >6010, and there is one entry which points to >6012, where my code is. XML >70 starts up my assembly routine. The jump tables have to be in certain locations and it looks like there can be 16 entries per table. From Intern: XMLLNK table 1st Nybble 0D1A Floating point routines (>0X) 12A0 „XTAB“ (>1X) 2000 Low memory expansion (>2X) 3FC0 Basic enhancement (>3X) 3FE0 Basic enhancement (>4X) 4010 Probably for GPL extension (>5X) 4030 Probably for GPL extension (>6X) 6010 ROM modul (>7X) 6030 ROM modul (>8X) 7000 ROM modul (>9X) 8000 Future expansion (>AX) A000 (>BX) B000 (>CX) C000 (>DX) D000 (>EX) 8300 Scratch PAD RAM(>FX) 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 15, 2020 Author Share Posted January 15, 2020 12 hours ago, TheBF said: Yes please. I would be interested in the files. Reveal hidden contents \ SANS Serif SOURCE code. For 32col and 40 col modes NEEDS CALLCHAR FROM DSK1.CALLCHAR NEEDS SAVE-FONT FROM DSK1.LOADSAVE CR .( Compiling Font data) DECIMAL 30 S" 007C7C7C7C7C7C00" CALLCHAR 30 EMIT 31 S" 00000000007C7C00" CALLCHAR 31 EMIT 32 S" 0000000000000000" CALLCHAR .( ) 33 S" 1010101000001000" CALLCHAR .( !) 34 S" 2828280000000000" CALLCHAR .( ") 35 S" 28287C287C282800" CALLCHAR .( #) 36 S" 103C503814781000" CALLCHAR .( $) 37 S" 64640810204C4C00" CALLCHAR .( %) 38 S" 2050502054483400" CALLCHAR .( &) 39 S" 3010200000000000" CALLCHAR .( ') 40 S" 0810202020100800" CALLCHAR ." (" 41 S" 2010080808102000" CALLCHAR ." )" 42 S" 000028107C102800" CALLCHAR .( *) 43 S" 0010107C10100000" CALLCHAR .( +) 44 S" 0000003030102000" CALLCHAR .( ,) 45 S" 0000007C00000000" CALLCHAR .( —) 46 S" 0000000030300000" CALLCHAR .( .) 47 S" 0002040810204000" CALLCHAR .( /) 48 S" 38444C5464443800" CALLCHAR .( 0) 49 S" 1030101010103800" CALLCHAR .( 1) 50 S" 3844041820407C00" CALLCHAR .( 2) 51 S" 7C08100804443800" CALLCHAR .( 3) 52 S" 081828487C080800" CALLCHAR .( 4) 53 S" 7C40780404443800" CALLCHAR .( 5) 54 S" 3840407844443800" CALLCHAR .( 6) 55 S" 7C04081020202000" CALLCHAR .( 7) 56 S" 3844443844443800" CALLCHAR .( 8) 57 S" 3844443C04043800" CALLCHAR .( 9) 58 S" 0000303000303000" CALLCHAR .( :) 59 S" 0030300030301020" CALLCHAR .( ;) 60 S" 0810204020100800" CALLCHAR .( <) 61 S" 00007C007C000000" CALLCHAR .( =) 62 S" 2010080408102000" CALLCHAR .( >) 63 S" 3844040810001000" CALLCHAR .( ?) 64 S" 38445C545C403C00" CALLCHAR .( @) 65 S" 3844447C44444400" CALLCHAR .( A) 66 S" 7844447844447800" CALLCHAR .( B) 67 S" 3844404040443800" CALLCHAR .( C) 68 S" 7844444444447800" CALLCHAR .( D) 69 S" 7C40407840407C00" CALLCHAR .( E) 70 S" 7C40407840404000" CALLCHAR .( F) 71 S" 3844405C44443800" CALLCHAR .( G) 72 S" 4444447C44444400" CALLCHAR .( H) 73 S" 3810101010103800" CALLCHAR .( I) 74 S" 3C08080848483000" CALLCHAR .( J) 75 S" 4448506050484400" CALLCHAR .( K) 76 S" 4040404040407C00" CALLCHAR .( L) 77 S" 446C545444444400" CALLCHAR .( M) 78 S" 444464544C444400" CALLCHAR .( N) 79 S" 3844444444443800" CALLCHAR .( 0) 80 S" 7844447840404000" CALLCHAR .( P) 81 S" 3844444454483400" CALLCHAR .( Q) 82 S" 7844447850484400" CALLCHAR .( R) 83 S" 3844403804443800" CALLCHAR .( S) 84 S" 7C10101010101000" CALLCHAR .( T) 85 S" 4444444444443800" CALLCHAR .( U) 86 S" 4444444428281000" CALLCHAR .( V) 87 S" 4444445454542800" CALLCHAR .( W) 88 S" 4444281028444400" CALLCHAR .( X) 89 S" 4444281010101000" CALLCHAR .( Y) 90 S" 7C04081020407C00" CALLCHAR .( Z) 91 S" 3820202020203800" CALLCHAR .( [) 92 S" 0040201008040200" CALLCHAR .( .) 93 S" 3808080808083800" CALLCHAR .( ]) 94 S" 1028440000000000" CALLCHAR .( ^) 95 S" 0000000000007C00" CALLCHAR .( _) 96 S" 1810080000000000" CALLCHAR .( ') 97 S" 0000300838483C00" CALLCHAR .( a) 98 S" 4040704848487000" CALLCHAR .( b) 99 S" 0000384040403800" CALLCHAR .( c) 100 S" 0808384848483800" CALLCHAR .( d) 101 S" 000038447C403C00" CALLCHAR .( e) 102 S" 0010282070202000" CALLCHAR .( f) 103 S" 00003844443C0438" CALLCHAR .( g) 104 S" 4040704848484800" CALLCHAR .( h) 105 S" 0010001010101000" CALLCHAR .( i) 106 S" 0008000808084830" CALLCHAR .( j) 107 S" 4040485060504800" CALLCHAR .( k) 108 S" 0010101010101000" CALLCHAR .( l) 109 S" 0000685454545400" CALLCHAR .( m) 110 S" 0000704848484800" CALLCHAR .( n) 111 S" 0000384444443800" CALLCHAR .( o) 112 S" 0000704848704040" CALLCHAR .( p) 113 S" 0000384848380808" CALLCHAR .( q) 114 S" 0000586040404000" CALLCHAR .( r) 115 S" 0000384038047800" CALLCHAR .( s) 116 S" 2020782020201800" CALLCHAR .( t) 117 S" 0000484848483400" CALLCHAR .( u) 118 S" 0000444428101000" CALLCHAR .( v) 119 S" 0000444454542800" CALLCHAR .( w) 120 S" 0000442810284400" CALLCHAR .( x) 121 S" 00002424241C0438" CALLCHAR .( y) 122 S" 00007C0810207C00" CALLCHAR .( z) 123 S" 0C10102010100C00" CALLCHAR .( {) 124 S" 1010101010101010" CALLCHAR .( |) 125 S" 6010100810106000" CALLCHAR .( }) 126 S" 2454480000000000" CALLCHAR .( ~) CR .( Saving binary font file...) S" DSK3.BFFONT" SAVE-FONT Here you go. These are the 3 8K banks that contain the 30 fonts. The fonts start at >200 and each one takes >300 bytes. The cursor is in the final position, ascii 127. fontsx30.zip 3 1 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 15, 2020 Share Posted January 15, 2020 288 fonts are available at If you want any or all in any specific format, then that's probably also possible. 2 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted January 15, 2020 Share Posted January 15, 2020 (edited) 3 hours ago, sometimes99er said: 288 fonts are available at If you want any or all in any specific format, then that's probably also possible. Yes indeed. Thank you. These are the only other source that I was aware of. It's a gold mine! Edited January 15, 2020 by TheBF 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 15, 2020 Author Share Posted January 15, 2020 Thanks! I will go through these and probably use some of them. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 15, 2020 Author Share Posted January 15, 2020 8 hours ago, sometimes99er said: If you want any or all in any specific format, then that's probably also possible. There are some nice ones in there. I especially like the full fonts with true lower case. How do I convert from GIF to something the TI can understand? Ideal would be to go directly to 768 bytes of character patterns. Or CALL CHARs would be OK too. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted January 16, 2020 Share Posted January 16, 2020 5 hours ago, senior_falcon said: There are some nice ones in there. I especially like the full fonts with true lower case. How do I convert from GIF to something the TI can understand? Ideal would be to go directly to 768 bytes of character patterns. Or CALL CHARs would be OK too. I am trying to get similar help in the Magellan thread. The binary image in the font files that TI Writer uses (CHARA1, etc.) start at ASCII 0, six bytes in from the beginning (probably from E/A SAVE utility) and are either 1024 bytes for ASCII 0 – 127 or 2048 bytes for ASCII 0 – 255. I suppose, though. you have no choice but to start at ASCII 32 in the Basic environments. If we can get an import/export solution in Magellan for such binary images for the Pattern Descriptor Table, it would be pretty simple to manage from that point on. ...lee Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 16, 2020 Share Posted January 16, 2020 10 hours ago, senior_falcon said: There are some nice ones in there. I especially like the full fonts with true lower case. How do I convert from GIF to something the TI can understand? Ideal would be to go directly to 768 bytes of character patterns. Or CALL CHARs would be OK too. I guess that means characters >20 thru to >7F as raw data in binary files ? Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 16, 2020 Author Share Posted January 16, 2020 6 hours ago, sometimes99er said: I guess that means characters >20 thru to >7F as raw data in binary files ? That would be perfect! Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 16, 2020 Share Posted January 16, 2020 (edited) 18 hours ago, senior_falcon said: That would be perfect! Try this out. fonts.zip bin.4.senior.falcon.zip Edited January 17, 2020 by sometimes99er Separated requested format from original zip. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 16, 2020 Author Share Posted January 16, 2020 30 minutes ago, sometimes99er said: Try this out. fonts.zip My question is still the same. How do I go from GIF format to uncompressed binary or CALL CHAR statements? Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted January 16, 2020 Share Posted January 16, 2020 4 minutes ago, senior_falcon said: My question is still the same. How do I go from GIF format to uncompressed binary or CALL CHAR statements? I have added files to the zip (maybe you need to clear a download cache). It now also contains the specified binary files (each with 768 bytes). So font no. 0123 now has 2 files, one GIF and one BIN. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted January 16, 2020 Author Share Posted January 16, 2020 All I see is GIF files. Unfortunately, I overwrote the original .zip file so I cannot compare the length of the new zipped file with the old one.But I can do that when I get home tonight Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.