
 1000  *SAVE S.UNDERLINE CURSOR
 1010  *--------------------------------
 1020  *      BLINKING UNDERLINE CURSOR
 1030  *      WRITTEN BY BILL LINN
 1040  *--------------------------------
 1050         .OR $300
 1060  *--------------------------------
 1070  MON.CH     .EQ $24
 1080  MON.BASL   .EQ $28
 1090  MON.KSWL   .EQ $38
 1100  MON.RNDL   .EQ $4E
 1110  *--------------------------------
 1120  DOS.REHOOK .EQ $3EA
 1130  *--------------------------------
 1140  MON.BELL2  .EQ $FBE4
 1150  MON.WAIT   .EQ $FCA8
 1160  MON.KEYIN3 .EQ $FD26
 1170  *--------------------------------
 1180  BLANK      .EQ $A0
 1190  UNDERLINE  .EQ $DF
 1200  *--------------------------------
 1210  KEYBOARD   .EQ $C000
 1220  *--------------------------------
 1230  HOOK   LDA #KEYIN   SET INPUT HOOK
 1240         STA MON.KSWL
 1250         LDA /KEYIN
 1260         STA MON.KSWL+1
 1270         JMP DOS.REHOOK
 1280  *--------------------------------
 1290  KEYIN  PHA             SAVE SCREEN CHAR
 1300         STX MON.RNDL     SAVE X-REG
 1310         CMP #UNDERLINE  IF CHAR ON SCREEN IS
 1320         BNE .1            AN UNDERLINE
 1330         LDA #BLANK        THEN ALTERNATE WITH BLANK
 1340  .1     PHA          SAVE CHAR TO ALTERNATE
 1350  *--------------------------------
 1360  *      ALTERNATE UNTIL KEY IS PRESSED
 1370  *--------------------------------
 1380  .2     LDA #UNDERLINE
 1390         LDY MON.CH
 1400         CMP (MON.BASL),Y
 1410         BNE .3
 1420         PLA          GET ALTERNATE CHAR
 1430         PHA          MAINTAIN ON STACK ALSO
 1440  .3     STA (MON.BASL),Y
 1450         LDY #80      80*256 BETWEEN BLINKS
 1460  .4     LDA KEYBOARD      KEY PRESSED?
 1470         BMI .5       YES, CLICK AND RETURN
 1480         DEX
 1490         BNE .4
 1500         DEY
 1510         BNE .4
 1520         BEQ .2       ...ALWAYS
 1530  *--------------------------------
 1540  *      A KEY HAS BEEN PRESSED
 1550  *--------------------------------
 1560  .5     PLA          POP STACK ONCE
 1570         LDY #10      MAKE A "CLICK"
 1580         JSR MON.BELL2
 1590         LDY MON.CH
 1600         LDX MON.RNDL     RESTORE X-REG
 1610         PLA          RESTORE ORIGINAL SCREEN CHAR
 1620         JMP MON.KEYIN3

