Listing 2

/* Executable string: drive select
   Assembly     Hex     Octal   Comment
    TFR   D,X    1F      037     transfer fcb addr to X
                 01      001
    JSR   $DEOC  BD      275     call the FLEX routine
                 DE      336
                 OC      014
    BCS   +3     25      045     branch if error (carry set)
                 03      003     3 bytes beyond this branch
    CLRA         4F      117     make D=0 (ACCB+ACCB=D)
    CLRB         5F      137
    RTS          39      071     return zero to caller
    LDD   #-1    CC      314     make D= -1 (ERROR)
                 FF      377
                 FF      377
    RTS          39      071     return ERROR to caller
*/

FILE  *fcb;
char  *drvset =
  "\037\001\275\336\014\045\003\117\137\071\314\377\377\071";

/* code fragment using drvset; reports and exits if error */
if( (*((int(*)())drvset))(fcb) == ERROR )
  errxit(fcb->errno);