home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / ST_USER / 1989 / USER1089.MSA / BW.S < prev    next >
Text File  |  1985-11-19  |  1KB  |  55 lines

  1. * Mono monitor normal/inverse selector
  2. * By John Cunningham
  3. * (c) Atari ST User
  4. * Press both SHIFT keys at same time
  5.  
  6.     PEA vect(PC)
  7.     MOVE #38,-(A7)            Set vector in supervisor mode
  8.     TRAP #14
  9.     ADDQ.L #6,A7            Tidy stack
  10.     MOVE #0,-(A7)
  11.     MOVE.L #$200,-(A7)        Save $200 bytes
  12.     MOVE #$31,-(A7)            Terminate and stay resident
  13.     TRAP #1
  14. vect    LEA tr13(PC),A0
  15.     MOVE.L $B4,(A0)            Save TRAP #13 vector
  16.     LEA mycode(PC),A0
  17.     MOVE.L A0,$B4            Redirect TRAP #13 vector
  18.     RTS
  19.  
  20. mycode    MOVEM.L D0-D2/A0-A3,-(A7)    Save registers
  21.     LEA flag(PC),A3
  22.     BSET #2,(A3)            Set self disable bit
  23.     BNE end                End if self disabled
  24.     MOVE #-1,-(A7)
  25.     MOVE #11,-(A7)            Kbshift
  26.     TRAP #13
  27.     ADDQ.L #4,A7
  28.     ANDI.B #3,D0            Get Shift status
  29.     CMP.B #3,D0
  30.     BEQ pressed            Branch if both Shifts pressed
  31.     BCLR #0,(A3)            Clear 'pressed' flag
  32. fin    BCLR #2,(A3)            Clear self disable bit
  33. end    MOVEM.L (A7)+,D0-D2/A0-A3    Restore registers
  34.     MOVE.L tr13(PC),A1
  35.     JMP (A1)            Jump to old TRAP #13 routine
  36.  
  37. pressed    BSET #0,(A3)            Set 'pressed' flag
  38.     BNE fin                Branch if already set
  39. change    MOVE #1,D0            Set D0 for normal video
  40.     BCLR #1,(A3)            Clear 'inverse' flag
  41.     BNE normal            Branch if already set
  42.     BSET #1,(A3)            Set 'inverse' flag
  43.     MOVE #0,D0            Set D0 for inverse video
  44. normal    MOVE D0,-(A7)            Hi-res inverse set by bit 0...
  45.     MOVE #0,-(A7)            ...in colour 0
  46.     MOVE #7,-(A7)            Set colour
  47.     TRAP #14
  48.     ADDQ.L #6,A7            Tidy stack
  49.     BRA fin                End routine
  50.  
  51. tr13    DC.L 0
  52. flag    DC.B 0
  53.  
  54.     EVEN
  55.