hhos Posted April 13 Share Posted April 13 On 4/7/2024 at 1:37 PM, apersson850 said: There's not much to learn by testing status bits after doing a CLR, regardless of whether it is possible or not. You already know that the result it pretty close to zero. 😄 On 4/7/2024 at 1:37 PM, apersson850 said: A method you haven't mentioned yet is taking advantage of the peculiar design of the TMS 9900. If you want to access R7 byte by byte you can simply do MOVB R7,somewhere MOVB @MYREGS+15,somewhere+1 In the case you don't know what registers you are running with you can do this MOVB R7,somewhere STWP R4 MOVB @15(R4),somewhere+1 The result at somewhere is the same as after MOVB R7,somewhere SWPB R7 MOVB R7,somewhere+1 The first two have the possible advantage that the content of R7 is not disturbed. You can find more details on this subject in the first page of posts in this thread. Quote The symbolic address only adds 8 clocks and 1 memory access to the MOVB instruction. The SWPB itself is 10 clocks and 3 memory accesses x2 because you would have them back to back around the MOVB. Also, you save 4 bytes by not having SWPB, but the symbolic address takes 2 bytes, but you are still ahead 2 bytes of memory, 14 clock cycles, and 5 memory accesses. Matthew HH 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 19 Share Posted April 19 On 4/7/2024 at 2:37 PM, apersson850 said: There's not much to learn by testing status bits after doing a CLR, regardless of whether it is possible or not. You already know that the result it pretty close to zero. In disassembly of some TI code , I found this: BL @SUBR CLR R7 JEQ L2 ... I was confused, but I looked up CLR and saw it does not change the status register. Apparently R7 is used by SUBR, but this code wants R7 to be 0 before L2. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted April 19 Share Posted April 19 5 hours ago, FarmerPotato said: BL @SUBR CLR R7 JEQ L2 ... The subroutine could change the return address, and then the code could make sense. 😐 3 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted April 19 Share Posted April 19 It may make sense anyway, since the JEQ will test the last thing that happened in the subroutine. As stated before, CLR doesn't change any status bits since the result is obvious anyway. 2 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted April 19 Share Posted April 19 12 hours ago, FarmerPotato said: In disassembly of some TI code , I found this: BL @SUBR CLR R7 JEQ L2 ... I was confused, but I looked up CLR and saw it does not change the status register. Apparently R7 is used by SUBR, but this code wants R7 to be 0 before L2. Ya that was an insight that simplified my coding of Forth conditionals. ( = < > 0= etc.) Since CLR and SETO don't play with status you can compare a register, then clear it or set it to -1 as a default result. Then you can change the register based on the previous comparison instruction. It's almost like the 9900 designers knew how to write an instruction set. Something like: ( Apology in advance. I don't use normal Assemblers often) ZEROEQ CI R4,0 * 0= compare top of stack cache to zero CLR R4 JNE $1 SETO R4 $1 NEXT * return to Forth However even though it's only four instructions you can see why a native code compiler would be more efficient on 9900. In MACHFORTH or ASMForth this is only two instructions, compare to zero and the jump. 3 Quote Link to comment Share on other sites More sharing options...
+dhe Posted April 23 Share Posted April 23 DATA >004A — Load Lower-Case Character Set (TI-99/4A only) Who says programmers aren't wild and crazy guys with a sense of humor? 2 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted April 24 Share Posted April 24 2 hours ago, dhe said: DATA >004A — Load Lower-Case Character Set (TI-99/4A only) Who says programmers aren't wild and crazy guys with a sense of humor? How funny! I never noticed that before. Looking at the code it is obvious it was done on purpose. It falls right in the middle of some DATA bytes. 2 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted April 24 Share Posted April 24 Quote 0016 : BR GROM@>0393 Load standard character set 0018 : BR GROM@>039B Load small capital letters 004A : BR GROM@>03BF Load lower case set Also. The lower case set (004A) has 7 bytes allocated per character, but it could have done with only 6 bytes. I think the lower case set (004A) was designed to be true lower case, but at the last moment someone at TI wanted tiny capital letters (otherwise it was going to look too professional). Doh. 1 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 24 Share Posted April 24 2 hours ago, sometimes99er said: Also. The lower case set (004A) has 7 bytes allocated per character, but it could have done with only 6 bytes. I think the lower case set (004A) was designed to be true lower case, but at the last moment someone at TI wanted tiny capital letters (otherwise it was going to look too professional). Doh. That's possible, especially given in the /4 it IS only 6 bytes per character! 3 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted April 24 Share Posted April 24 2 hours ago, sometimes99er said: ...at the last moment someone at TI wanted tiny capital letters (otherwise it was going to look too professional). I assume you're joking. It's very easy to figure out where the idea with larger and smaller capital letters came from. 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 24 Share Posted April 24 Half the time, Texas Instruments engineers used upper case for everything. You can see this in some technical specs! 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted April 24 Share Posted April 24 Turns out there is a style of fonts called "Small Caps" https://www.fontsc.com/font/tag/small-caps I have a book about the interurban railroad running from Ithaca to Auburn that uses a small caps font. That is the only time I have other seen that, other than on the TI99/4a. Actually, it seems odd to have to learn the alphabet twice, once for upper case, and once for lower case. 1 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted April 24 Share Posted April 24 20 minutes ago, senior_falcon said: Turns out there is a style of fonts called "Small Caps" https://www.fontsc.com/font/tag/small-caps I have a book about the interurban railroad running from Ithaca to Auburn that uses a small caps font. That is the only time I have other seen that, other than on the TI99/4a. Actually, it seems odd to have to learn the alphabet twice, once for upper case, and once for lower case. Could be worse. Japanese students have four alphabets to learn. Hiragana, katakana, Kanji (sub-set Chinese characters) and "romanji". (our alphabet) I have read it can take up to twelve years of school for full fluency. 2 Quote Link to comment Share on other sites More sharing options...
Reciprocating Bill Posted April 24 Share Posted April 24 I know I'm in a minority (a minority of one?), but I like the TI's small caps 'lower case.' Reason being, to my eye genuine lowercase characters underscore the resolution limitations of the TI and aren't an improvement. 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted April 25 Share Posted April 25 In case anyone didn't get where they got the idea with small capital letters from: I've used a character set with true lower case letters, descenders included, for years, and it works fine. Much better than the original. It's only if a "g" happens to be right above an "A" or similar that they touch. Happens rarely enough for the advantages to be more important. 3 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted April 25 Share Posted April 25 The use of small caps for lowercase has been around for a long time. One of my favorite such fonts is Copperplate Gothic, which was developed in 1901. Small caps has many other uses than replacement of lowercase—see this interesting Wikipedia article on small caps. Small caps use apparently dates back to, at least, the 15th century. ...lee 2 1 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted April 25 Share Posted April 25 TI used the small caps in Parsec as the status line ("Alien craft advancing!"). I noticed it on my Geneve where I replaced the small caps with true lower case letters. 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted April 25 Share Posted April 25 Here's the font I use. 2 Quote Link to comment Share on other sites More sharing options...
SteveB Posted April 25 Share Posted April 25 I always liked the Atari XL font. It worked well on a TV with 40 chars per line 2 Quote Link to comment Share on other sites More sharing options...
+dhe Posted April 25 Share Posted April 25 While re-re-reading the E/A manual, I was noticing this section on the Debugger, descended from TIBUG, and came upon this paragraph. Causes the present VDP Read Data address to be displayed. The address can be altered by typing a new address and pressing ENTER. This procedure allows you to use the commands that access VDP to be used in the VDP library memory areas or any other VDP address space. The read and write addresses are >1000 apart. The default address is >8800. Note: At present, no alternate VDP memory spaces exist. I can see alternate read/write address writing to a different bank of 16K VDP memory. I don't see a path forward in getting the VDP to change to another bank. I also, don't know what a VDP Library Memory is. Can anyone fill out what TI was thinking about doing? 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 25 Share Posted April 25 15 hours ago, apersson850 said: In case anyone didn't get where they got the idea with small capital letters from: I've used a character set with true lower case letters, descenders included, for years, and it works fine. Much better than the original. It's only if a "g" happens to be right above an "A" or similar that they touch. Happens rarely enough for the advantages to be more important. Interesting theory, but I bet that the answer is the small caps in the 9918 manual. Whoever put that together and why. By the way, that logo is the 90s version. (The red TIBUG and black letters gives it away.) Texas Instruments logos in 1966-1980 could have either all caps or small caps with very wide spacing. Sans-serif in some cases. The small caps rule after that. It's fun to look at how the serifs evolved. The kerning changes. While the T still overhangs the E, it used to be tighter. In the past there are ligatures like AS and STR. Notably, the S changed. 1 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted April 25 Share Posted April 25 (edited) 1 hour ago, dhe said: While re-re-reading the E/A manual, I was noticing this section on the Debugger, descended from TIBUG, and came upon this paragraph. Causes the present VDP Read Data address to be displayed. The address can be altered by typing a new address and pressing ENTER. This procedure allows you to use the commands that access VDP to be used in the VDP library memory areas or any other VDP address space. The read and write addresses are >1000 apart. The default address is >8800. Note: At present, no alternate VDP memory spaces exist. I can see alternate read/write address writing to a different bank of 16K VDP memory. I don't see a path forward in getting the VDP to change to another bank. I also, don't know what a VDP Library Memory is. Can anyone fill out what TI was thinking about doing? I always wanted to make a mod and try, but there was an idea once to have multiple vdp processors, the tms9918a can infact have the video out go into the video in. So you have two vdp chips each with their own 16k and when you use the transparent color on the master chip those pixels display the data from the secondary vdp processor. I will see if I can upload the datasheet design spec later on this weekend in a new thread for this application of multiple screens, useful to expand the depth and graphics like for multi layer sprites, but it was never done to my knowledge just drafted out on paper as a design idea. Edited April 25 by Gary from OPA 2 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted April 26 Share Posted April 26 7 hours ago, SteveB said: I always liked the Atari XL font. It worked well on a TV with 40 chars per line That is font 11 in XB 2.9 G.E.M. Font 3 is a similar bold font that I like better. The capital letters are 6 pixels wide, so unfortunately this would not work on a TI99 in 40 column text mode. 3 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted April 26 Share Posted April 26 (edited) 8 hours ago, FarmerPotato said: Interesting theory, but I bet that the answer is the small caps in the 9918 manual. Whoever put that together and why. I'm talking about the reason for why they used that font also in the TMS 9918A manual. The origin of it. And that's pretty clear. They didn't know any better since they already had it in their logotype. The logotype has changed, but seems to have been all caps all the time. Edited April 26 by apersson850 Quote Link to comment Share on other sites More sharing options...
Gary from OPA Posted April 26 Share Posted April 26 There was some old discussion about this font stuff before: Also the official reason why small caps exist at least in the typeface world is shown below in this screenshot: As for why TI uses small caps, I think it's mainly from their earlier days of being a calculator company before they got into computers, and small caps is used very often in displaying math formulas and looks better when screens were originally just one line led displays also. 1 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.