home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpmug / cpmug035.ark / EXECSAFE.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  72 lines

  1. ; 8 SEPT; REMOVE DOUBLE QUOTE STUFF.
  2. ; MOSHELL
  3. ;
  4. ; THIS CODE READS IN 'EXEC.OBJ' AT 2800H AND STARTS IT UP.
  5. ; IT ALSO STASHES THE FILENAME OF THE FEX-FILE TO
  6. ; BE EXECUTED, FOR THE EXEC.OBJ TO WORK WITH.
  7. TRFLAG    EQU    5095H
  8. FCBMOV    EQU    5051H
  9. SYSFCB    EQU    5CH
  10. DSKRD    EQU    5039H
  11. EXEC    EQU    5018H
  12. * THIS SECTION OF CODE READS IN EXEC AND TURNS ON THE DAZZLER FOR US
  13.     ORG    100H
  14.     LXI    SP,1000H
  15.     CALL    SURVIVAL    ;FIRST WE MAKE SURE ITS
  16.                 ;WORTHWHILE TO CONTINUE.
  17. * ASSUME A .FEX EXTENSION ON OBJECT FILE
  18.     LXI    H,SYSFCB+9
  19.     MVI    M,'F'
  20.     INX    H
  21.     MVI    M,'E'
  22.     INX    H
  23.     MVI    M,'X'
  24.     LXI    H,SYSFCB
  25.     LXI    D,DUMMY
  26.     CALL    FCBMOV    ;SAVE FCB OF FILE TO EXECUTE
  27.     XCHG
  28.     PUSH    H    ;SAVE @ OF THAT FCB
  29.     LXI    H,EXCFCB
  30.     CALL    FCBMOV    ;GET READY TO READ "EXEC.OBJ"
  31.     LHLD    EXEC+1    ;GET EXEC START ADDRESS
  32.     CALL    DSKRD    ;READ "EXEC.OBJ" THERE
  33.     POP    H
  34.     CALL    FCBMOV    ;RESET SYSTEM FCB TO FELIX PROGRAM
  35. ;
  36. ; TRACE NOT WANTED
  37. ;
  38.     XRA    A
  39.     STA    TRFLAG
  40.     JMP    EXEC    ;EXECUTE THE FELIX PROGRAM SPECIFIED
  41. * DATA AREA
  42. DUMMY    DS    33    ;DUMMY FCB
  43. EXCFCB    DB    0,'EXEC    ','OBJ',0,0,0,0
  44.     ORG    EXCFCB+32
  45.     DB    0
  46. ; 16 JULY 79 : MOSHELL
  47. ;
  48. ;TACK ON CODE FOR ROUTINES THAT EXPECT THE 'FELIX' UTILITY
  49. ;PACKAGE TO BE IN RESIDENCE. CRIES 'HELP HELP' (ACTUALLY
  50. ;IN A DIGNIFIED WAY) WHEN THE DISPATCH TABLE
  51. ;AT 5000H IS MISSING. CALLS CPM BIOS...JUMPS TO WARM BOOT
  52. ;IF THE TABLE ISN'T THERE.
  53. ;
  54. ;THIS HAS NO ORG BECAUSE IT'S TACKED ON TO STUFF.
  55. ;
  56. BIOS    EQU    5
  57. CPM    EQU    0
  58. SURVIVAL:LDA    5000H    ;WHERE 'FELIX' STARTS.
  59.     CPI    0C3H    ;IS IT A JUMP?
  60.     JNZ    BAD    ;IF NOT WE'RE WITHOUT UTILITIES.
  61.     LDA    5003H
  62.     CPI    0C3H    ;IS THERE ANOTHER ONE?
  63.     RZ        ;IF SO WE ASSUME ALL'S WELL.
  64. BAD:    LXI    D,TEXT
  65.     MVI    C,9    ;CALL FOR TEXT-PRINT
  66.     CALL    BIOS
  67.     JMP    CPM
  68. TEXT:    DB    'PLEASE LOAD THE FELIX UTILITIES BY '
  69.     DB    'TYPING "FELIX" FIRST.',0DH,0AH,'$'
  70.     END
  71.