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

  1. ; 8 SEPT 79; REMOVE DOUBLE QUOTES.
  2. ; I ADD THE SURVIVAL MODULE AND SOME COMMENTS.
  3. ;
  4. ; THIS ROUTINE IS IDENTICAL TO 'EXEC.COM',WHICH LOADS IN
  5. ; 'EXEC.OBJ' THHE ACTUAL EXECUTOR OF FELIX PROGRAMS...
  6. ; EXCEPT THAT IT SETS THE 'TRACE' FLAG SO THAT EXEC WILL
  7. ; PRINT PC AND OP-CODE AS IT RUNS.
  8. ;
  9. TRFLAG    EQU    5095H
  10. FCBMOV    EQU    5051H
  11. SYSFCB    EQU    5CH
  12. DSKRD    EQU    5039H
  13. EXEC    EQU    5018H
  14. * THIS SECTION OF CODE READS IN EXEC AND TURNS ON THE DAZZLER FOR US
  15.     ORG    100H
  16.     LXI    SP,1000H
  17.     CALL    SURVIVAL    ;SEE IF THE REST IS WORTHWHILE.
  18. * ASSUME .FEX EXTENSION ON OBJECT FILE
  19.     LXI    H,SYSFCB+9
  20.     MVI    M,'F'
  21.     INX    H
  22.     MVI    M,'E'
  23.     INX    H
  24.     MVI    M,'X'
  25.     LXI    H,SYSFCB
  26.     LXI    D,DUMMY
  27.     CALL    FCBMOV    ;SAVE FCB OF FILE TO EXECUTE
  28.     XCHG
  29.     PUSH    H    ;SAVE @ OF THAT FCB
  30.     LXI    H,EXCFCB
  31.     CALL    FCBMOV    ;GET READY TO READ "EXEC.OBJ"
  32.     LHLD    EXEC+1    ;GET EXEC START ADDRESS
  33.     CALL    DSKRD    ;READ "EXEC.OBJ" THERE
  34.     POP    H
  35.     CALL    FCBMOV    ;RESET SYSTEM FCB TO FELIX PROGRAM
  36. ; TRACE WANTED
  37. ;
  38.     MVI    A,0FFH
  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.