💾 Archived View for mirrors.apple2.org.za › archive › ground.icaen.uiowa.edu › apple8 › Languages › … captured on 2023-01-29 at 10:51:42.

View Raw

More Information

-=-=-=-=-=-=-

    Amperdos v1.0
    (c) 1999 Kandi's Kreations

{Intro}
    Welcome to Amperdos. A replacement for Basic.system. While Amperdos may
not give you all the functionality of Basic.system it will give you some
functionality that Basic.system doesn't offer.

    I created Amperdos because I wanted a basic environment that supported
128k. I never had the time before and/or the resources to do all this. Then
came the internet and access to some Apple ][ info which I previously did not
have. After I found the program RDOS for P8 and found the archives of Beagle
Brothers programs I had the tools I needed.

    Many thanks to MM McFadden for RDOS. More thanks to the great programmers
at Beagle Bros for creating such great programs and releasing them as freeware!

    Amperdos is basically a HACK! I did not create a whole new program but
modified RDOS to meet my needs. The source for Amperdos has changed so much
that it barely resembles the original but there is still a lot of the RDOS
code in there. Unfortunately, this makes the code somewhat ugly. It really
needs to be cleaned up more or even re-written. Due to the complexity of this
task I have not undertaken it yet. So please don't laugh at the mess!

    Notes:
    I patched Extra K to work with Amperdos then converted it to a text
file to be assembled into the source. This allows a single system file to
be used on stand alone programs. Credit to Beagle Brothers is displayed at
startup. Your STARTBASIC program should give adequate pause to display this
credit.

    I also patched the program editor from the Program Writer series. I wanted
to use the LC version but it conflicted with Extra K. So we're stuck with the
standard version. This is not a problem since Amperdos programs can easily be
chained together and there is still approximately 27k free while editing. The
editor is not needed during program runs and stand alone applications so you
may use this memory (with care) if needed for things like machine language
code. The editor has it's own jmp vector and is patched to use it. It won't
work under Basic.System because of this.

    Amperdos runs strictly by using the ampersand vector! You must remember
this if you add other ampersand utilities. Most binaries of ampersand utilities
will disconnect Amperdos. You can get around this by patching the utility to
use the external vector in amperdos. See the source code. If you have the
source for these utilities you should modify them to chain the Amperdos vector
ie: store the address in Amperdos at a jmp location in your code then place
your M/L address in the Amperdos extra vector.
    Amperdos was designed to allow external routines by using character tokens
to define the type of function desired. This allows a programmer to use other
Applesoft tokens in their m/l code. This makes the basic code look a little
cryptic but allows for greater flexibility with other utilities. It also allows
me to use the same tokens for different functions if needed.

For example:
 AMPERDOS uses
 &=list         - catalog current path

 YOUR CODE uses

 &list          - whatever desired

Thanks to the = token you can use the list token for whatever you want.
Currently Amperdos only uses the = token and the ^ token. This may change
later. If so I will try to use the ~ token or some other punctuation
character.


There are both advantages and disadvantages to using Amperdos:


    The disadvantages include: (but may not be limited to)

    Hardware requirements. Amperdos will not run on all Apples.

    Basic.system has some functionality which is not
    included or difficult to implement in Amperdos.  

    Currently Amperdos reads text files one character at a time.
    This is a bit slow but I haven't taken the time to change the
    original code yet.

    Variables are stored in aux memory. This makes it a bit harder
    to code some m/l routines which access variables. There are
    simple ROM routines which can access them - see source code.

    Extra K doesn't clear the string space in the aux language card
    area. Normally this should not be a problem but you may need to
    keep this in mind. This is mainly important with garbage collection.
    Extra K does garbage collection itself!

    P8 functions require the filename be a quoted string or string
    variable. You get used to this though. This follows the Applesoft
    standards. If the quoted string is at the end of the line or the
    last command on the input line you can leave the trailing quote
    off.

    Has limited error checking. I am working on this but it may require
    the code to be rewritten. It does have some trapping but I can't remember
    what all it is at the moment.



    The advantages include: (but not limited to)

    Fast and simple program chaining. Simply &=run"nextprogram"
    all variables are passed intact! Note: The Applesoft RUN
    command will clear variables as expected!

    No character scanning like Dos 3.3 and Basic.system. This results
    in faster execution.

    Load your program wherever you want from $2000 to himem just by
    including the address in the run command. This could be useful
    for graphics programming. Himem is currently $B000 without the
    AMPED program loaded. You should probably check it if you need
    to load programs that high in memory.

    Uses it's own filetype code. It is listed as AMP in Amperdos but
    it really is the BA3 filetype. I used this one because I have never
    seen a BA3 file in a P8 disk directory. They may exist but aren't
    common.

    It will load (but not save or run) BAS files. This allows for converting
    Basic.System programs.

    Has functions to simplify screen access. I hope to add more.

    Defaults to 80 column. Most of the time this is what you want. It will
    also run in the extended 40 column mode which may be neccessary for
    graphics programs on standard composite monitors.

    Screen functions follow the VTAB/HTAB standard of screen locations. IE:
    1..24 x 1..80. This allows you to do something like the following code
    and get the results you expect.

    10 vt=10:ht=50
    20 &^tab(vt,ht)
    30 print "HI";:htab ht+5:print "THERE"

    Has a simple popup screen window to overlay a warning or such without
    damaging the screen when removed. See DEMO1 and DEMO2

    Lots of free memory. About 60k for variables. See DEMO1.

    Is copyright by me but you may use it however you like!



{Required Hardware}  
    An Apple ][ with a 65c02 processor and 128k memory
    An 80 column card in slot 3


    or an Apple emulator which meets these specifications

    I like ApplePc 2.52 for MSDOS. But beware. It has a bug
    in the keyboard code and sometimes gives the wrong key.
    (This doesn't seem to be happening as frequently on my
     Pentium II system. May be an old BIOS bug?)

    I like Apple Oasis for Windows. This program is shareware
    but offers the most configurability. It also offers the
    best support for printing since it uses the Windows printer!
    It does not have the best graphics output due to Windows but
    the text screen is great and you can even change the screen
    colors. I use white text on a blue background.

    I like KEGS (Apple //gs) emulator for Linux. This is actually
    my favorite emulator. But I like Linux too so I might be a
    bit biased. Kent still supports this program and has done
    an excellent job on //gs emulation.




{MORE NOTES}
    I should probably add more documentation. If you are an Applesoft
programmer. You have a good idea of how to use it. If you develop something
useful with it please send me a copy. I am an avid Apple user and fan!
Hopefully I will have a web site online someday to help Apple users around
the world. Until then you should be able to EMAIL BluPhoenyx@aol.com.

{CURRENT FUNCTIONS}



&=LIST or &=LIST"PATH"
    Catalog current directory or specified directory

&=LOAD "PATH" or &=LOAD "PATH",ADDR
    Load an Amperdos program

&=RUN "PATH" or &=RUN "PATH",ADDR
    Run an Amperdos program

&=SAVE "PATH"
    Save an Amperdos Program. Deletes the original then saves!

&=STORE "PATH",ADDR,LENGTH
    Bsave a section of memory

&=CALL "PATH"
    Brun a machine code file

&=RESTORE "PATH",ADDR
    Bload a binary image

&=DEF "PATH"
    Create a text file

&=PRINT "PATH"
    Open a text file for output. Use standard PRINT to write text

&=READ "PATH"
    Open a text file for input. Use INPUT to read text.

&=END
    Close a file. Actually closes all files but Amperdos only
    has one file open currently.

&=DEL "PATH"
    Delete a file

&=^ NUMBER
    Change drive number. Either 1 or 2 allowed. Sets Prefix

&=* NUMBER
    Change slot number. Range 1-7. Sets Prefix

&=/ "PATH"
    Change current P8 path. You must specify a path. don't use "/" or P8
    will get confused!

&=STOP
    Quit to Prodos.

&=USR "PATH"
    Simple EXEC function. Currently cannot use Amperdos functions inside
    the exec file. This is mainly useful for loading a text version of
    a program. You should be able to create such a file like this.

    1 &=DEF"TEMP.FILE":&=PRINT"TEMP.FILE":LIST 2-:&=END:END

&=IN# NUMBER
    Read a block from disk. This is new and little tested. Block
    is loaded to the data buffer at $BB00. This function is provided
    for advanced programmers. See &=PR#

&=PR# NUMBER
    Write a block to disk. This is new and little tested. Block is
    written from the data buffer located at $BB00. This function is
    dangerous and should NOT be used unless you know what you are
    doing. Nuf said!

&=NEW "PATH"
    Create a subdirectory. 




&^SCRN( TOP,LEFT,WIDTH,HEIGHT)
    Sets the text window. Easier than poking and uses the screen standards
    You don't have to remember to subtract 1 for the sizes!

&^INVERSE
    Turn on mousetext!

&^NORMAL
    Turn off mousetext.

&^TAB(VT,HT)
    Sets the VTAB,HTAB cursor location.

&PRINT TOP,LEFT,WIDTH,HEIGHT,STRING
    Display a popup window. See DEMO1 and DEMO2. This can be a bit tricky.
    I hope to add other screen window functions someday. Currently you
    can only display one window.

&^LOAD "PATH"
    This is an oddball! I wanted to load Basic.system programs.



{EVEN MORE NOTES}

    Amperdos is copyright 1999 by Kandi's Kreations. It is released
    under the same principals as the GNU license. The GNU license is
    not included due to limited disk space but you can find it all 
    over the net! We reserve the right to make changes to the code
    without notification to anyone. If you have changes you would like
    to see in the system please send them to me so I can include them in
    the official release. Credit will be given where due!

    I know there is not much call for 8 bit Apple software. But I have
always loved the Apple II systems. Even if we can't get support from
Apple Inc. we can still get support from those who still use them. I
intend to use mine till the system is dead! All I have left is my //c
but I've aquired enough parts to keep it going till I die! This was my
first ever computer so I guess I'm biased. :-)

    That's it for now. Enjoy Amperdos!