lmgvice Posted March 13, 2023 Share Posted March 13, 2023 I found WeMOS D1 R32 ESPDuino32 ESP-WROOM-32 / 4MB Wi-Fi and Bluetooth Board which is the same form factor Luis Quote Link to comment Share on other sites More sharing options...
brain Posted March 13, 2023 Share Posted March 13, 2023 Thanks. I did a check before asking, but did not see this. Jim Quote Link to comment Share on other sites More sharing options...
lmgvice Posted March 13, 2023 Share Posted March 13, 2023 Probably using one of this boards it will be possible to build upon a file server and form factor is maintained. Luis Quote Link to comment Share on other sites More sharing options...
lmgvice Posted March 14, 2023 Share Posted March 14, 2023 Found this video that might help in converting from Arduino UNO to WeMOS https://www.youtube.com/watch?v=SHOIWEVUlW0 Luis Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted March 15, 2023 Share Posted March 15, 2023 On 3/1/2023 at 9:22 AM, brain said: I'm not sure where I got this from, but I have the specs for the video display, it's attached, though I got it from some TI CC40 web/ftp site. I can't find the location now. That said, it's possible the actual Video Peripheral differs from the spec. Thus, it'd be good to reverse engineer the protocol to see how it matches the spec. The spec protocol looks "VT-ish", but I'm not a VT code expert, so I have no idea if the codes are similar/same I didn't mean to imply char redefinition. I just noted that the spec I received does not have all the char defs in it, but it might be in another doc, or maybe the ones that are in the spec imply they used the normal 99/4a char defs, etc. Display Interface Functional Specification.txt 75.49 kB · 7 downloads I noticed that the commands for "Graphics Mode" in that document are implemented in the HX-1000 Printer/Plotter. The spec mentions 6x8 char defs, then, for 7 x 10 char defs, to follow the TI 911 video terminal. The TMS9918 datebook shows what might have been the 99/4 capital letters. (And our LARGE CAPITALS.) The 99/4A has a new variation plus small caps. Of course CC-40 got nicer lowercase. Point is TI had made several already. The 32 graphics characters (bars, box edges) match those available on the TI 911 terminal. See DX10 Vol3 Applications Programming manual page B-1. Letters A-Z of the 911 keyboard give the graphic shapes shown here as 81 to 9A, you can see the others there too. The suggested color codes correspond to the TMS9918. Quote Link to comment Share on other sites More sharing options...
brain Posted March 15, 2023 Share Posted March 15, 2023 Sadly, a straight conversion is probably not effective. Initial tests a few years back with an esp32 yielded poor results. I wrote some new HEX support code that ran on the esp32, but required additional ICs to handle the low latency HSK handling needed by the protocol. The transition from HSK(master) LO to HSK(peripheral) LO must be done in 8uS or less. TO be safe, 7uS is effective max. AVR can handle that no problem, since it is single task, but esp32 running FreeRTOS was showing me 9uS or longer latency. Removing FreeRTOS slid it down to 2-3uS, but then you lose all of the cool things like Wifi and such, since they require FreeRTOS. That said, I think it depends somewhat on what types of output is desired. Little LCD panels are fine with the Arduino or esp32, and it looks like esp32 can do VGA, but if HDMI or something is needed, I'm not sure the esp32 is the best target. It's probably best to move the discussion over the dedicated video thread: Jim 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 20, 2023 Share Posted March 20, 2023 I'm looking for data on the CC40 cartridge port, primarily pinout and documentation on how to access it via assembly. The CC40 EA User and Reference guides do not have any mention of the port. Is there anything available out there on this? Quote Link to comment Share on other sites More sharing options...
brain Posted March 20, 2023 Share Posted March 20, 2023 Updated Ed Hallett cartridge port map: ============================================================================ CC-40 CARTRIDGE PORT PINOUT: TOP |---------------------------------------------------------------| E | 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 | D | | G | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | E |---------------------------------------------------------------| ____ __ 1 GND 21 CROM [ CS ] 2 +5 VOLT CONSTANT 22 A6 3 UNKNOWN (LOW) [ P25.2 ] 23 A5 4 A9 24 A4 5 A11 25 A2 ______ __ 6 DELAYED ALATCH + READ [ OE ] 26 A0 _____ 7 RESET 27 GND ____ 8 INT3 28 D2 9 CLKOUT 29 D1 _ 10 R/W 30 D0 ______ 11 ENABLE 31 D6 ___ 12 A14 32 D5 13 ALATCH 33 D4 14 D3 34 D7 ____ __ 15 A1 35 CRAM [ CS ] 16 A3 36 A10 17 UNKNOWN (LOW) [ P25.3 ] 37 A8 18 A12 38 A15 __ 19 A7 39 UNKNOWN (PULSE) [ WE ] 20 +5 VOLT SWITCHED 40 A13 =========================================================================== CC-40 CARTRIDGE PORT SIGNALS: SIGNAL DESCRIPTION ALATCH Logic 1 while port C (multiplexed address/data bus) asserts a memory address. R/W Logic 1 for read cycle, logic 0 for write cycle. ______ ENABLE Logic 0 for external (off processor) memory cycle. CLOCKOUT Output clock for memory control timing. A0 - A7 Addresses A0 thru A7 demultiplexed from D0/A0 thru D7/A7 signals. D0 - D7 Multiplexed data lines D0/A0 thru D7/A7. ____ CRAM Logic 0 for memory bank 5000-8FFF enable. ____ CROM Logic 0 for memory bank 9000-CFFF enable. ____ INT3 Logic 0 to initiate a level 3 interrupt. _____ RESET Logic 0 to initiate a level 0 interrupt (RESET). DELAYED ALATCH+READ Logic 0 for one time state immeadiately following the ALATCH signal return to logic 0 when R/W(NOT) is logic 1. (Most likely used for memory address timing control) =========================================================================== Accessing it via assembly for the most part is just like normal RAM/ROM. The P25.2 and P25.3 bits are in a register, but someone else will need to provide that. 2 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 22, 2023 Share Posted March 22, 2023 So I'm thinking just poking an 8-bit value to $5000 (that's the start of the cartridge RAM per the EA manual) should place the value on the A0-A7 lines. Luckily I bought from you the cartridge port breakout card a while back, so this should be fairly simple to test out. Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 23, 2023 Share Posted March 23, 2023 Gave it a shot but no dice. It would have been too easy... The cartridge data lines are all set to high when the CC40 is turned on, and pulse with each keypress, but trying to poke a value to the default >5000 address in cartridge space does nothing. I suspect there is some register that needs to be set to activate that space, but so far I have not been able to figure it out as the EA manuals have very sketchy info on the cartridge port outside of how to bank switch the RAM or use the utilities to load programs from or save to that space. 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 24, 2023 Share Posted March 24, 2023 It looks like there is an issue with the ALDS cart image on my multicart. When using the editor, typing AUTO gives me line number 00000 instead of 00001, and if I try to use that line number I invariably get an INVALID LINE NUMBER error. If I try to manually enter the line numbers starting at 00001, everything seems to work except that when I try to list, the first statement of the program is now assigned to line 00000 and pressing Enter will again give me an invalid line error. Essentially it seems that the Editor is stuck on line 00000. Has anyone else experienced this? Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 25, 2023 Share Posted March 25, 2023 Well it appears that the EA cart is actually buggy and essentially unusable. The editor issues can be bypassed by using a PC text editor and transferring the source file to the CC40 with the SD drive, but the linker is buggy as well, a fatal issue. A real shame... Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 26, 2023 Share Posted March 26, 2023 One last coment on this: I examined the assembler tagged object file output with a hex editor, and after figuring out the structure of the tagged OBJ format, I did not see the >4E tag (end of record) at the end as it was replaced by a >4F tag (end of file). Adding an EOR tag (pretty sure not necessary when an EOF tag is present) did not do anything as the missing EOR error was still present. And listing the assembler output also verified that the generated code was correct as well. So this confirms that the issue is with the linker and not the assembler. So unless there is a different version of the EA module floating around, that's the end of the road... @Ksarul @acadiel are you aware of any? Quote Link to comment Share on other sites More sharing options...
+acadiel Posted March 27, 2023 Share Posted March 27, 2023 12 hours ago, Vorticon said: One last coment on this: I examined the assembler tagged object file output with a hex editor, and after figuring out the structure of the tagged OBJ format, I did not see the >4E tag (end of record) at the end as it was replaced by a >4F tag (end of file). Adding an EOR tag (pretty sure not necessary when an EOF tag is present) did not do anything as the missing EOR error was still present. And listing the assembler output also verified that the generated code was correct as well. So this confirms that the issue is with the linker and not the assembler. So unless there is a different version of the EA module floating around, that's the end of the road... @Ksarul @acadiel are you aware of any? The one that’s on the multi cart should be a direct dump of the 32K TI ALDS cart from Michael Becker. HAP or others might have had some dumps as well; it might also be a bank switching issue with the multicart. Have you tried it in MAME to see if it’s also happening there? I’ll dig through my archives and do a diff and see what differences (if any) there are, and if so, what’s the difference? Do you have some steps/code I can punch in on my side to try and replicate the issue? Edit: First cursory look. Got a brain refresher, it was a 64K bank switched cart. 32K was Memo Processor and 32K was ALDS. I believe part of the uniqueness of Becker's cart was that it did a bank switch between the two 32K segments, but they should both live in >5000->CFFF depending on which one was selected. I have done diff's of my carts so far with zero differences. @Ksarul has my original EA Becker cart, and I don't know if he or something else has another E/A cart we can dump to compare to. Did @pixelpedant try and assemble something on a recent video? Did it work, Pixel? Jon 1 Quote Link to comment Share on other sites More sharing options...
pixelpedant Posted March 27, 2023 Share Posted March 27, 2023 22 minutes ago, acadiel said: Did @pixelpedant try and assemble something on a recent video? Did it work, Pixel? I did not actually assemble code. I can corroborate Vorticon's observation, however, that there's some weird and inconsistent (with documentation) behaviour on the part of the ALDS environment, in my case as well. Namely, scrolling sequentially through lines of entered code in the line editor does not succeed as documented (but produces an "Invalid line number" error), and any line which is displayed using the E/EDIT or LIST command will display 00000 as its line number, regardless of line. The code is evidently being stored successfully (i.e., "E 3" or "E 00003" will correctly retrieve the third line as entered). But lines will always be displayed as 00000 {some code} and as a result, editing with the E/EDIT command cannot occur unless the line number is manually corrected in any given case. 2 Quote Link to comment Share on other sites More sharing options...
+acadiel Posted March 27, 2023 Share Posted March 27, 2023 Looking at this page, and making these assumptions about the board design: 1) It's not MP that'd different; the executable is exactly the same as a production MP cart. 2) A15 is somehow toggling back/forth to move 32K segments between the two carts on the board. 3) Looking at pins 3-5 (1 being on the bottom), I see the "[P25.2 Unknown Low] to CC40 #3 connected. Pin #1 on the CC-40 is GND, and it's connected. Pin #2 on the CC-40 is N/C here (that's +5V standby.) Pin #3 on the CC-40 is an unknown LOW (it's going to likely EPROM A15). Pin #4 is EPROM A9, pin #5 is EPROM A11. (These appear to go through VIAs to get to A9 and A11 (23-24) on the 27512. Pins #6-11 aren't connected on the top. Pin #12 A14 is going to A14 on the EPROM. Pin #14 D3 is going to D3 on the EPROM. Pin 15-16 and 18-20 are normal too. So, if I had to guess, CC-40 pin #3 is what controls the "banking" pin for A15, and if the ALDS still has banking for A15 being checked by whatever the "P25.2 Unknown Low" pin #3 does, it *may* possibly cause issues? I have Steve Reid looking into this. His quote was "hard to believe there was a bug like that; I remember the testing that was done on the cartridge, it was done for months." He's going to check his copy and or compile it from scratch to see if he can duplicate. One thing we can definitely do is just create a uber 32k x however many banks version of this cart to where if it does a bank switch, it's got the same darn contents wherever it lives. I don't know what happens if a write to that pin #3 happens on the multicart - we didn't test use cases for that. @Ksarul would you mind desoldering and scanning both sides of the EA Mechatronics board? Also maybe re-dumping the 27C512 again? It would rule things out. You can also enter edit mode, then Line mode, hit enter at “copy file” and then try AUTO and see if you start at 00000 or 00001. Steven did come back - we will need to verify a legit cartridge if someone wants to lend me one to help @brain make mods to new prototype boards just for EA. In other words I need to borrow an EA cart, folks 🙂 “So I had to go back in time and review the build history of the ALDS module. Looks like it is a two page module after all… handling paging internally. The console apparently supports this via two lines to the module. ALDS would assume to be on pages 00 and 01. If it’s not, it’ll probably behave very strangely.” 1 Quote Link to comment Share on other sites More sharing options...
+acadiel Posted March 27, 2023 Share Posted March 27, 2023 (Covered above.) Willing to help, just need another E/A cart to borrow so we can replicate the bank switching correctly. That's 95% my guess of what's wrong. 1 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 27, 2023 Share Posted March 27, 2023 4 hours ago, acadiel said: Do you have some steps/code I can punch in on my side to try and replicate the issue? Thanks for looking into this. I agree that it seems hard to believe that such a fatal bug would have sneaked by undetected. I have attached the example program BEEP from the EA manual: SRC is the text source, LST is the assembly list file and OBJ is the tagged object file. Place the SRC and OBJ on the SD card of the drive and start ALDS with RUN "ALDS". Press L to enter the line editor, and at the COPY FILE prompt, enter 100.SRC. Sometimes this fails, and if it does, when you are at the > prompt, enter COPY 100.SRC and it should load the source file fine. Once the > prompt is back, type LIST and line 00000 will be displayed along with the first program line of BEEP. Pressing ENTER or the up/down arrows will give an INVALID LINE NUMBER error. Entering LIST x will however display the xth line properly. You can edit any line with E x. Type QUIT, answer Y, then press Q. Press A to assemble. Source file is 100.SRC, object file is 100.OBJ. Press Y at the In Memory Assemble prompt, enter 100.LST at the List File prompt, then finally press Y at the Write Object File prompt. To link, press L then press N for the Control File prompt. Enter I 100.OBJ at the Enter Line prompt. Enter E at the second Enter Line prompt. Enter 100.BEEP at the Linked Output File prompt and press ENTER at the List File prompt. The linking process will fail with a MISSING EOR TAG AT # 0. If you just want to test the linker, you can follow the linking instruction above only using the supplied OBJ file. LST OBJ SRC 2 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 29, 2023 Share Posted March 29, 2023 I'd like to test this issue in MAME. Does anyone have a copy of the CC40 and modules ROMS? I own all the hardware so it's kosher Quote Link to comment Share on other sites More sharing options...
+mizapf Posted March 29, 2023 Share Posted March 29, 2023 https://ftp.whtech.com/System ROMs/MAME/ 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 29, 2023 Share Posted March 29, 2023 55 minutes ago, mizapf said: https://ftp.whtech.com/System ROMs/MAME/ I really need to take a closer look at this WHTECH repository some day... It's so darn convoluted that I rarely use it. Thanks! Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 29, 2023 Share Posted March 29, 2023 Sorry to be a pest but I'm still missing the EA module rom. Not in the repository as far as I can tell. Quote Link to comment Share on other sites More sharing options...
+mizapf Posted March 29, 2023 Share Posted March 29, 2023 I don't know about the module ROMs for the CC40, sorry. Quote Link to comment Share on other sites More sharing options...
brain Posted March 29, 2023 Share Posted March 29, 2023 Hopefully someone can put the missing ones into the archive CC-40 cartridges.zip 1 1 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted March 29, 2023 Share Posted March 29, 2023 I'm having a hard time getting these modules to be recognized by MAME and I think it's related to the location and naming. Any tips on where these files should go and what is the expected naming convention? 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.