Jump to content
IGNORED

Altirra 2.60 released


phaeron

Recommended Posts

But you could just rotate down and then swap the first two using existing facilities to achieve the same result, although this wouldn't suit more heavily contrived scenarios.

 

Let me take a look at that idea...

 

Bzzzt. Nope. ;)

 

Anyway, it's not a big deal, but if Avery wants to put it in great. While doing all this poking around in there, I also had a new thought for an improvement. Not sure how doable it is but here goes: how about per drive "emulation level" setting? Not important to me, but, perhaps with the goal in mind of matching real hardware as possble it's a good idea. Real systems often have a mix match of different style drives.

 

For example, I used to have a 1050 Happy, and a 1050 USD. I even had a Rana 1000 in the mix at one point. Anyway... just had the thought and threw it out there.

Edited by fujidude
Link to comment
Share on other sites

I have now flashed 'ATBasic' to one of my "Ultimate1MB"s 'BASIC' slots and use it as the default BASIC on my hardware. So far so good! I have not used the language for many years, certainly not to the depth I would need in order to immediately spot the advantages of Phaeron's work. However I wonder if someone could point out the highspots as it were? I believe it executes more quickly for one, but there must be others!

 

Is Phaeron planning on adding any features beyond what the original possesses? For instance I would give a lot to have a native 'INKEY$' reserved word like just about every single other flavour of BASIC that exists!!! Why Atari did not include it is something I have never understood and it used to cause me huge huge frustration as a child, trying to transliterate the many programming books at the library for machines like the Spectrum into something the relatively uncommon Atari could understand.

Link to comment
Share on other sites

Attached is the latest version of the Altirra BASIC manual. 19 new keywords are supported over Atari BASIC in v1.41.

 

INKEY$ is actually pretty tough to implement on the Atari, because CIO does not have a 'peek bytes' command. This makes it difficult to portably implement INKEY$ since it is not easy to predict whether a read from E: or K: will block. The OS handles several keys internally, and in addition, the keyboard translation table is not exposed prior to the XL/XE OS.

 

atbasic.pdf

  • Like 3
Link to comment
Share on other sites

Hi!,

 

Attached is the latest version of the Altirra BASIC manual. 19 new keywords are supported over Atari BASIC in v1.41.

 

INKEY$ is actually pretty tough to implement on the Atari, because CIO does not have a 'peek bytes' command. This makes it difficult to portably implement INKEY$ since it is not easy to predict whether a read from E: or K: will block. The OS handles several keys internally, and in addition, the keyboard translation table is not exposed prior to the XL/XE OS.

The way it is handled in TurboBasic is using a table of "not allowed" values for CH, calling GETK if it is not in that list:

 

X_INKEY($DA4A):
    LDA CH
    LDY #0             ; Returned string length
    CMP #$C0           ; Any value > $C0 is not a valid key
    BCS ReturnString   ; So, return empty string
    LDX #14
CmpTab:
    CMP InvalidKey, X
    BEQ ReturnString   ; Also invalid value, empty string
    DEX
    BPL CmpTab
    JSR GETKEY         ; Calls GET from K: Handler ($E424/$E425)
    JMP ReturnString1  ; Returns string of length 1 (part of CHR$)


X_CHR($DA63):
    JSR X_POPINT       ; Get INT from stack
    LDA FR0            ; Load value to return as string

ReturnString1:
    STA $5C0
    LDY #$01           ; Length of string = 1
ReturnString:
    LDA #$C0
    LDX #$05
    STX FR0+1          ; Address = $5C0
    STA FR0
    STY FR0+2          ; Length = Y
    LDA #$00
    STA FR0+3
    STA $D3
    LDA #$83           ; String value
    STA $D2
    JMP X_PUSHVAL      ; Return

InvalidKey($DC93):
    .byte $9A,$98,$9D,$9B,$B3,$B5,$B0,$B2,$A6,$3C,$7C,$BC,$27,$67,$A7
So, the implementation is 40 added bytes (without consideration of parsing and jump tables).
Link to comment
Share on other sites

Attached is the latest version of the Altirra BASIC manual. 19 new keywords are supported over Atari BASIC in v1.41.

 

INKEY$ is actually pretty tough to implement on the Atari, because CIO does not have a 'peek bytes' command. This makes it difficult to portably implement INKEY$ since it is not easy to predict whether a read from E: or K: will block. The OS handles several keys internally, and in addition, the keyboard translation table is not exposed prior to the XL/XE OS.

 

 

