rickcollette Posted November 9, 2023 Share Posted November 9, 2023 I was able to get my 800XL w/512MB and IDE 2.0+ working with P:R:Connection + WiModem32 - tested with 850 Express, ICE-T I went through the configuration of Link ][, ran BEGIN, selected to run the BBS. Now it just prints "AT" on the screen over and over. In LINK20X.BAS - It looks like it around this line: 781 BAUD=DBAUD:TRN=O:GOSUB OPM:ON PEEK(1771) GOTO 782:? #C2;"AT";:INPUT #C2,L$:IF L$<>"0" THEN ? L$:GOTO 781 Anyone with experience in retro fitting these types of things have any ideas of what I can look at here? As a second ask: Anyone have a good config.sys for sparta x for this setup? @Pab tagging you in case you have a few free moments. Link to comment Share on other sites More sharing options...
Amis Posted November 9, 2023 Share Posted November 9, 2023 Rick - It sounds like, from the AT command repeating the modem is not opening. I have the code for AtariLink and will look at the open/close modem commands set in the call wait routine as it may need an additional string to prep the modem for auto answer, and remove the modem feedback. Example: ATE0 S4=24 S2=255 S7=5 S37=10 As well as the appropriate gosub to the CLM and OPM Link to comment Share on other sites More sharing options...
rickcollette Posted November 9, 2023 Author Share Posted November 9, 2023 Hey - thanks for the response. I tried that.. I wonder if i need to send a CHR$(13) afterward.. the line i pasted is not correct - the correct but has "AT(atascii ctl-m)" which seems like it was meant to be an ascii ctl-m Maybe.. dunno.. gonna keep on piddling with it... Link to comment Share on other sites More sharing options...
Amis Posted November 9, 2023 Share Posted November 9, 2023 (edited) Correct but after the ATE0 - not really character that this editor provides.. The CONTROL M Char is the needed after ATE0 and of course you are printing to #2; ? #2;"ATE0(atascii ctl-m) S4=24 S2=255 S7=5 S37=10" Edited November 9, 2023 by Amis Link to comment Share on other sites More sharing options...
rickcollette Posted November 10, 2023 Author Share Posted November 10, 2023 (edited) Understood - I updated the lines in the code to: 781 BAUD=DBAUD:TRN=O:GOSUB OPM:ON PEEK(1771) GOTO 783 782 ? #C2;"ATE0^M S4=24 S2=255 S7=5 S37=10";:INPUT #C2,L$:IF L$<>"0" THEN ? L$:GOTO 781 783 IF PEEK(1771) AND PEEK(1772)=O THEN GOSUB 2890:GOTO C200*C10 784 IF PEEK(1772) THEN POKE 1775,I:POKE 1772,O:POKE 1771,O Where ^M = the CONTROL M Now, instead of repeating AT over and over, it goes to a black screen and the computer is not responsive. Still digging into it. Here's why I like it and why I'm really wanting to get this working - it's modular. the code owner (Pab) is super happy people are using it. It has a very well documented usage for the TSR. It has the ability to save state in the ASM TSR, and be recalled from modules/external programs. This means its extensible, and "doors" and utilities can easily be created for it. And - it has some deep rooted amis-isms, which is nice nostalgia for me Attached is the current link20x.bas code spartax-alink.atr Edited November 10, 2023 by rickcollette Link to comment Share on other sites More sharing options...
Amis Posted November 11, 2023 Share Posted November 11, 2023 I have the code and successfully running on Altirra. I did notice the code does call for a printer and you should remove the typical printer code to avoid the lock up. Just like AMIS... Link to comment Share on other sites More sharing options...
rickcollette Posted November 11, 2023 Author Share Posted November 11, 2023 What settings are you using for altirra? I see how close I can get with the hardware. Link to comment Share on other sites More sharing options...
Amis Posted November 11, 2023 Share Posted November 11, 2023 Altirra System Overview: Base system NTSC 130XE (128K) Additional devices 850 Interface Module, Modem, Printer (P:) OS firmware Atari XL/XE OS ver.2 [1F9CD270] Mounted images Disk: Atarilink 2 11102023.atr [14F52F32] Cartridge: Basic XE (OSS Type B) (BASIC XE 4.1).bin [003D3A36] Emulated R: Handler Link to comment Share on other sites More sharing options...
rickcollette Posted November 11, 2023 Author Share Posted November 11, 2023 Awesome - thank you - weird i cant get this working on real hardware.... Link to comment Share on other sites More sharing options...
Amis Posted November 12, 2023 Share Posted November 12, 2023 Video of the board running on YouTube and southernamis.com.. obvious it’s running on real hardware Link to comment Share on other sites More sharing options...
rickcollette Posted November 13, 2023 Author Share Posted November 13, 2023 Yeah - ive seen this - still not working on my setup. Possibly how my modem is configured. Maybe the AT init string, could be something stickin in the code.. still hammering on this. Link to comment Share on other sites More sharing options...
Pab Posted November 13, 2023 Share Posted November 13, 2023 IOCB #2 should be opened to the modem most of the time, unless you are doing a local (SysOp) login in which case it is reopened for E:, if I remember correctly. If it's printing AT to the screen, it might be that it's somehow stuck in local login mode and never opened/reopened the modem. It's been so long since I used the Hayes command set, I'm very rusty. ATE0 tells the modem not to echo characters sent to it (full-duplex mode). The S= commands set different flags. It should be one long command string with the CTRL-M at the very end (after the S37=10) Had to go to Wikipedia for this one: S4=24 S2=255 S7=5 S37=10 This is weird. The S7 should wait 5 seconds for a carrier after connection, which is okay I guess, but the others are gibberish. It's saying the line feed should be CTRL-X (instead of 10), escape character 255 (should be 43 or "+"), and it tries to connect at 14,400bps (S37)! I think you could safely take the rest of the line out, with all the status registers. The important stuff is either set elsewhere or is the default. Link to comment Share on other sites More sharing options...
Pab Posted November 13, 2023 Share Posted November 13, 2023 (edited) I'm also finding stuff I had forgotten about that was under development when my machine gave up the ghost. It looked like the disk I found and started adapting for Altirra BASIC was not my release version, but one where I had stuff in the works that I never finished and forgotten about. For example, on line 780 there is a reference to a file called EXTENDRS that should be loaded and kept handy to be sent after a connection is made. Now I realize what this was. My plan was to let SysOps do multiple file extension definitions instead of the traditional ASCII/ATASCII. For example, you could have added menus in VT-52 or ANSI and made them available to the caller. EXTENDRS was going to list them and ask the caller to pick from the menu which experience they wanted. When I sent this along originally it was causing the machine to look like it was hanging when it made a connection, where in truth it was just waiting for someone to select an extender type from a list that never got sent! It would be easy to add this back in and finish it. Found it. Line 8970 (FCNV+C10) selects the appropriate three character extender from CTRL$ starting at position 17, apparently. Edited November 13, 2023 by Pab Added info Link to comment Share on other sites More sharing options...
Pab Posted November 13, 2023 Share Posted November 13, 2023 One other thing, IOCB 3 was the printer that was supposed to always be connected for the log. If you don't want any logging you can just take out any of the ?#C3; references, or you can change the reference to "P:" in 32007 to anything else. If you do that, though, you ought to add a CLOSE #C3:OPEN #C3,C8+I,0,"(whatever)" to the routine where it connects a caller, just to make sure the file is closed and written to regularly. Link to comment Share on other sites More sharing options...
Pab Posted November 13, 2023 Share Posted November 13, 2023 Finding my definition block, here are some of the more commonly used routines, some of which could probably use some fine tuning. Open Modem (OPM): Line 460 Close Modem (CLM): Line 440 Read text file into buffer (RF): 9000 Send text file in buffer (SF): 9500 Get a "Yes" or "No" (YN): 270 "File Convert" - add appropriate extender to filename (FCNV): 8960 Link to comment Share on other sites More sharing options...
rickcollette Posted November 13, 2023 Author Share Posted November 13, 2023 2 hours ago, Pab said: Finding my definition block, here are some of the more commonly used routines, some of which could probably use some fine tuning. Open Modem (OPM): Line 460 Close Modem (CLM): Line 440 Read text file into buffer (RF): 9000 Send text file in buffer (SF): 9500 Get a "Yes" or "No" (YN): 270 "File Convert" - add appropriate extender to filename (FCNV): 8960 Man - thank you SOOOOO much for popping in on this. I'll be spending some time tonight working on it. Link to comment Share on other sites More sharing options...
rickcollette Posted November 13, 2023 Author Share Posted November 13, 2023 2 hours ago, Pab said: IOCB #2 should be opened to the modem most of the time, unless you are doing a local (SysOp) login in which case it is reopened for E:, if I remember correctly. If it's printing AT to the screen, it might be that it's somehow stuck in local login mode and never opened/reopened the modem. It's been so long since I used the Hayes command set, I'm very rusty. ATE0 tells the modem not to echo characters sent to it (full-duplex mode). The S= commands set different flags. It should be one long command string with the CTRL-M at the very end (after the S37=10) Had to go to Wikipedia for this one: S4=24 S2=255 S7=5 S37=10 This is weird. The S7 should wait 5 seconds for a carrier after connection, which is okay I guess, but the others are gibberish. It's saying the line feed should be CTRL-X (instead of 10), escape character 255 (should be 43 or "+"), and it tries to connect at 14,400bps (S37)! I think you could safely take the rest of the line out, with all the status registers. The important stuff is either set elsewhere or is the default. I tried with AT^M, ATS7=3^M, AT S7=3 S37=10 S4=24^M It still gets there, and just repeats over and over... I am going to try with a plain jane / no changes by me version and do the AT command string you posted: S4=24 S2=255 S7=5 S37=10 annnnd.. we shall see... Link to comment Share on other sites More sharing options...
Pab Posted November 14, 2023 Share Posted November 14, 2023 Try adding a ?#C2;"+++";:FOR X=I TO 500:NEXT X (Or a similar method of delaying) before the ATE0 This (+++) should grab the modem's attention and enter command mode. Before you run it, power cycle the modem and take out all of the S= statements. I think somehow they got screwed up. Link to comment Share on other sites More sharing options...
Tillek Posted November 14, 2023 Share Posted November 14, 2023 5 hours ago, Pab said: Try adding a ?#C2;"+++";:FOR X=I TO 500:NEXT X (Or a similar method of delaying) before the ATE0 This (+++) should grab the modem's attention and enter command mode. Before you run it, power cycle the modem and take out all of the S= statements. I think somehow they got screwed up. Thank you! It's great to have you around to answer all the questions! Link to comment Share on other sites More sharing options...
rickcollette Posted November 17, 2023 Author Share Posted November 17, 2023 (edited) I tried with a 130XE, IDE 2+, 85-, and a wimodem32 - still doing the same thing... I think it must be the drivers... Anyone else caare to give it a wirl with hardware? I also noticed that a lot of the lines of code exceed the normal max per line... Edited November 17, 2023 by rickcollette Link to comment Share on other sites More sharing options...
Pab Posted November 17, 2023 Share Posted November 17, 2023 The long lines were created through an old Atari BASIC trick to compress the code as much as possible. The lines were typed with abbreviations that are then expanded after being tokenized. For example… F.X=1 TO 20:IF X/2=ABS(X/2) THEN GOS.200:GOS.500:POS.0,0:?X:G.2000 is 65 characters as far as the editor is concerned, but expands on listing to 84. With a packed line it’s very easy to go over the 120 character limit imposed by the E: device. Link to comment Share on other sites More sharing options...
Pab Posted November 17, 2023 Share Posted November 17, 2023 As for the drivers you might be onto something. AtariLink relies on numeric response codes because scanning for alphanumeric strings would take too much code. Open a terminal. Type ATZ and hit enter. You should get “OK” back. Then type ATV0 and hit enter. You should get 0 as the response. If you get “OK” then the person who wrote the driver took the cheap way out by not bothering to include numeric response codes. Which for 99% of software won’t matter. It does in this case. Link to comment Share on other sites More sharing options...
rickcollette Posted November 17, 2023 Author Share Posted November 17, 2023 on the 850: I tried with altirra's rhnd850, sparta X rs232 on the prconn: prconn.hnd also tried on a 512k 800xl, stock 130XE 850 express and BobTerm both work fine with the setup and the modem. AtariLink does not like it. the common thing here is my ide 2+ - So now i am wondering if my ide 2+ is an issue. I'm going to try with a u1m 800xl with the xel-cf3 and see how that goes. Link to comment Share on other sites More sharing options...
rickcollette Posted November 17, 2023 Author Share Posted November 17, 2023 49 minutes ago, Pab said: The long lines were created through an old Atari BASIC trick to compress the code as much as possible. The lines were typed with abbreviations that are then expanded after being tokenized. For example… F.X=1 TO 20:IF X/2=ABS(X/2) THEN GOS.200:GOS.500:POS.0,0:?X:G.2000 is 65 characters as far as the editor is concerned, but expands on listing to 84. With a packed line it’s very easy to go over the 120 character limit imposed by the E: device. thats brilliant. all these years and I never knew that was a thing.... Link to comment Share on other sites More sharing options...
rickcollette Posted November 17, 2023 Author Share Posted November 17, 2023 1 hour ago, Pab said: As for the drivers you might be onto something. AtariLink relies on numeric response codes because scanning for alphanumeric strings would take too much code. Open a terminal. Type ATZ and hit enter. You should get “OK” back. Then type ATV0 and hit enter. You should get 0 as the response. If you get “OK” then the person who wrote the driver took the cheap way out by not bothering to include numeric response codes. Which for 99% of software won’t matter. It does in this case. I ran bobterm, ATZ give "OK", ATV0 gives "0" so.. testing with a completely different hardware setup... Link to comment Share on other sites More sharing options...
Recommended Posts