Jump to content

Lee Stewart

+AtariAge Subscriber
  • Content Count

  • Joined

  • Last visited

Community Reputation

1,765 Excellent

About Lee Stewart

  • Rank
    River Patroller

Profile Information

  • Gender
  • Location
    Silver Run, Maryland

Recent Profile Visitors

17,252 profile views
  1. Other than that CLEAR puts the cursor at the beginning of the last screen line and that PAGE does nothing with the cursor, I do not see anything untoward yet. ...lee
  2. I will need to peruse your DIRSPRIT code before I can attempt to divine what might be the problem, but I am curious about the need for >SCHAR here. In fbForth, only the LSB of the stack value is used by single-byte write words like C! and VSBW , so a word like >SCHAR would be unnecessary. ...lee
  3. Not sure about other mouse manufacturers, but Logitech, in particular, goes out of its way to prevent that. However, they do make at least one mouse, the “M720 TRIATHLON Multi-device wireless mouse” specifically for that purpose. It has a thumb button on the mouse to switch among three computers. ...lee
  4. CALL CHAR() works just fine in TI Basic. Perhaps you intended a different XB statement. ...lee
  5. I presume you are using the Editor/Assembler cartridge. The source file is the file with the source code. If this is the first instance, it will be the name for saving the source code you type into the editor. The object code is the name of the file where you want the Assembler’s output saved. You should use all capital letters for file and device names. In Classic99, you can save Windows names such as file.obj or file.txt without regard to case or name length, but it is still a good idea to use all uppercase and less than or equal to 10 characters for the filename portion if you intend to use it on real iron, e.g., DSK1.XYZ4567890. And, of course, what @hhos said. ...lee
  6. EQU does not create data you can change in your program. It is an assembler directive that creates a constant known only at assembly time. It just makes it easier to read your program. ...lee
  7. Re >83C6: Unless you never plan to use the console ROM’s KSCAN, I would not ever set the byte at >83C6. That is for KSCAN to keep track of the “default” keyboard. It only gets changed when KSCAN detects a 3, 4 or 5 in the byte at >8374. When that happens, KSCAN effectively subtracts 3 from it, stores that value at >83C6 for future keyboard restoration to this new default and zeroes >8374. The next time KSCAN is run and detects 0 at >8374, it checks >83C6 to set the default keyboard to 3 (standard TI-99/4 keyboard scan), 4 (Pascal keyboard scan) or 5 (Basic keyboard scan). Re reading word at >8374 to read new character into LSB in one operation: The status byte’s COND bit is set for keyboards 1 (left half) and 2 (right half) when a key is struck, just as it is for keyboards 3, 4 and 5. But for keyboards 1 and 2, you will have a value greater than >FF for your new character value you store in TOS, viz., >01xx or >02xx, not >00xx as you expect because the byte at >8374 does not get zeroed. Your ruse only works for full keyboard scans (0 [default], 3, 4 and 5). ...lee
  8. Regarding your KSCAN routine at MENUK, it is best to test only the relevant bit(s) of STATUS. The following will do that: MENUK BLWP @KSCAN MOVB @STATUS,R0 COC @SPACEB,R0 ...presuming SPACEB contains >2000 JNE MENUK ...since INZO is the next instruction, you need only one jump instruction INZO ...lee
  9. Not that it matters here, but I do not think this will work for >8374 set to keyboard = 1 or 2 because >8374 is only reset to 0 by the console ROM’s keyboard scanner following setting >8374 to keyboard = 3, 4, or 5 and, of course, untouched if set to keyboard = 0 (default keyboard indicated at >83C6). ...lee
  10. Maybe stating the obvious, but the top large chip is an 8-channel analog-to-digital converter and the bottom large chip is a real-time clock. ...lee
  11. Lee Stewart

    Lee Stewart

  12. The ultimate conceit! 😇 ...lee
  13. @mizapf, I get 151 250 244 224 ...lee
  14. I am not sure what you mean by “on an address count”, the only directly addressable CRAM (CPU RAM) in cartridge space is >6000 – >7FFF. I would think you would need some kind of latching mechanism, as is used with cartridge ROMS, to manage software bank switching. I know that @Ksarul et al. have discussed this topic somewhere on this forum, where 74LS377/8/9 latch chips could be used to latch the proper 8 KiB block of cartridge RAM by writing to trigger addresses, >6000, >6002, etc. [And what @FarmerPotato said. 🙂] ...lee
  15. There will be better answers soon, but the switches change which 8 KiB block of the 32 KiB SRAM answers to >6000 – >7FFF addresses, changing none of the (essentially) swapped-out blocks of SRAM. ...lee
  • Create New...