I really enjoyed reading that!!! It is fascinating, now I have a basic (ho, ho, ho) grasp of ASM to learn how BASIC actually goes about its business. Some of your additions are extremely useful indeed, particular the file control commands. They should have been part of 'Atari BASIC' from the start. Obviously RAM disks and the increasing ubiquity of some form of expanded memory have somewhat reduced the tediousness of shelling-up to DOS and then back down for many users, but those commands are nonetheless very valuable.

 

One area you might consider (aside from INKEY$!) is brining some form of BASIC control of P/M graphics. Much as with the filing commands. I never really understood why there was no dedicated BASIC method of utilizing PMG - especially as they were such a major differentiating and powerful feature of the Atari 8-bits. Obviously you could peek/poke and use string manipulation, but to some extents these are largely hacks or ingenious jury-rigs. I think if PMG had been more accessible to beginners the entire machine might have enjoyed more market penetration. Again though, I dare say the 8k size limit would make this difficult if not impossible.

 

As a matter of interest how much room do you have left after implementing the language as it now stands?

Link to comment
Share on other sites

A feature request, or question of how to do something. Totally off and away from the current discussion.

 

Is it possible to have Altirra provide (or provide for) audio input (somehow) into the emulated computer? For voice recognition experiments and perhaps controlling existing applications? Through Basic? And/or the emulator shell?

 

I was just recalling an old experiment where I used an Apple II and relay card I built back in the day. And it was hooked to the Atari 800 keyboard. I'd say "shields" into a microphone and it would flip the relay attached to the "s" key, and thus activated the shields in Star Raiders. I had the whole list of commands covered and probably had going what was the only voice activated version of Star Raiders ever done!

 

Just a thought..

Link to comment
Share on other sites

My only request: Full support for cas files (save, etc)

 

I'm with you there Atari_Force, but Phaeron has explained before - after I myself asked for exactly the same thing - that it will never happen. He disliked using cassettes when he was young and given all their faults does not want to implement them. I have even tried to save the audio from a 'CSave' session and use that as raw input for the tape loader, but even with signal processing I could never get it to work. Personally I would love to be able to rediscover the 'joys' of using a cassette and 'Start+Option+Beeeeep' loading... but I wouldn't hold your breath!!!

 

Genuinely this and the lack of a complete 'Happy' simulation was what prompted me to finally dig out my old 800XL. That way I can have the best of both worlds, but I appreciate not everyone has old kit hanging around.

  • Like 1
Link to comment
Share on other sites

I have to agree, the cassette recorder is pure evil. One of the happiest days of my Atarian life was when I got rid of the thing and bought a (used) 1050 Top Drive + a pack of floppies.

 

I cannot describe the pure joy when I was given a third-hand 1050 by my uncle... It is foolish to say it, but having a 'Disk Drive' was my greatest wish as a 12 year-old... and 13 year old... and 14 year-old!!!

  • Like 2
Link to comment
Share on other sites

I'm with Phaeron on this. Other than perhaps the possability that there is just some mega awesome piece of software that is on cassette only (doubtful), I see no reason someone with access to disk drives (which includes everyone in the case of an emulator like Altirra) could possibly have a use for a cassette drive. I get the nostalgic desire to press the start button when powering on and hear the beep, but that alone is too weak to justify the programming effort, especially when that effort could be put to more productive use in bug fixes or other more useful features.

Link to comment
Share on other sites

I'm with Phaeron on this. Other than perhaps the possability that there is just some mega awesome piece of software that is on cassette only (doubtful), I see no reason someone with access to disk drives (which includes everyone in the case of an emulator like Altirra) could possibly have a use for a cassette drive. I get the nostalgic desire to press the start button when powering on and hear the beep, but that alone is too weak to justify the programming effort, especially when that effort could be put to more productive use in bug fixes or other more useful features.

 

That is a very reasonable point fujidude and I certainly agree the areas you mention should take priority. However, terrible as they were in many ways; the 1010 and her elder sister formed a critical and foundational piece of hardware in the Atari ecosystem. Its conspicuous absence in Altirra is pretty significant, more significant I would say than some of the quite esoteric devices which the emulator does simulate.

 

Another important point is there were some absolutely fascinating mods for the 1010, especially from Eastern Europe that it would be really interesting to try out and explore. I do not for a second expect my argument to change Avery's mind, but I do believe it is valid.

  • Like 1
Link to comment
Share on other sites

