home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / ASMUTL / PC370.ZIP / CLOCK.ALC < prev    next >
Encoding:
Text File  |  1987-04-27  |  3.3 KB  |  111 lines

  1.     TITLE 'CLOCK.ALC - TRANSPARENT PC/370 OS TO DISPLAY CLOCK'
  2. *********
  3. *
  4. * PGMID. CLOCK.ALC (LINKED TO CLOCK.MOD FOR DYNMAIC LOAD AND EXEC)
  5. * AUTHOR. DON HIGGINS
  6. * DATE.   04/26/87
  7. * REMARKS.
  8. *         THIS MODULE DEFINES TRANSPARENT SVC HANDLER AND EXTERNAL
  9. *         INTERRUPT HANDLER TO ALLOW DISPLAYING TIME AND DATE IN
  10. *         UPPER LEFT CORNER OF SCREEN.  RETURN FROM THIS MODULE IS
  11. *         VIA LPSW WHICH PLACES CALLING PROGRAM IN PROBLEM STATE WITH
  12. *         EXTERNAL INTERRUPTS ENABLED.
  13. *
  14. *********
  15. CLOCK    CSECT
  16.     USING *,R15
  17.     L     R0,=V(DTIME)
  18.     S     R0,=A(CLOCK)
  19.     AR    R0,R15            CALC DTIME ENTRY FOR COM OR MOD
  20.     ST    R0,ADTIME         SAVE DTIME RTN ENTRY
  21.     LA    R0,SVCRTN
  22.     ST    R0,SVCPSW+4       INIT NEW SVC PSW ADDR
  23.     LA    R0,EXTRTN
  24.     ST    R0,EXTPSW+4       INIT NEW EXT PSW ADDR
  25.     MVC   NEWSVC(8),SVCPSW  SET NEW SVC PSW
  26.     MVC   NEWEXT(8),EXTPSW  SET NEW EXT PSW
  27.     ST    R14,PRBPSW+4      INIT PROBLEM STATE EXIT PSW ADDR
  28.     LPSW  PRBPSW            EXIT WITH NEW PROBLEM PSW
  29. SVCPSW   DS    0D
  30.     DC    X'070C0000',A(*-*)  ENTER SVC HANDLER IN SUPR STATE
  31. EXTPSW   DS    0D
  32.     DC    X'070C0000',A(*-*)  ENTER EXT HANDLER IN SUPR STATE
  33. PRBPSW   DS    0D
  34.     DC    X'070D0000',A(*-*)     RETRUN TO CALLER IN PROB. STATE
  35. *********
  36. *
  37. *  TRANSPARENT SVC INTERRUPT HANDLER
  38. *
  39. *********
  40. SVCRTN   EQU   *
  41.     DROP
  42.     ST    R15,NEWSVC+4  USE NEW SVC PSW AS TEMP STORGE FOR BASE
  43.     BALR  R15,0         INIT BASE
  44.     USING *,R15
  45.     ST    R14,SVCSAV
  46.     L     R14,NEWSVC+4
  47.     ST    R14,SVCSAV+4  SAVE R14-R15 FOR RESTORE
  48.     LR    R14,R15
  49.     BCTR  R14,0
  50.     BCTR  R14,0
  51.     ST    R14,NEWSVC+4  RESET NEW SVC PSW
  52.     L     R14,OLDSVC+4  R14 = ADDR SVC + 2
  53.     BCTR  R14,0
  54.     ICM   R14,8,0(R14)  GET SVC #
  55.     STCM  R14,8,SVCXX+1 SETUP SVC TO ISSUE IN SUPR STATE
  56.     LM    R14,R15,SVCSAV RESTORE ALL REGS
  57. SVCXX    SVC   *-*           REISSUE SVC
  58.     LPSW  OLDSVC        EXIT TO INSTR AFTER ORIG SVC IN PROB STATE
  59. SVCSAV   DC    2F'0'  SAVE R14-R15
  60. ********
  61. *
  62. * EXTERNAL INTERRUPT RTN TO DISPLAY CLOCK IN UPPER LEFT OF SCREEN
  63. *
  64. ********
  65. EXTRTN   EQU   *
  66.     DROP
  67.     ST    R15,NEWEXT+4  USE NEW EXT PSW AS TEMP SAVE
  68.     BALR  R15,0
  69.     USING *,R15
  70.     ST    R14,EXTSAV    SAVE ORIG R14,R15,R0,R1
  71.     L     R14,NEWEXT+4
  72.     ST    R14,EXTSAV+4
  73.     STM   R0,R1,EXTSAV+8
  74.     LR    R14,R15
  75.     BCTR  R14,0
  76.     BCTR  R14,0
  77.     ST    R14,NEWEXT+4  RESET NEWEXT PSW
  78.     L     R15,ADTIME
  79.     DROP  R15
  80.     BALR  R14,R15       DISPLAY TIME
  81.     USING *,R14
  82.     LM    R14,R0,EXTSAV RESTORE ALL REGS
  83.     LPSW  OLDEXT        EXIT TO NEXT INSTR IN PROB STATE
  84. EXTSAV   DC    4F'0'   SAVE R14-R1
  85. ADTIME   DC    A(8-8)  ADDRESS OF DISPLAY TIME ROUTINE
  86. ********
  87. *
  88. * COMMON DATA
  89. *
  90. ********
  91. R0       EQU   0
  92. R1       EQU   1
  93. R14      EQU   14
  94. R15      EQU   15
  95. *********
  96. *
  97. * PSW.DOC LOW MEMORY PSW EQUATES
  98. *
  99. *********
  100. OLDEXT   EQU   X'18' OLD EXTERNAL PSW
  101. OLDSVC   EQU   X'20' OLD SUPERVISOR CALL PSW
  102. OLDPGM   EQU   X'28' OLD PROGRAM CHECK PSW
  103. OLDMCK   EQU   X'30' OLD MACHINE CHECK PSW
  104. OLDIOS   EQU   X'38' OLD I/O INTERRUPT PSW
  105. NEWEXT   EQU   X'58' NEW EXTERNAL PSW
  106. NEWSVC   EQU   X'60' NEW SUPERVISOR CALL PSW
  107. NEWPGM   EQU   X'68' NEW PROGRAM CHECK PSW
  108. NEWMCK   EQU   X'70' NEW MACHINE CHECK PSW
  109. NEWIOS   EQU   X'78' NEW I/O INTERRUPT PSW
  110.     END   CLOCK
  111.