Jump to content

Urchlay

Members
  • Content Count

    1,213
  • Joined

  • Last visited

Posts posted by Urchlay


  1. - The open source c for "The uIP TCP/IP stack" is available here. If you were to do it, that would be the place to start, the documentation is excellent. You would probably need 130XE equivalents with expanded RAM, though.

     

    Synchronicity at work...

     

    I've just spent a couple of days with uIP 1.0, porting it to the Atari with cc65. Last night the Atari successfully retrieved a web page from my Linux box, over a SLIP connection. (Yes, the old uIP 0.6 version compiles with cc65, but the 1.0 version is significantly better, including UDP support, DNS, even DHCP, but the cc65 port got dropped somewhere between 0.6 and 1.0, so I'm re-porting it)

     

    The Atari binary is 20K, including the R: handler, and that's with all the uIP code in compiled C. It should be possible to rewrite parts of it in assembly and shave off a few K that way. Expanded RAM isn't required, and I don't think it will be for a complete app either, unless you want to try to create a web browser that can handle today's enormous HTML + CSS + Javascript pages. Something like an FTP or IRC client would fit in 48K, easily.

     

    Right now I'm in the middle of moving, so don't have a whole lot of time to spend on this, but the plan is to first write a telnet client, then FTP and IRC clients, and possibly some sort of simple file-sharing protocol (NFS and Samba aren't simple... but something along those lines). Sometime soon I'll put up a web site (maybe an AtariAge blog, or a SourceForge project) and start making releases, so people can try it out and/or contribute code, all the standard open source stuff.

     

    As far as the original topic goes... what I've got right now would work between two Ataris using 850s and a null-modem cable. What'd be needed to make it work with a SIO crossover would be an R: driver that impersonates an 850 and works with the SIO bus as-is. In fact, the R-Verter/Bob-Verter driver might work for that purpose, as-is. I don't have enough SIO cables that I'd be willing to tear one apart & rewire it though. Anyone actually built an SIO crossover who'd like to test uIP with it?


  2. Yep, there are quite a few that don't work do to changes in the BIOS (at least that is my understanding). Demon attack comes to mind. Some of the newer XE game carts won't play on the 400/800 computers for the same reason. I have a translater cart, but it is a pain to use. I believe the 1200XL is a bit different than the 600/800XL Bios as well.

     

    Yes, the 1200XL is a bit different...

     

    Demon Attack won't run on an 800XL either though. I'm looking for stuff that runs on the 800XL but not the 1200XL.


  3. I was just playing with my 1200XL last night. I tried putting the IMAGIC carts in. They don't "seat" very well and fall out (probably becuase they don't fit I didn't realize this). Aside from the fact they aren't BIOS compatible with the 1200XL anyways

     

    Which games are "not BIOS compatible" with the 1200XL, specifically? And... do they also not work on other XL/XEs?

     

    I'm sort of on the lookout for any software that runs on an 800XL but not a 1200XL.


  4. An SIO2PC cable with R-verter/Bobverter/SX212 driver, or an 850 or P:R: Connection (remember those?)

     

    ...and Bobterm or Ice-T or whatever. Terminal software on the Atari side anyway... whether or not you use an XEP80 depends on whether it's supported by the terminal program.

     

    On the Linux side, whatever set of directions you're following for setting up serial port logins with the ST will work fine for 8-bit, but... if you're using an SIO2PC, the carrier detect line isn't hooked up to anything, so you'll need to run your getty in "local" mode (for agetty, this is the -L option). If you're using an 850's first serial port, this shouldn't be necessary, but ports 2/3/4 don't have all the lines hooked up either... and remember an 850's 9-pin connector has a totally different pinout from a PC-style 9-pin RS232 port. Basically everything you need to know about the 850, you can find in the manual that came with it.

     

    Ice-T does a pretty good job of software 80 column mode with VT100 emulation: I've gotten it to display the links browser, irssi IRC client, vim editor, and it even works with screen. If it locks up on you, reduce the baud rate. With an SIO2PC and the RVERTER.COM driver (from the Bobterm disk), I got 4800bps to work with most apps, 9600 wasn't reliable with anything... 2400 was rock-solid, but of course slow. I did hook up an 850 briefly, but I can't remember whether I even tried it at higher speeds.

     

    With Bobterm you only get 40 columns (unless it supports the XEP80; I haven't got one to test with) and VT52 emulation. I got lynx (not links) to work in 40 columns with Bobterm (in bash: export TERM=vt52; export COLUMNS=40; export LINES=23), but it sometimes leaves junk on the screen when it should be clearing it. Unfortunately most IRC clients don't work with VT52 emulation (missing capability or two), but you might try rhapsody... and epic seems to work OK with TERM=dumb (though it's kind of a pain to actually use it that way).

     

    BTW, I've forgotten how to type a ~ (tilde) in Bobterm...

     

    Another thing to watch out for: if you use AtariSIO to load the terminal program, you'll have to "rmmod atarisio" before enabling the serial port login, and disable the serial login and "modprobe atarisio" again before running atariserver. Probably a good idea to use a shell script, something like:

     

    #!/bin/sh
    
    # run me as root
    
    while true; do
      modprobe atarisio port=/dev/ttyS0
      atariserver bobterm.atr
      echo "Press Enter for serial login, or ^C to exit"
      read i
      rmmod atarisio
      sleep 1 # may not be necessary on all systems
      agetty -L ttyS0 4800 vt100 &
      # toggle_rts   # if using a smart/autosensing SIO2PC
      echo "Press Enter for atariserver, or ^C to exit"
      read i
      fuser -k /dev/ttyS0
      sleep 1
      fuser -k -9 /dev/ttyS0
    done

     

    If you're using an 850 or a plain "dumb" SIO2PC, it'll work as-is. If you've got a smart SIO2PC (like the ones Steve Tucker sells at atarimax.com), it monitors the state of the RTS line to decide whether to run in SIO2PC or 1050-2-PC/Prosystem mode... agetty will clear the RTS line, so you'll need a way to set it. I wrote a dumb little C program to do it:

     

    /* Compile with:
    gcc -o toggle_rts toggle_rts.c
    
    Change PORT if necessary.
    */
    #define PORT "/dev/ttyS0"
    
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <termios.h>
    #include <errno.h>
    #include <sys/ioctl.h>
    #include <linux/serial.h>
    
    int main() {
    int fd, status;
    
    fd = open(PORT, O_RDWR);
    if(fd < 0) {
    	perror(PORT);
    	return 1;
    }
    
    ioctl(fd, TIOCMGET, &status);
    if(status & TIOCM_RTS) {
    	fprintf(stderr, "RTS set\n");
    } else {
    	fprintf(stderr, "RTS clear\n");
    }
    status &= ~TIOCM_RTS;
    ioctl(fd, TIOCMSET, &status);
    return 0;
    }

     

    This has to run *after* agetty starts... alternatively you could get the agetty source and patch it to set RTS after opening the port.


  5. Does TB still run the OS in ROM? Must not use the ROM FP...

     

    It uses the ROM FP for *something*, because it crashes if you run it with the FP ROM area set to all 0 bytes...

     

    AFAIK, the ROM OS is still used while TB is running... it may shadow some of the ROM though (at least the font, like Sparta DOS does).


  6. I'll always love the looks of the 800. Something about it just screams "I am a bad-ass!"

     

    The TI/99-4A is also high on my list of cool-looking computers. It wouldn't look out of place attached to the TARDIS console on Dr. Who...

     

    Not a home computer, but I always liked the look of the Vectrex console too. Basic black, no nonsense. Also the woodgrain 2600 is a classic (have actually considered modding a 2600 case, replacing the fake woodgrain parts with real wood).

     

    Also I prefer the looks of the Indus GT to any of the Atari-made floppy drives, though the 810 does have that 70s chunkiness that the 800 has.


  7. It's only one tape - with two sides.

     

    Side A is the Innkeeper, Side B is the DunjonMaster followed by the level data I believe.

     

    So before you enter the dungeon, you rewind side B, the Dunjonmaster loads, then it loads the level... If you're entering level 2, it has to read and discard the data for level 1, right? The later levels must be painful to load :(

     

    Atari800 does support rewinding, BTW.

     

    Atari800WinPlus might, plain Atari800 doesn't seem to... *shrug*


  8. In theory, shouldn't these be able to also be put into a single CAS image for the emulator? Are other multi-stage loaders like Sea Dragon done like that for CAS images?

     

    If the emulator supported rewinding...

     

    It looks like you'd need to be able to reload the Innkeeper tape, when you exit the dungeon (so you can spend some of the gold you just won), then when you're done at the inn, load the next level, then the dungeon tape again.

     

    Pretty much the only reason for imaging this is archival, so if it came on 3 tapes originally I'd vote it should be archived as 3 .cas images... which can easily be cas2wav'ed back into 3 cassettes.


  9. I now have a CAS file (for those that are interested, it's on www.retroreview.com/iang/TempleOfApshai_SideA.cas).

    I load this into Atari800Win.

    "READY." says the emulated computer.

    I then type RUN...

     

    ...and the emulator crashes.

     

    It looks like that cas image is of a CSAVEd program... when you load it into a800win, are you typing CLOAD in BASIC, or is the emulator trying to boot the tape?

     

    It also looks like this isn't supposed to run first. It's the "Dunjonmaster" part of the game, which gets LOADed only when you actually enter the dungeon. The main program (the "Innkeeper") is where you create & equip your character. From looking at the code, the Innkeeper program sets up memory so it contains your character's stats and the level data, then runs the Dunjonmaster. Since we're trying to run the Dunjonmaster first, it's crashing because there's no character or level data for it to find. It's odd that your tape has the Dunjonmaster part on Side A... possibly it's mislabelled, or maybe this is cassette #2, side A?

     

    I compared the BASIC code in the .cas image with the TEMPLE.DUN file on the disk version: it's identical.

     

    So there's nothing wrong with your dump, you just need dumps of the rest of the game. It looks like there should be at least 3 tape sides: the Innkeeper, the Dunjonmaster, and the levels.

     

    BTW, I CLOADed your dump on a 64K 600XL with cassio and an sio2pc cable, it loads and LISTs fine.


  10. Sorry to go off topic, but just where is the sound routine that handles the CTRL-2 (ATASCII 253) located?

     

    Looks like $F556 in the XL/XE ROMs. It doesn't respect the XL keyclick disable flag at $02DB either...

     

    If you patch the OS, set the byte at $F556 to $60 (an RTS), then ctrl-2 just has a normal keyclick noise, and printing the bell character ($FD) does nothing.

     

    In the atari800 monitor, you can say "m f556 60"... on real hardware you could copy the ROM OS to RAM and just use POKE in BASIC.


  11. I'm not 100% sure, but I think Marc Grebe has extended the Atari800 Emulator on MacOS X in many ways over the 'normal' Atari800, especially when it comes to Debugging. Also, it has some more emulated hardware, like XEP80 Emulation, which is not in the normal Atari800.

     

    I might be wrong here, at least the Linux Version 2.0.3 of Atari800 does not have all the features that the MacOS X version has.

     

    The XEPP80 emulation is in atari800 CVS... however you're right, your list of debugger commands from OSX includes some commands not in plain atari800, even current CVS. That'd be a crazy reason for someone to spend a couple thousand on a Mac though :)


  12. Atari800MacOSX has a trace debugger with breakpoints. Might be a good reason to buy a Mac :)

     

    The Atari800MacOSX is the best Emulator for Programmers (IMHO)

     

    Plain Atari800 and Atari800WinPlus have the same thing. No need to buy a new machine... The OSX and WinPlus versions have OSX and Windows style user interfaces, but the emulation engine and debugger are the same as the original Atari800.


  13. Easy on Defender can be played while in a coma. You pretty much have to change difficulties for it to pose any challenge. The same can be said of Star Raiders (since you have infinite shields and no hyperspace drift on the default setting).

     

    True. The real purpose for playing that game was to find out whether it rolls over the score when it reaches 8 digits (it doesn't).

     

    Would have been easier (but less fun) to use the monitor in the emulator to set the score...

     

    Star Raiders on easy is too boring to play, at least in Defender you *can* get killed.


  14. For one thing, you can use remappable keys. Games like Star Raiders or Defender become way easier when everything is on the controller.

     

    If Defender got any easier, I'd never be able to die :)

     

    Seriously, last time I played Defender was on hardware, played one game for something like 8 hours, final score over 10 million when I turned it off (hand was killing me, I still had 10+ extra ships). I don't think I could have gotten anywhere near that high using a modern D-pad style controller, but maybe I'm wrong.

     

    Of course I was playing on "One Player Easy" mode, next time I should try Hard instead.


  15. The SX212 has 2 interfaces: Atari SIO and regular 25-pin RS-232. Most people use it on the Atari with the SIO connector, which requires a special driver (usually called something like SX212.COM), but if you've got some app written for the 850 that just plain refuses to work with this driver, you have the option of using the SX212's RS-232 connector and an 850, like any other modem (in which case you use the plain 850 driver, of course).

     

    IIRC, SX Express had to be written because plain 850 Express won't work with the SX212 driver (it complains that the 850 is missing). I used to use Bobterm with an SX212, back in my BBS days... these days I might use Ice-T instead.

     

    BTW, the SX212 driver also works with the SIO2PC...


  16. I think just about any low level OS upgrade like an UltraSpeed or something is neccessary if only to improve the horrible default math routines.

     

    Unless you're doing heavy calculations in BASIC (or Turbo BASIC, BXL, etc), the crappy math routines aren't a problem. Very few programs other than languages use them... I've been testing Thomas Richter's OS++ (which has *no* math routines, crashes if something calls them) with various software, and I have yet to find a (non-BASIC) game that uses the math ROM. I haven't tested any business software (I suspect spreadsheets would use them), but really who seriously tries to run a business on an Atari 8-bit in this century?


  17. Better late than never... when I saw this post I started writing a detokenizer, then quit when ddez posted the BASIC version...

     

    Went ahead & finished, and added a few nice options. It's called "unmac65", written in C, can be compiled for Linux/Mac/Windows/etc with gcc or for the Atari 8-bit with cc65. Hopefully someone will get some use out of it.

     

    Source + documentation: unmac65_0.99.tar.gz

    XEX file for Atari: unmac65_xex.zip (get the tar.gz file for the docs, too)

    • Like 1

  18. Has anyone else tried to build this source? I had to fiddle with it a bit... the best way I came up with was to assemble to memory, with an offset (.SET 6 in mac/65), then write a little program to take the in-memory image & turn it into boot sectors, DOS.SYS, and DUP.SYS on a new floppy.

     

    If anyone's interested, here's my set of instructions + utility program: build_dos_2.5_1.0.zip

×
×
  • Create New...