Of course your argument is valid Morelenmir... the real hardware had cassette drive available, so emulating them to a highly functional degree is a valid goal for an emulator. But... for my own curiosity... would you mind sharing how you, personally, would make use of such enhanced emulation?

  • Like 1
Link to comment
Share on other sites

I enjoy simply experiencing the hardware - even as a simulation. I'm quite serious when I have said before that I enjoy just formatting disks; trying out and appreciating the different capacities, using the various commands to copy things over. For instance I never run with the SIO Patch activated because I want to 'feel' the texture and characteristics of using a real 1050. In the same way I now and then would like to recreate the rigours of typing in a BASIC listing from "Page6" say and then having to save it to tape; the endless wait for it to be written, keeping an ear ready to detect the muffled buzz than indicated it had not saved a block properly and you had to start again. Presumably any putative cassette emulation Avery might produce would be free of the defects of a stretched tape or dropout, but still... I can remember the pleasing terror you felt each time you saved to tape and... would it load or would you have to type it all over again???

 

From a more practical standpoint I would enjoy learning the technique that is mentioned in the '400-800 BASIC Reference Manual' of chaining programmes through 'Run C:'. Not to mention the fascinating, stoneage 'multimedia' experience the cassette deck offered like those huge binder-like language education kits. I had those for both French and German and you absolutely cannot recreate that through any medium but tape.

 

At the end of the day I suppose using any emulator is really defined by what you want. If its access to the old retro games - which is something I absolutely enjoy as well - then the more rarefied features are not very appealing. But I myself primarily use Altirra because I want to feel what it was like to use an 800XL again, including all the machines I knew about but could never afford. A cassette is part of that experience for me.

 

Again though, this is all just how I see things and I don't claim it is any more valid or pressing than any other user's opinion.

  • Like 1
Link to comment
Share on other sites

If there had been things like 'Invade-a-load' on the Atari I'd ask for more cassette emulation but at the end of the day its a prehistoric way to load software, you can still do it but all these calls for turbo loading cassette hardware emulation are just pointless because in the end its one hell of a lot of work for Avery and there's both DIsc and cassette versions of all the stuff out there.

 

As for Happy 'programming', again funky as a complete part of emulation but there's no virtual physical usage unless watching a virtual disk being copied to another virtual disk floats your boat.

  • Like 2
Link to comment
Share on other sites

Would you believe it does? I enjoy just... using the hardware. I can't describe it any better than that. Anyway, 'Happy' is no longer an issue for me as I have a real one to play with. Nonetheless I do believe some form, no matter how minimal of saving to a *.CAS file would be nice. But again, once you have a working machine these edge cases loose their importance. Altirra is primarily for me now a testing ground and sandbox.

 

Which does lead on to the often discussed feature of writing directly to mounted CF cards... But I know that is a bit vexed as well.

  • Like 1
Link to comment
Share on other sites

I hear ya morelenmir. I think as we all sit and communicate in 2015 about computer systems essentially designin in the late 1970's, it is self evident that we all have some thirst for nostalgia; all of us. :) I do think that there are different levels of thirst, and variances in the specific type of nostalgia we each might be after. I certainly appreciate where you're coming from.

 

Myself, the nostalgia takes a little bit different form. Back in the day when I used the real iron, I was ever the enthusiast about new hardware and software that expanded the capabilities of my good ole' 800XL. I had a BlackBox, SDX (from ICD), RAMBO-XL memory upgrade, R-Time8, and the list goes on and on and on. I absolutely LOVED enhancing my Atari! So even back then, once I was able to move onto better things I dropped use of the flaky and slow cassette like a bad habit. I didn't miss it then, and I don't now. I get my nostalgia fix now by running Altirra and "installing" things like VBXE, U1MB, SIDE2, etc. And the pure awesomness that is the continually updated SDX is a big part too. Altirra lets me do all of this. Oh yeah, putting in a 65C816 is another wildly interesting feature too. So it is like I am going back in time, and being able to get darn near every cool bit of hardware and software I want. That's what's yanking my crank. :D

Edited by fujidude
  • Like 4
Link to comment
Share on other sites

As peerless as Altirra is, and as remarkably authentic the emulation, there are probably some experiences that only digging out the real hardware can provide. If anyone were about to sit down and develop floppy drive code upload software with a potentially wide user base, then emulating it might be useful (as we have emulated JEDEC flashing, etc, which has proved invaluable for me and others), but most drive upgrades are just intended to increase access speeds or provide broad compatibility, both of which Altirra's drive emulation already has pretty much covered.

 

