Jump to content

FarmerPotato

+AtariAge Subscriber
  • Content Count

    1,464
  • Joined

  • Last visited

Everything posted by FarmerPotato

  1. I have finally, again, wrestled WinCUPL into working for me. WinCUPL is a 1990s to Windows 2000 era tool that compiles CUPL logic into Atmel PLDs. It covers the GAL16V8 range often found in P box cards--there is one in Geneve 9640. Its output works with the TL866 programmer. The ATF22V10 is a PLD still in production, and is a superset of the GAL series. It has a whopping 10 bits of registered outputs, and 12 input-only pins. It fits the category of vintage part, and has just enough ability for the job. Pictured, are the WinSim test vectors, for my BIOS card bank-switch register. The test sets and clears 8 CRU bits, then writes >05 and reads that back again. The ATF22V10 chip is perfect as an 8-bit register. On a card, it can replace the 74LS259, 74LS151, 74LS138, and 1-2 other logic chips--the typical implementation of a CRU register with up to 8 bits. Inputs: Address bits, CRUOUT, SERENA*, WE*. Outputs: LED0, 7 bank bits, CRUEN*, CRUIN Here, it is doing the job of CRU address decoder. It detects a base of >2000 (aliased at >6000 because I needed to squeeze in just one more input.) So the CRU base is programmable by flashing the PLD. CRUEN* (flipped to positive logic inside the chip) outputs this card select, which is useful for switching on a tri-state bus driver (74HCT125) to bus line CRUIN. CRUIN reads back a bit from the register. Another way to set CRU base is with DIP switches and an 8-bit comparator LS688 (this is used on every PC ISA card.) The LS688 costs almost as much as the ATF22LV10C. One input, SERENA*, is already decoded to detect a CRU bus cycle, not a memory cycle, with address in the range >0000 to >7ffe. This is one of my bus signals, and potentially every card needs it. In the bank register, I use 3 ROM bits, 4 RAM bits, for 8 and 16 banks resp. The BIOS memory map is: 0000-3ffe ROM bank 0 (ROM here means Flash or EPROM) 4000-7ffe ROM bank 0-7 8000-bffe RAM bank 0 c000-fffe RAM bank 0-15 An HCT156 gates the bank bits to the upper memory chip address bits. It outputs either the ROM or RAM bank bits, or all 0s. A14 turns banking on or off, to keep bank 0 fixed in place (A14 is A1 on the TI-99/4a, but I count up from A0 LSB.) A15 selects ROM or RAM address outputs. It is convenient to route the upper address bits across ROM and RAM, so one HCT156 can do the on/off job for both. Also, this is a 16-bit bus, and A0 selects even/odd byte memory chip. Each ROM has the full image, so A0 is hard-wired 0 or 1. This cuts usable ROM in half, but there is also just one image to worry about (no splitting the code into odd/even image.) This way you can't mix up the chips in the wrong slot. So two 128kx8 ROM give 128K of usable ROM, and two 128kx8 static RAM give 256K of usable RAM. The BIOS ROM holds supervisor code: the interrupt handlers, boot code, MDOS/GPL launcher, MDOS XOP patches, other routines for OS bootstrapping, system calls and high-level memory allocation, zlib and riparian animals. Also 99000 macrocode. (Macrocode is entered by executing an "illegal instruction" ie user defined opcodes. For example, opcodes for 32-bit arithmetic or floating point. Macrocode is a separate address space, and a 99000 system might select a separate external ROM for it. But I chose to unify BIOS and Macrocode ROM into Bank 0 for convenience. RAM bank 0 can also contain macrocode.) BIOS ROM/RAM is turned off when Map Mode is enabled. In Map Mode, the full 32MB is paged in 4K chunks, similar to SAMS, except the LS612 is replaced. Map mode is turned off, and BIOS is turned on, by any interrupt (including RESET). Interrupt handlers in BIOS get first crack, and can forward the interrupt to an MDOS or GPL handler. With the PLD all sorted out, the BIOS card is off to the PCB house. Source: https://gitlab.com/FarmerPotato/geneve2020/-/tree/master/kicad/bios
  2. Seriously, check out the Hot Chips keynote https://www.anandtech.com/show/15990/hot-chips-2020-live-blog-intels-raja-koduri-keynote-200pm-pt
  3. You know what happened? TI beta-tested the game, and nobody could operate two of their joysticks at once.
  4. The issue I see, and I don't know how to fix it-- When posts are divided into subgroups, they are not as visible to regular visitors to the TI-99/4A forum. I would rarely think to click into "Business computers and hardware" yet when a thread on the 990 surfaces in TI-99/4A or Dev it is always interesting to me. And a great deal of the expertise to answer a question is probably lurking in TI-99/4A, not a subforum, on any given day. So on the one hand, you want Tomy Tutor threads to be top of their own forum so they are not buried. On the other hand, they become not as visible to the people entering the TI-99/4A forum every day. I think of how I browse... I always want to know about all the topics (in your list), and I read the threads, now or later, before they scroll off. If they were in a subforum I might be ignoring them. My preference would be for the largest forum, TI-99/4A and home computers, to be the parent forum, not a subforum. No "Lobby" parent forum. Then the subforums are carve-outs from the main traffic. They exist for the purpose of being able to quickly visit their threads, which grow more slowly.
  5. OK, it's -q to suppress warnings in the versions I have. Thanks!
  6. Hi @Asmusr, I tried assembling the version of Raycaster from github. It uses a xas99.py -w option, which wasn't recognized by the xdt99 I had, or the latest 3.00. Can you help me with -w?
  7. I downloaded the latest xdt99. In 9d9damashi, I replaced symbols with # and $. I had been using # as a shorthand for a numeric constant, and $ for the end of a block. I tried compiling the version of Raycaster on github, and it uses a "xas99.py -w". Any idea what -w is?
  8. I had just forgot the general purpose method. EA5 image loader: CALL TIPI("PI.MYDIR.DEMON") https://github.com/jedimatt42/tipi/wiki/BASIC-CALLs
  9. Search here for games that use speech: http://tigameshelf.net/asm.htm Lasso is a good one. .. @arcadeshopper can you load an EA3 from BASIC with TIPI? Demon Attack is another. I think you would need to download the file Demonatt.dsk and unpack the .dsk file in Linux. (the other format there is ARC) Then you get EA5 files DEMON, DEMOO etc To unpack a .dsk file on Linux, xdm99 (disk manager, python based) is excellent: https://endlos99.github.io/xdt99/ <insert xdm syntax here to unpack DSK to some TIF files> Assuming you do that, and get the files from Demon Attack into plain "files in a directory" (we call this FIAD , it's an alternative to a .dsk container.) From TI BASIC: CALL TIPI("PI.SOMEDIR.DEMON") https://github.com/jedimatt42/tipi/wiki/BASIC-CALLs The disk version of this game has nice speech. But the cartridge release does not! (also there is a secret speech phrase in there, I have not found how to get it in the gameplay)
  10. Now I want to know - there is a way to run EA5 with just a console+TIPI/32k? Maybe I knew that and already forgot?
  11. Couldn't you work backwards from the king? That way you'd examine at most 2 rows and columns, 2 diagonals, 8 knight moves = 35 squares to see if eligible pieces can attack. What if you cached the squares that a piece can attack? thats 8 bytes for each piece. To test if any square is covered, make an 8 byte mask of squares to check, then test that against a bit field that each piece caches. Possible improvement: use a separate shape to test against a type of piece. Having matched a piece, you have to see if the piece is blocked from attacking.
  12. The set of TIjDINGEN is coming to Texas -- it will be on display at future 99/4ATX events. When we can have in-person events again. Klaus let me browse his issues at the last TI Faire.
  13. Oh this is awesome! A new Z-machine adventure ported! I think you are right that you are first to port new content! I look forward to putting it on real hardware!
  14. Making a status update. I have not had much time for hobbies in August. I have put a lot of effort into physical design, because I really wanted to. I made paper prototypes of the Front Panel where the common ports are. Some will finally migrate to the back, like VGA and printer ports, but SD slots, joysticks and PS/2 belong in the front. This is ready to get lasered out of wood, or acrylic (the intended final form) but Covid makes that a big deal to go do. (At Hackerspace, must wipe down computer, laser, and work area before and after use.) The "floor plane" is also paper prototyped and ready to laser. It holds 8 card rails (Bivar), the front panel PCB (including ATX power connector) and has ventilation slots for air to flow up between the cards. A laptop blower fan points into there. I have re-routed the CRU and BIOS boards a couple times with changes. The CRU has one master connector for I/O that goes to the front panel PCB. A riser from this PCB has the physical ports sticking out. The front panel PCB also has individual box headers for peripherals that follow PC97 standards like RS232, VGA, AC97 audio. So there is the alternative of plugging in PCI slot brackets, the kind that come with ribbon cables, if you want to put this in an ATX case. (If you bought an F18A, you are familiar with the VGA slot bracket with ribbon cable. That's what I'm talking about.) I have not found any standard PCI slot bracket pinout for PS/2, though. There will be a header for the GamePort bracket, to which you can hook up one of the 15-pin MIDI adaptors. I verified that you can still buy all these PCI slot brackets for cheap. (FWIW, the internal cards also have holes at the PCI spacing.) I had a neat idea. There are now two TMS9901 chips. One of them is mapped at >2000, privileged space. It handles the real interrupts and some peripherals like PS/2 and SPI for the BIOS. The other is mapped at >0000 for compatibility. Its pins are wired to the actual joystick pins and 4A keyboard (if you want one, there is a connector kit.) The 2 interrupt status bits are fed to it by the other 9901. The MDOS keyscan bit and others are connected, too. I am trying to achieve maximum compatibility with MDOS/GPL in real chips, while offering a new BIOS layer that uses all the interrupt levels of the 99105. The 9901 timer is also there for user access. The one at >2000 is reserved for the BIOS, which might use it to implement multitasking. I still need a way to spoof the 4A keyboard lines from the PS/2 keyboard-- I imagined the FPGA doing that--it should look like an 8-byte RAM. But now there is a real 9901 onboard, not a simulated one. The goal is maximum compatibility with games that directly read the keyboard, without introducing an I/O coprocessor. Audio/Video I'm not putting effort into this now (I want to get back to the 9958). But here is an idea I had. The audio card--packed with goodness--on its current PCB layout it has room for 6 more 1/8" jacks in front. A TL084 op-amp and a jack can be as cheap as 20 cents. It already has the AC97 connector for the standard LineIn/Mic/Headphone-LineOut. I had the idea of making each separate analog signal output on its own jack. (otherwise they get mixed digitally.) So you could take just the Speech output, pass it through your favorite sound effect module, and then route it back to LineIn. Then, in the digital mixer (Speech has both digital and analog) mute the Speech, and pass LineIn through. Another thing you could do is take any of the "dry" sound chip output channels and put them through your own reverb unit or mixer. Four months to go or I'll have to call this "2021".
  15. A version that takes place on a single layer of blocks would be an appropriate subset. Like Flatland-you can't see or go outside your plane. There would still be a lot of hidden things, and features that are not 3D like crafting. I was thinking of that in 10-liner 49er (aka 99craft) in the contest this year. Only up-and-down and side-to-side like the original Miner from 99er magazine. Or Lost Ruins.
  16. I received this in the mail from Diode Milliampere. It is the first time I have ever seen a jewel case for a floppy disk! Floppy in front, CD is in the back. Both have snap-in holders. Retro goodness!
  17. The top circuit follows the V9938 data book example. The bottom circuit changes the NPN transistor to PNP and adds an LS04 inverter. The effect is a double inverter. But the output is now at TTL levels. It's changed to a digital sync, not analog. So this was probably for a specific RGB monitor that required digital sync.
  18. globeron, this is what you need. It does the things.
  19. If somebody has already solved GBS8200, great, I'm just jumping in here. I have been experimenting without one. I probably want to buy one. I think you need a VSYNC. The 9938 doesn't output one, but CSYNC (VSYNC+HSYNC+Important Stuff) was accepted by some RGB monitors. Try connecting CSYNC into VSYNC? Then definitely do the essential GBS Control fixes (on the page you quoted) including the 75 ohm impedance match fix. I don't see how it could ever work at all without the VSYNC, unless it is very, very clever. Shift838 built the SCART Genie which splits VSYNC off of CSYNC. On the gbs-control wiki it mentions Sync-Strike, which is the same idea: an LM1881 chip to get VSYNC out of CSYNC (or CVIDEO). 9938 does not output Sync-on-Green (just one of several RGB monitor standards) so never mind the SOG fix. (SOG puts CSYNC into the gaps in the Green signal. You have just 3 coax RGB then.) The above is my amateur opinion - I have not gotten any of my experiments to sync with the 15kHz Acer 276g, either.
  20. I doubt the problem is the crystal (or nothing would work). But the clock crystal of 21.477 mHz is out there. It is 6 times the 3.57954 NTSC color burst frequency. (Your 9918 has 3 times NTSC.) So, odd at first, but understandable. I tested these two with a 9958: https://www.mouser.com/ProductDetail/520-HCU2147-SX https://www.mouser.com/ProductDetail/695-HC49US-214-U 59 - 69 cents. Not here, but I found Tayda had an oscillator for 4 times NTSC, 14.318180 MHz, for some other Yamaha chip. Also, I loaded up on 75 and 100 ohm resistors Tayda has amazing customer service and fast shipping from US (they are focused on hobbyist electronics). They looked for the 21.477 for me. https://www.taydaelectronics.com/crystals-resonators-oscilliators/crystals.html
  21. The only time I used LOGO (other than for shows recently) was when there was an adventure game published in 99er. It was the October 1983 issue with the wizard on the cover. (There was an XB wizard maze game that I must have typed in twice.) https://archive.org/details/99er8310 It still seems magical. (We didn't know what was coming in the next month.)
  22. I too, am highly unlikely to travel. I am going to put my energy into the weekly Zoom meetings.
  23. Oh that's a good idea. I thought about GenLink being able to do that, but this works on a 4A.
  24. Here is mine, SuperSave. It works on the typical relocatable code. It allows you to put some or all of the E/A utilities into high RAM next to the files you load. Otherwise you can try GenLink...
×
×
  • Create New...