Jump to content

drac030

Members
  • Content Count

    2,578
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by drac030


  1. 4 minutes ago, DjayBee said:

    You can find all PORTB settings for standard RAM extensions in phaeron's Altirra Hardware Reference Manual starting from page 32.

    There is an error there, though: the table on page 33 lists the 192k extension as RAMBO, without separate ANTIC access. Maybe such extensions exist too, but the whole point of using bit 6 in 192k for banking is to keep bit's 5 function of controlling separate ANTIC access. So it is not RAMBO-type.

    • Like 1

  2. The overlap is not a big problem, most RAM testing procedures are aware that some extensions have this "feature" (e.g. 256k already mentioned), for example:

     

    http://atariki.krap.pl/index.php/Obsługa_standardowego_rozszerzenia_pamięci_RAM

     

    The overlapping banks are skipped (so that a program trying to use the extended banks will not accidentally pull out the carpet from under its feet, so to speak). The procedure should still be put outside the area which can be possibly swapped out. In general, this is a nuisance rather than a useful feature IMHO.

     

    Also, using PORTB bit 0 to swap banks is certain to cause incompatibilities, because programs expect the ability to swap the OS ROM in/out regardless of the state of the remaining PORTB bits, and, conversely, that doing that does not switch the extension bank which has already possibly been selected and swapped in. That is why the extensions to 2 MB are not in use, although they were designed in the past.

     

     


  3. 8 minutes ago, DjayBee said:

    IMHO it's strange that SDX crashes if something modifies MEMLO.

    It does not crash. Nor "modifying" the MEMLO is the problem. SDX tries to prevent programs from overwriting the system (the "Cubbyhole optimization" fellowship & consortes). Everything between $0700 and MEMLO is considered the system, thus if a binary file tries to load a segment into that area, it gets shot down mid-loading with "179 Memory conflict" error and the system returns control to the shell.

     

    Here the MSBASIC sets MEMLO first to $6A00, then tries to load itself between $1E00 and that. Since the MEMLO points to $6A00, the loader thinks everything below are resident system components, and therefore does not allow loading.

    • Like 4

  4. 1 hour ago, DjayBee said:

    1: 65-65 [$0041-$0041] (1) $00 "00000000" ====> disable SIO sound
    91: 65-65 [$0041-$0041] (1) $03 "00000011" ====> enable SIO sound
    -: 54116-7552 [$D364-$1D80]

    I think these can be safely removed, especially that crap's at the end only purpose seems to be just obfuscating things, if I am not mistaken.

     

    1 hour ago, DjayBee said:

    2: 743-744 [$02E7-$02E8] (2) -> 27136 [$6A00] ====> MEMLO=$6A00

    This could be moved to the end, just before the last init, perhaps; otherwise the binary does not load in SDX. The result of the operation:

     

    MSBASIC.EXE

     

    This one loads under SDX and appears to run:

     

    obraz.thumb.png.a774d61b9df3e507e203a5cefb4f54f3.png

     

    • Like 5

  5. IMHO the best is to start programming as on 6502, then gradually get used to new features.

     

    I can observe that the thing which perhaps is most challenging are the variable-size registers: if the program does not work while it "definitely" should, then it is almost certainly the register size set different than expected in a place. It takes some time to get used to that. Therefore it is best to start off with some default size selected for the entire program, and change it only for particular tasks (subroutines), until remembering what is currently selected becomes automatic.

     

    New ELSA version on my site, by the way.

    • Like 2

  6. 7 hours ago, 576XE said:

    3. 4. - Can not be formatted...

    Error 160 is "invalid drive number". My guess is that not enough buffers have been declared to handle more than drives D1: and D2: (yup, it is not SpartaDOS, which handles this automatically).

    • Like 2

  7. 17 hours ago, Stephen said:

    Is anyone else having trouble with SC 1.07 (and the new SDX 4.49g) and the "Move" command?  Tagging multiple files works fine if I do a Copy, or Delete.  When I try Move, I get an error 156.

    I just checked it quickly, move works here. SCMAIN.OVL 15849 bytes, 15 Oct 2021 21:33. So more information is needed. BTW. 156 is Bad parameter, a weird error indeed. Could you try reflashing the ROM?

     

    15 hours ago, reifsnyderb said:

    The programming guide isn't too helpful, unfortunately.

    Its intention is to provide information on how to write application programs rather than drivers. I hope that the next version will contain that section too. What you seem to need is a sector I/O driver, the chapter dealing with that is to be found in this thread, here:

     

    There are few minor inaccuracies, which I fixed already, but they should not impair anyone much.

     

    11 hours ago, Kyle22 said:

    I found a typo early on in the Preface of the manual: "It is also assumed that terms such as "PORTB" are do not need to be explained."

    Yup, fixed, thanks.

     

    11 hours ago, Kyle22 said:

    Also, headers still say 4.48.

    That is to be fixed too, thanks.

    • Like 3

  8. IIRC, to access more drives in DOS 2, you first have to declare more buffers for disks. If you have 4 disk drives, you have to declare 4 buffers. If fewer buffers have been declared, expect problems.

     

    DISKFIX.COM is a tool to verify the continuity of the files and the integrity of the VTOC (aka disk bitmap).

    • Like 3

  9. On 1/5/2022 at 8:30 PM, ivop said:

    It's not about being compatible, it's about being as small as possible, and then do something neat.

    Something neat that does not work :D

     

    It is cheating IMHO. A 256-byte intro, which uses illegal OS calls, is not really equally the same as another 256-byte intro which does not use that. They should not be in the same category.

    • Like 2

  10. 5 hours ago, 576XE said:

    Is it possible to say MyDOS what disk will be bootable (FE D5:) while boot process in IDE+ 2.0 env?

    I think it needs patching MyDOS. IIRC, it loads DUP.SYS from "D1:DUP.SYS". So the thing to try is to binary edit the drive number in that string on the booted MyDOS in the memory, then write DOS files to the required disk. It may work. Did not try :)

    • Like 1

  11. The low level formatting is being done by the disk drive's firmware. The floppy is divided into tracks and sectors. After that, the disk is empty (all sectors contain zeros).

     

    The directory structure is created and written to the disk by the DOS. It is its internal fuction. XIO 255 and friends usually do both things, i.e. send a command requesting physical formatting to the drive, then write out bootsectors, directory sectors, VTOC and other things if applicable.

     

    The logical disk structure (directory, VTOC etc.) is completely up to the DOS.


  12. There is a new beta version of SpartaDOS X available on the relevant website: 4.49f, dated 31 December 2021. It can be downloaded from here: http://sdx.atari8.info/index.php?show=en_download_beta

     

    The list of changes relative to the previous beta, 4.49e, is available in the file whatsnew-4.49f.txt

     

    Perhaps the most important change in this release is that the CAR: device is no longer limited to 8176 bytes per file. The new limit is 7*8176=57232 bytes per file. To take advantage of that, you have to use the new SDXImager, which handles both formats (the new and the old one). The new imager program can be downloaded from here: http://sdx.atari8.info/index.php?show=en_addons

     

    Sorting the directories should now be much improved, as SORTDIR.COM now uses a new, much faster sorting routine. By "much" I mean 40-50 times faster than the old ICD code. The same sorting routine is used by Sparta Commander to sort directories in real-time for display.

     

    The ED text editor can now run on VBXE 80-column text console as well as on the software-driven 80-column text console (provided by RC_GR8.SYS).

     

    Besides, there were bugfixes and minor improvements all around.

     

    65C816 support

    ==========

    Also, this version comes with improved 65C816 support, which is now centralized in a form of unified driver, 65816.SYS (this one is for Rapidus OS, and there is another instance for AltirraOS/816, named 65816A.SYS). Owners of Rapidus and Antonia machines may want to put that driver onto the CAR: device before flashing the SDX ROM, along with the SIO816.SYS - these are available on the Toolkit disk, among few others which can be loaded from the HDD. The immediate effect of configuring the system to use these is that much more conventional RAM would be free - as the new drivers load to the RAM past the first 64k. All this is also usable on Altirra.

     

    The 65816.SYS driver, among other things, contains the binary loader able to load relocatable binaries in SpartaDOS X format to the RAM past the first 64k. Such binaries can be built using the assembler ELSA http://drac030.krap.pl/pl-elsa-pliki.php

     

    Below I am attaching some small demo program which may help to test, if the 65816 support stuff is properly configured. It requires VBXE. The source code is included.

     

    Have fun.

     

    stars3dr.arc

    • Like 11
    • Thanks 2

  13. 10 hours ago, phaeron said:

    I'd avoid using Atariki for register/variable names, which has a bunch of strange names like GTIACTL instead of PRIOR for $D01B.

    The alternative names Atariki lists beside (not "instead of") those have been in circulation in Europe (or at least in Poland) for more than 30 years now. I think most/all of them come from the reverse-engineered XL OS listings which were published here in printed form around 1989. So you may say that they were made up by someone (as if Atari's official names were not), but still, GTIACTL actually makes much more sense than "PRIOR".

    • Like 1

  14. 1 hour ago, zbyti said:

    The more poetic something is, the more difficult it is to understand.

    Actually, the poetry is difficult to understand only in two cases:

     

    1) the poet was/is bad and it is bad poetry,

    2) the poetry is good, but the reader does not understand the language.

     

    And I do not mean the language of the words, but the language of simple images being used to invoke other images in the reader's mind. Simple example: one could be confused when encountering a phrase like "the one who can see everything", unless we first learn the language of (this specific kind of) poetry and therefore know that this must be Helios, or the Sun.

     

    The same counts for sculpture or painting, a painted or carved figure will be completely anonymous, unless we know the language. E.g. if you find a sculpture of a woman in ancient dress and with an attic helmet, you would not need any caption to know that it is Athene. Similarly, if you see a religious picture of a man who defeated a dragon, it must be St. George, unless that man is winged, then it is Michael the Archangel.

     

    So, the principle here is as everywhere else: if something is difficult to understand, then it is either gibberish or you do not understand the symbols.

    • Like 1

  15. 12 minutes ago, Wrathchild said:

    I see it as highlighting the inflection.

    'e' in 'per' is more an 'uh', so sounds like purr' but in the 'se' its more like the 'ey' in 'hey', sounding like 'say'.

    You are right pointing out that "e" in "per" is short, whereas in "se" it is long. But still it does not really need emphasizing in script.

     

    PS. I now feel guilty for derailing the topic. And yet I cannot blame anyone else, than myself, for that. I probably should report myself to the administration and get banned :D

     

    • Like 2

  16. 4 hours ago, Kaj de Vos said:

    I have to make choices, the website is not a mind reader.

    That is perfectly understandable. However, the website's title says:

     

    Quote

    A New, Human-Friendly Programming Language

    And so, whereas "new", or "programming language" are not obviously striving for strict definition, "human-friendly", for the reasons specified above, may need some explanation on the top of the website, at least as long as the rest of it suggests in a veiled way that "human-friendly" = REBOL-like.


  17. 16 minutes ago, Kaj de Vos said:

    I agree about the confusion, so I added many qualifications to the website.

    Maybe some of these qualifications could be moved to the beginning of the explanations in the website, such as:

    Quote

    It's a project for REBOL fans

    and

    Quote

    REBOL has a human-friendly syntax of great clarity and is highly productive.

    because these two are greatly clarifying your definition of "human-friendly" :)


  18. That declared "human-friendliness" seems to cause much confusion here, perhaps it would help if you defined it more precisely. Because, as stated several times already, pretty much everything in this world is human-friendly, even king cobra, once you have already learned how to deal with one.

     

    From the mere declaration one expects the language to be intuitive, but it apparently is not your intention, for nobody needs to learn things which are intuitive (that is the definition of intuitiveness). So what does this mean really?

     

    • Like 2

  19. 16 minutes ago, TGB1718 said:

    As $A000 is affected I think SDX is doing something

    $A000-$BFFF is normally occupied by the SDX cartridge. If you want RAM there, use X command (as you did).

     

    17 minutes ago, TGB1718 said:

    the 16K memory window for the switched RAM blocks is having some effect, I thought it may be U1M

    but again SDX uses RAM through this window

    Yes, "USE BANKED" configuration, as you said, uses the Ext RAM, doing the memory banking at $4000-$7FFF. Any I/O call will result in the memory being banked, so if you put your interrupt routine there, expect a crash.


  20. Quote

    Speed-optimized MD5 hashing for MOS6502.

     

    Just as the title says. I tried to strike a balance between code size and performance, which resulted in around 2KB of code and around 1750 bytes/s when hashing on a Commodore 64.

     

    MD5.COM to be found on SDX Toolkit collection hashes 25040 bytes (the first file I grabbed as an example) in 6.94 sec (8.38 including loading from HDD), which gives about 3600 bytes/s. Sure, Atari is faster, but not twice as fast ;)

     

     

    • Like 2
×
×
  • Create New...