Jump to content


+AtariAge Subscriber
  • Content Count

  • Joined

  • Last visited

Everything posted by FarmerPotato

  1. Think of $ as the label to the left of current line. youre better off using real labels until you really understand how instructions are stored. But The way to be really sure is to look at the listing file to see how many words apart your target is. Some instructions are 2 bytes, but if they have addresses or immediate arguments, these add another word. JNE $+2 is a no-op JNE $+4 will skip over a simple instruction like DECT or A R4,R5 JNE $+6 will skip over LI R0,1234 or MOV R4,@>A000 JNE $+8 will skip over MOV @>2002,@>8C00
  2. Information is scattered around threads like the ROMs thread and older. At least it has pictures of the various carts. Maybe you are willing to gather it together? Along with interviewing folks.
  3. From time immemorial, the starship fleets of the galaxy have clashed in pointless, never ending wars over one beautiful airless moon. Those wars have finally come to an end. The taciturn Dramites have formed a League with the intrepid Parsec force, the Bynites, Urbites, and more alien races who are lining up to join every atomic year. That fateful moon, whose once-beautiful sculptures were totally ruined by falling space trash... Beneath the fateful moon, something is stirring. Encouraged by the smell of destruction, an ancient life-force has broken free of its prison and extended its tentacles in all directions. Now it is mining its world from the inside out, creating a vast living machine out of rock, metal, and flesh, for purposes unknown. You have been sent with an exploratory fleet, to gather intelligence on the life-force. Your fleet contains experimental Parsec 2 fighters, Dramites, Bynites, and Urbite missile cruisers, and some weirder alien craft who we have no names for. Together each has a role to play in exploring... and surviving... the horrors that lie beneath the surface.
  4. holy crap that's a lot of chips. but.. 22LV10C-JU10 is $1.28 at Mouser, so 500x would be $640. This has 5V input tolerance according to the data sheet. I hope you are not going all-in on 22LV10 on just my recommendation. I'm still evaluating them in-system. I've only fully tested at 3.3V. Waiting for cartridge boards.
  5. TheBF said SP EQU 10 Does the job of renaming. R10 is just an equate anyway, enabled by the R option in the original 99/4 assembler. MOV *10+,11 is the eventual syntax. RAG assembler and GenAsm had macros. I see ralph xas99 (from xdt99) has macros. Here I go with xas99 macros. Untested code: * initstack .defm spinit sp equ 10 li sp,stack * push R11 onto stack .defm savert dect sp mov r11,*sp .endm * pop from stack into R11 and return .defm return mov *sp+,r11 rt .endm * generic push <arg> .defm push dect sp mov #1,*sp .endm * generic pop <arg> .defm pop mov *sp+,#1 .endm * rewritten savert, return .defm savert push r11 .endm .defm return pop r11 rt .endm * Example. * Call chain: start -> foo -> bar. * Bar is polite: it saves/restore the register it uses, R12. * That is another use for stack push/pop, given that the stack is deep enough. start: spinit pushrt bl @foo return foo: pushrt bl @bar return bar: push r12 li r12,>1300 sbo 0 pop r12 rt
  6. Here is a (tested) example of using a stack to store return addresses. R10 will be my stack pointer. The stack area is reserved by a STACK BES 2*8 directive so it is big enough for 8 words. BES is like BSS but it sets the label equal to the *end of* the reserved area (the address after). Because we are going to be counting down from STACK. BSS and BES reserve data areas, mixed with your assembled code. In a modern computer, these areas would be somewhere in memory far away from the code. In the program, START calls FOO. FOO calls BAR (3 times). BAR calls VMBW. VMBW calls SETVA. START -> FOO -> BAR -> VMBW -> SETVA Each of these "pushes" R11 on the stack, then "pops" it back to R11 for its return. (remember RT just means B *R11) Even START is pushing the R11 given to it. DEF START VDPWD EQU >8C00 VDPWA EQU >8C02 VDPRD EQU >8800 VDPSTA EQU >8802 * BES equates STACK to the address after 8*2 bytes. Opposite of BSS. STACK BES 8*2 up to 8 levels deep * initialize stack pointer START LI R10,STACK DECT R10 save given R11 on stack. it returns back to E/A MOV R11,*R10 * call something BL @FOO BL @WAIT * exit program MOV *R10+,R11 RT FOO DECT R10 save R11 on stack MOV R11,*R10 * call BAR LI R0,34 BL @BAR LI R0,144 BL @BAR LI R0,254 BL @BAR * return from FOO MOV *R10+,R11 RT BAR DECT R10 save R11 on stack MOV R11,*R10 LI R1,HELLO LI R2,HELLO# BL @VMBW * return from BAR MOV *R10+,R11 RT * the usual multiple byte write * R0 vdp address * R1 data address * R2 length VMBW DECT R10 MOV R11,*R10 ORI R0,>4000 BL @SETVA VMBW1 MOVB *R1+,@VDPWD DEC R2 JNE VMBW1 * return from VMBW MOV *R10+,R11 RT * single byte R1, multiple times * R0 vdp address * R1 byte to fill with * R2 length VSBMW DECT R10 MOV R11,*R10 ORI R0,>4000 BL @SETVA VSBMW1 MOVB R1,@VDPWD DEC R2 JNE VSBMW1 * return MOV *R10+,R11 RT * SETVA won't be calling any subroutines so it doesn't save R11 on stack SETVA SWPB R0 MOVB R0,@VDPWA SWPB R0 MOVB R0,@VDPWA RT * wait pushes and pops R11 just to make a point WAIT DECT R10 MOV R11,*R10 SETO R0 big number DEC R0 JNE $-2 i like no labels MOV *R10+,R11 RT HELLO TEXT 'HELLO' HELLO# EQU $-HELLO EVEN END
  7. For For ATF22LV10? These are a good replacement for PAL and GAL lines. Still new from Mouser at $1.45. But they are a dead end. For one thing, just 10 bits of memory tied to the outputs. The ATF750 and ATF1500 offer more (hidden flip flops), but they aren't programmable in the TL866. I think my next step is ice40lp384-SG32 .. it's a tiny FPGA for $1.31. Gives you 21 IOs. Only downside is two degrees harder to solder on. Needs an external EEPROM. But Lattice has been very good to me in a lot of ways. Somehow I overlooked this little baby member of the family. I'm obsessed with minimizing costs as a design goal.
  8. I verified that my ATF22LV10C works as expected, using WinCUPL and the XGecu Pro (aka TL866II+). I used XGecu ver 8.51. Firmware is 04.2.105. ATF22LV10C-10JU were new from Mouser. ($1.45) This $10 adaptor was helpful in verification.
  9. I've verified that ATF22V10s (combinatorial logic) work as expected when programmed in the cheap XGEcu (aka TL866-II). I spent $10 making this adaptor , just what I needed for testing.
  10. Hackerspace work night report: We tried out Zoom at the Hackerspace. Amanda installed the Zoom app on a Galaxy 10 phone. That's our camera/mic. Using wifi and DC power. The picture was good in the classroom lighting. Sound was ok. I think I can scrounge up a Bluetooth headset. There will be a tripod for the camera. With Zoom, you can do screen sharing, or yield the sharing privilege to others. To join in with Zoom (in August!), use the meeting ID https://zoom.us/j/7707370625 The projector in the classroom is history. There is a projector in the lounge, but it's set up for playing video games from the couch. The classroom has a 60" LCD with all the inputs (RF,VGA,HDMI,Composite) and another 37" LCD. There are two huge whiteboards on one wall. Danny was doing air conditioning maintenance last night. So it should be running at tip top. We also have big-ass fans (not actually those ones) A couple Hackerspace members expressed interest in attending.
  11. Me too on the waitlist for 1. I'm not in a hurry. I'm currently working on side port and cartridge port. No immediate plans for Pbox.
  12. Welcome bcombee! There will be lots to see. We'll be happy to share the knowledge of whatever aspect of 4A-ness you want. Feel free to bring your system to work with, there will be plenty of space in the classroom. acadiel and OLD CS1 were at VCFSW too.
  13. Hello, I'm attempting to use the ATF22LV10C-JU with the new model XGPro programmer (formerly MiniPro, TL866-II). What I've tried: I have a PLCC-28 to DIP28 adaptor, and program it as DIP28. The programmer reports success at each step. However, I've received my PCB, begun board bringup, and I'm not getting anything out of the PLD. JED file is from WinCUPL, where the design simulates successfully. I verified VCC=3.3, and CLK in at 6 MHz. All inputs are stepped down to 3.3V by 74LVC245A buffers, and much slower than 3 Mhz. I have only combinatorial equations, no registers, but I put a 6 Mhz on the CLK pin anyway. So far, all I see is two Output pins at 3.3, when they should be varying. I didn't add enough test points to my board, so I've ordered a custom PCB breakout to test the ATF22LV10 in isolation. Others reported the ATF22V10 wasn't easy to program. My XGPro with the latest firmware reports success, is there any reason to be skeptical of this?
  14. It's almost the 3rd Wednesday work night at ATX Hackerspace, Jul 16. I'll be there doing some 99/4ATX business. Like trying out video conferencing in the classroom, with YouTube and Zoom. In case you want to test being on the Zoom channel, here's the URL: Zoom meeting URL: https://zoom.us/j/7707370625 I'm not sure if you have to sign in on Zoom. Anyway its free. YouTube test channel to follow. Anybody is welcome to jump in Wednesday night after 7:30 Central. Thanks for all the input on which videoconference.
  15. I'm in the 24hr wait period for YouTube. I like Zoom and it has chat and screen sharing. It turns out it only costs $15 for a one month plan. The free one cuts off every 40 minutes. My new Zoom meeting URL: https://zoom.us/j/7707370625
  16. Has anybody made (for sale) a test point adaptor for Pbox card, sidecar, or cartridge port? I've seen pictures of a Pbox card riser with a card on top. Ideally there would be a row of pin headers to attach probes to, so that you can watch the bus without adding test points for all the common signals to hardware under development. I drew up a PCB for the cartridge port, 3" long and 2" wide (just a bit wider than the 2x18 card edge.) It takes a 2x18 header for test leads, and a pass-thru 4A cartridge port (either pointing up, or reuse the right angle adaptor.) I'm kind of balking at the fab cost which is the same as a regular cartridge run. Ideas to make it more useful would be to squeeze in some pads for GROM, EPROM, bank latch, and maybe even a tiny prototype area. So it becomes both a cartridge debugger AND an experimenter board. Test points board. 50mm wide x 75 mm long. ||||||||||||||| -|||||||||||||||- ||||||||||||||||| ||||||||||||||||| ||||||||||||||||| ||||||||||||||||| ||||||||||||||||| |***************| test point |***************| headers ||||||||||||||||| ||||||||||||||||| |@@@@@@@@@@@@@@@| cartridge port \@@@@@@@@@@@@@@@/ pass-thru Experimenter add-on board. 50mm wide x 100mm long. ||||||||||||||| -|||||||||||||||- | | |LLLLLL GGGGGG | LATCH and GROM socket |LLLLLL GGGGGG | | | |RRRRRRRRR | EPROM socket |RRRRRRRRR | |RRRRRRRRR | | | |***************| breakout all pins |***************| in rational order |...............| protoboard |...............| |...............| . . |...............| |...............| |...............| Two boards can be panelized in a 100x100mm job ($16.95 at dirtypcbs.com), two for the price of one. Here's another inspiration for an experimenter board: https://store.digilentinc.com/breadboard-expansion-with-mxp-connectors-for-ni-myrio/
  17. I will try YouTube. There's no two-way there, no chat room right?
  18. Video Broadcast for 99/4ATX on weekend of Aug 8-10! We will have a Ustream channel. When no one wants to broadcast on it, it will point at something interesting, like a computer demo, a 3D printer, or a breakfast taco. You never know! https://www.ustream.tv/channel/u45p8uc7YSS I picked Ustream because the free trial seems better than freeconferencecall.com or Zoom.
  19. Making the RAM fast and large is a perfectly fine goal, it's just not possible on the cartridge port. 9900 doesn't need cache because its clock is only 3 MHz and cheap SRAM even from the late 80s needs no wait states. Cache is a necessity when your CPU is clocked way faster than the RAM; today your x86 is clocked in gigahertz and your RAM at 800 Mhz. TheBF had some good ideas about replacing the side port with a 16 bit fast memory bus to the PBox (I hope with a backwards compatible adaptor as an option). Others have put fast 32K memory inside the console. We don't need a cache, we just need RAM in the console that is 16 bit and no wait states. Modern SRAM is fast and cheap. For instance, this 512Kx8 thru-hole SRAM is $5 and is the type used in SAMS cards (and hopefully future Horizon RAMdisk). And this 512Kx8 or 256Kx16 part is $3 and $5, operates up to 100Mhz, and comes in a surface mount package that is just a little harder to solder than plain old 0.1" thru hole chips (SOJ-36 with 0.05" pins, you need a magnifier, and a knife edge K solder tip.) It would be hellacomplicated but you could make an in-console 16-bit bus tiny SAMS upgrade around that. Then again, I have more ideas than time or attention span.
  20. I'm still waiting for the actual cart boards from DirtyPCBs (where they cost $2.25 each). I held it up until I added the peg hole into the board (oops). EDIT: they were made on 7/15/19, shipped out of Hong Kong on 7/18/19. Hope they get here by Aug 8. BUT I will have this test rig for the ATF22V10 logic chip (PLD) from OshPark next week. I couldn't work with the PLCC to DIP adaptor that came with the TL866 / XGecu programmer. (It doesn't fit a breadboard, for one.) It it a PLCC-28 adaptor with two sets of pins: one set on the bottom plugs into a breadboard, while the top set is for a logic analyzer. All the pins on top are labeled. This will let me test just the bank register, and re-write logic, on the PLD.
  21. I think that considering a 512K flash cart as a big RAM is off the track. You could replace the chip with a large SRAM (for about $20) and have a mega-Supercart, but here are the numbers, like mizapf said: Relative Speeds (not including instruction overhead which is pretty big.) 1 PAD 16-bit access in 1 cycle each for read and write. 6 32K expansion 8-bit access in 6 cycles for read and write of 1 or 2 bytes. 2 x (1 cycle + 2 wait states). 6 times slower than PAD. 300 Flash - same read access as 32K, but takes 9 writes to program one byte. Plus a lot more instruction fetch and executes. So it will be at least 20 times slower than the 32K RAM per byte, or 40x slower per word. I'm guessing 50x after overhead. In other words, writing to Flash is best suited for saving small amounts of data or loading a new cart into the thing. I spent a lot of hours with the logic analyzer on the side port watching Mini Memory and 32k accesses. I know it pretty well by now. Tursi also made a great document from his logic analyzer of all types of memory cycles. I'll record the bus activity of the flash-writing code listed above to know for sure what the relative speed will be. (I have simulated my tests so far in the WinCUPL simulator from the Windows 95 era and I really, really have grown to hate it.)
  22. OK. We have a really nice Hakko desoldering vacuum gun and ChipQuik. Makes it a breeze. Bring a 40 pin socket.
  23. We can get one out of a scrap 4A for you. Otherwise it's about $3-$5 from China, $30 domestic. I forget whether it's soldered or socketed, but no problem, we can desolder at the Hackerspace.
  24. I think you described that you disconnected the keyboard, and touched pins together to mimic keys pressed? In that case most likely the 9901 chip is bad.
  • Create New...