Jump to content

FarmerPotato

+AtariAge Subscriber
  • Content Count

    1,464
  • Joined

  • Last visited

Everything posted by FarmerPotato

  1. FarmerPotato

    PCB A2 A15 GND

    From the album: EE

  2. New Info While all the digital inputs are consistent with A2 being shorted to A15, I don't have a scope snapshot. Its possible that I may have shorted A2 to A15 with the probe and captured A15 alone. See pic, A2 A15 shorted. After cleaning up the board (of several suspicious solder whiskers) I tested again. A2 and A15 at the side port are distinct. However, the PAGE output shows the top nybble of the address and reads as if A2 were stuck high. AORG >7D00 LIMI 0 LWPI >83E0 CLR R0 SETO *R0 AI R0,>2000 JMP $-6 A2 Nybble -> Page Context 0 C -> E SETO @>C000 1 7 -> 7 1 7 -> 7 0 8 -> A AI R0,>2000 0 D -> F SETO @>D000 1 7 -> 7 1 7 -> 7 1 8 -> A AI R0,>2000 1 E -> E SETO @>E000 I suspect something like, the A15 line is inducing a current in A2 where it goes to U3. Here is the area of my PCB where they run parallel. with ground plane (green) I'm going to try something like cutting the A15 trace since I run it north as well, and don't require it in the address latch U3.
  3. FarmerPotato

    PCB A2 A15

    From the album: EE

  4. From the album: EE

  5. Those are all 0.1 uF filter caps per the schematic. There is one between each voltage pin +12, 5, -V to gnd. They appear to be glass, as in this style: https://www.goldmine-elec-products.com/prodinfo.asp?number=G23426 Found under "Rare or estoteric" parts. You could substitute this one at 0.15uF https://www.goldmine-elec-products.com/prodinfo.asp?number=G23436 They have polarity. You should be able to substitute any 0.1uF aluminum electrolytic.
  6. To be clear, there are PABs (25 bytes typically) and there are disk buffers (518 bytes each plus overhead). The disk buffers are owned and manipulated by code in the disk DSR ROM and contain working copies of disk sectors and FDRs. User programs shouldn't need to read or write to them. The PAB is the thing a program writes to before calling DSRLNK, (plus it supplies an additional area in VDP to contain 1 record of input or output. (for the disk, the record has to be in VDP.. even though there is a bit flag feature to say if its in VDP or CPU RAM.) PABs (10 bytes structure, plus filename, those shown starting at >1000) - E/A can have as many as it likes. Disk buffers don't have a dedicated purpose, they are used and reused in the order that disk files are opened or closed. The disk (sector) buffers in high VDP are allocated by the "FILES" subroutine on the disk controller, and only limit the number of disk files that can be open. You could open a LIST file to RS232 or PIO and it would not use one of the disk buffers. You would have a PAB with 10 bytes plus the filename string like "RS232.BA=9600", plus one record buffer (80 bytes ought to be enough.) It sure sounds like E/A II is not making the "FILES(4)" call or assuming people only send LIST files to the printer.
  7. So I somehow shorted A2 to A15/CRUOUT on my prototype board at the side port. On my PCB, the A15/CRUOUT trace went around the A2 pin and traveled next to the A2 trace. My guess is it shorted to the A2 post. The resulting behavior is: I latch the addresss after memen 1=>0 and phi3=0, when A15 is high, so I always latch A2 high. On the scope, I can see A2 going low again exactly when A15 goes low. My question is, does a short on A2 at the side port propagate back into the console? Why does A15 clobber A2 and not the other way around? For comedic effect, consider that most all the console does at startup is access WS at >83E0, GROM at >9c00, and ROM at >0000 (mostly KSCAN around >0336). If A2 is stuck at 1, these addresses appear to be in the banks >2000 and >a000, at which point a 32k memory expansion is eager to respond, which will lock up the CPU. A0 A1 A2 0 0 0 console ROM 0 0 1 low memory expansion 1 0 0 PAD and memory mapped GROM, VDP etc 1 0 1 high memory expansion For further folly, I thought I had fried the A2 input on the CMOS latch (TI SN74LV165A 8-bit shift register), so I replaced it, a surface mount SOIC-16. Same exact behavior, plus I damaged the solder resist over the A2 trace.
  8. There is a VDP stack area that is allocated downwards from top of VDP. The stack pointer is at >8370. The disk controller allocates file buffers up there before any other use of the stack. There is a buffer for sector 0. Each file buffer contains a 256 byte sector buffer, its first sector FDR (attributes and list of sector clusters) and some file control info. in Basic for example you invoke CALL FILES(1) then NEW. NEW then rebuilds the stack with just 1 file buffer. The default number is 3 but Tursi said E/A allocates 4 when it starts. You need a VDP memory map to show the details. I always relied on the Miller Graphics Smart Programmer issue with an XB VDP memory map. Here is a good one: http://www.unige.ch/medecine/nouspikel/ti99/vdpram.htm see "TI floppy disk controller card" I don't know if a program can do some serious damage if it clobbers the top of VDP, where sector 0 VIB is buffered, then tries to write into a new file. Sector 0 has the sector allocation bitmap. Maybe the buffer is reloaded before the next write.
  9. Thanks again for gathering all this. I am reproducing some of the measurements. Out of necessity: I'm debugging my sidecar. I was startled to see MEMEN go low for 10 us (microseconds) until I realized it was a write to GRMWA. As your timing explains, it really is that big a chunk of time. As to how a human being can be startled by a 10 us long event... being alive is pretty amazing.
  10. Since this has wandered far from the thread topic (using the Editor Assembler COPY directive!) could everyone instead post on the existing benchmarking thread to talk about GPL speed? Thanks
  11. I have been using Kryoflux (sucessfully on Windows 7, 10, Mac OS X). I It costs about €100. You get a USB peripheral, a disk controller, to which you attach your preferred floppy drive. It takes about 1 minute to read a DSDD disk. I wrote some scripts to change the output to V9T9/Classic99 DSK files. Mike Wright gave me a challenge to go to PC99 DSK format. Which one did you want?
  12. was there an E/A grom in there? I wonder how else you could load anything into it. I made one following the June 1985 Jon Clulow Micropendium article instructions. Here's the thread on 8k supercarts. http://atariage.com/forums/topic/210852-8k-supercart/ and the maimbyte page http://www.mainbyte.com/ti99/supercart/supercart.html
  13. I snagged a pair of those to go with my 99/4. They were broke. Also painful.
  14. I think it's great that you are trying this niche, that for whatever reason, nobody ever filled. Here is some sample code that I looked back at yesterday. https://github.com/olsone/tinet/blob/master/BBS-XMDS This is the source for XMODEM protocol. It calls Level 2 Disk routines from the GPL Spec. The usage examples might be helpful to you, without directly giving away the answer. BL @FILE2 DATA >0114 for instance sets up the 014 DIRECT READ subroutine. You can imagine modifying it to set up and run subprogram 11. The code also uses DIRECT READ as well as an OPEN and Level 3 read of DIS/FIX 128 file.
  15. It sounds like a corrupted disk. I think it is possible to trash sector 0, but still open files one more time before one big file write clobbers more of the disk. You are starting with some pretty arcane DSR calls--is it possible that you ran your program at some point and it touched the disk you were using? I suspect a write to sector 0. I think the usual course of learning TI-99/4A assembly is to learn everything about DSRLNK using PABs and record-level file access (Level 3 subroutines), before attempting the Level 1 operations (initialize, read sector, write sector) or Level 2 (direct file read/write) documented in the "GPL Interface Specification for the 99/4 Disk Peripheral". Before you erase that disk and start over, would you like someone to attempt recovery of your data? I have experience in that (out of necessity).
  16. DSR ERROR 0094 is interpreted as follows: 00 - the operation, 0 for Open 94 - the Flag/Status byte. See E/A Manual page 293. The bits of Flag/Status: 100 Error 4 - Out of table or buffer space on the device. 1 Record type VARIABLE 0 Data type DISPLAY 10 Mode INPUT 0 access SEQUENTIAL This is equivalent to BASIC's I/O ERROR 04 The only reason I can think of to get Error 4, while opening a file, is too many files open. I've never encountered this just by using a COPY directive in the main file. You didn't by chance nest files with COPY directives did you? I don't know how many disk buffers the E/A cartridge reserves, the usual default is 3, but it would need 4 disk buffers for Source, Object, List, and a COPY source. Are you assembling with the L option on? (create LISTing file) Though I don't recall ever having problems creating a LIST file for a project with COPY directives.
  17. Great! I gave it a try. Restocked QUEST (2 levels) on Easy. I found the Orb, but not the King, before time ran out. At one point I was almost destroyed by a hall monster Rat. I was defeated by an Ooze on level 2.
  18. Necro-posting... This gives me an idea. Iron on transfer to metal. I have transferred toner to copper PCB: put a glossy magazine page into your laser printer (Make magazine worked best), set for dense toner printing, take the print and iron it onto the copper. I imagine it will work with other metals.
  19. I'm receiving a TI-99/4 monitor (the one from a Ft Worth seller) and a 32k sidecar. This completes my 99/4 display (had disk controller, external drive) for showing around Texas. (Actually I lack an RS232.) Photos when I get it set up in my garage. Future idea is to build a replica store demo cabinet for the 99/4, with cartridges on wires.
  20. OK, here's a challenge: see how far you can get with just 1 wizard! Strategy must be very different than with a Hero or a party.
  21. I had Frontier in rural Wisconsin in 2012. The town was mostly legacy copper. We subscribed to DSL only, no voice plan, and it came with a dial tone, 911 out and incoming calls only. Was the last time I used my 1992 "Princess Phone". Time Warner gave me a quote to bring fiber from the highway into the neighborhood. $17,000 divided amongst us to pass each mailbox, but not to connect to the house. Copper lives on.
  22. There were so many BBSes in 303, they had their own magazine, PC Boardwatch, on newsstands. I went to a local gathering in 1988 where more than 50 sysops showed up. At that time I had an Opus (PC) and a TI-Net in 719.
  23. Texas Tech University had a lab full of TI-PC. I took a Saturday tutorial there on how to use PeachText (word processing), and PeachTree Accounting. I didn't know there was a laptop form off TI-PC. Later in the 80s, I enjoyed many hours playing Ultima V on a friend's TI Travelmate. That turned out to be a very good laptop line, which was eventually sold to Toshiba.
  24. All good now. I had been lazy and had a LVC245A reading the side port data bus all the time. When I removed this load from the data bus, the module space >6000 and >7000 went back to correct behavior, i.e. able to supply their data correctly in all cases. I am now up to 256 bytes of test program in LBLA.
×
×
  • Create New...