lotus

previous page: 06.035 How do I create a folder?
  
page up: Apple II Csa2 FAQs
  
next page: 06.037 How can I convert DOS 3.3 wares to run under ProDOS?

06.036 How do I access ProDOS routines from machine language?




Description

This article is from the Apple II Csa2 FAQ, by Jeff Hurlburt with numerous contributions by others.

06.036 How do I access ProDOS routines from machine language?

         You use the ProDOS Machine Language Interface (MLI).  The MLI is
responsible for carrying out nearly all of the functions (Read Block, Write
Block, and 24 others) which ProDOS can perform.

     Machine language programs call ProDOS by doing a JSR to the MLI at $BF00.
To determine which function to perform, ProDOS examines the "command" byte
immediately following the JSR instruction.  Immediately after the command byte
come two more bytes that point to the command's parameter list.  When the call
completes, it returns to the code immediately following the parameter list
pointer. A ProDOS MLI call looks something like this:

20 00 BF  JSR     MLI
80        DB      COMMAND_CODE
50 03     DW      PARAM_LIST_LOCATION
B0 __     BCS     ERROR

In the above, the command code ($80) says "Read a block" and the parameter list
is located at $0350. The MLI call returns with the carry flag set and an error
code in the accumulator if an error occurred; so, a simple error check (the
Branch if Carry Set instruction) is often the next instruction which is
executed.

     For a detailed description of functions including command codes and
parameters, see a ProDOS manual or one of the other references mentioned in Q&A
040 below.

_______________________

By:  Rubywand
    

 

Continue to:













TOP
previous page: 06.035 How do I create a folder?
  
page up: Apple II Csa2 FAQs
  
next page: 06.037 How can I convert DOS 3.3 wares to run under ProDOS?