Which does lead on to the often discussed feature of writing directly to mounted CF cards... But I know that is a bit vexed as well.

It seems to me the biggest obstacle is that Windows requires removable media to be recognized as a fixed disk before it'll let you access a partition table. Since a partition table is more or less essential when using APT volumes (unless one foregoes the protective MBR, or simply uses the media with the SIDE loader and nothing else), there's an immediate risk of nuking the C: drive when mounting the CF card from a list of fixed disks. At least that's my understanding of the problem. There may be other ancillary drawbacks (which Avery may have elaborated on in one of the other Altirra threads), which make the option to remove this safety feature more complex than it might seem.

Link to comment
Share on other sites

I didn't have money for a disk drive back in the 80s. I only had the 410 cassette and had to envy others with floppy drives. The only thing I hated more than working with cassettes was.. well, nothing, really.

 

The most value I've seen for a cassette device is The Atari Educational System.

 

The only other reason I can think a person might want tape is that a direct-to-run game loads directly from tape without DOS, though this is easily done from disk with a small bootloader.

 

I'd rather see something else clever built into the OS than the C: device.

  • Like 3
Link to comment
Share on other sites

Now that Cassettes have been mentioned I'd like to see some improvements in utility and usability in Altirra toward that end. Just the basics like the ability to save a wave and read it back. More for completeness as opposed to useful functionality. If it happens that's great. If not that's alright. I can get my fix of cassette nostalgia via Atari800 Emulator and the A8CAS patch/toolkit.

 

 

I think as we all sit and communicate in 2015 about computer systems essentially designin in the late 1970's, it is self evident that we all have some thirst for nostalgia; all of us. :) I do think that there are different levels of thirst, and variances in the specific type of nostalgia we each might be after. I certainly appreciate where you're coming from.

 

I hate to say it but I've learned more about how the 400/800 work through emulation than I did when I was dick'n around with the real hardware back in the day. Maybe I was too young a shit-faced kid back then.

 

Well, I like messing with all these memory and accelerator options today. You see. I get to play with simulations of hardware I couldn't afford back then. Not to mention all of the new tools developed since the 80's. All my chore and help-for-hire and lawn mowing money went toward buying Apple II stuff. I was knee deep in everything Apple II at the time. Had I gotten the Atari 800/800 earlier and first, I might have went in that direction.

 

I also like being able to adjust the colors correctly and have them stay put! I remember constantly fiddling with the potentiometer hue/color dials on our early Panasonics and Zeniths. I would adjust them to the endless annoyance of my parents and grandparents. Every time I hooked my stuff up to play I got a free no-cost lecture about not breaking the TV.

 

But most of all (like most of you) I liked to collect stuff back then. I liked to build gaming libraries and have instant access to any game at any time. So I used PFS (Personal Filing System) on the Apple II to record information about the "ware". Was it a game? utility? programming tool? How many sides? Copy protected? Original / pirated? Single file? if so how many sectors? And so me and my buddies worked around the clock cataloging all this information into PFS. We never fully finished it all because when we got to around 400 entries the random search got real slow. Only the 1st data field remained lightning fast. And there was a 1,000 item limitation anyways. We had it going to where you'd type the name of the program, and it would tell you what 3-ring binder and page it was in. Sometimes flipping through the disks in a pile was faster!

 

So we stuck with the pile, unconsciously keeping the newest and most favorite material on top. This applied to Apple II and Atari 400/800 material alike. And other disks, too, like C64.

 

Back then I could only dream about instant access to any game, any tool, any program, any time. From one device.

 

Getting my first 10MB disk drive for $699.00 was still a far cry from what we have today with emulators and modern Windows + NTFS + File Explorer. But I was the SHIT. I could load any game in just seconds with that bad boy. And I packed like 100 single-file, single-load games onto it. I was dismayed that not everything would run from it because of copy protection and various non-standard format (cracked) disks. And it was typically adventure games that didn't, and yet they were the ones that would benefit the most. They always seemed to access the disk while parsing a command.

 

Together with "accelerated" SIO patches and simply having disk images on modern storage devices, is just too cool for school. Now I really do have instant access to all my old games in a way we could only nebulously fathom.

  • Like 1
Link to comment
Share on other sites

Woah, Keatah... You and me see this identically!!! I would quote your whole post, but I don't need to - just, 'yep' says it all! I agree. I'm not sure if the 'like/unlike' functionality here works like upvotes and downvotes do on other boards, but you got a 'like' all the same!

 

Really, really well said.

Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...