
 1000  * LOWER CASE F8 ROM.1
 1010  *---------------------------------
 1020  * THESE PATCHES ARE FOR THE "OLD" F8 ROM.  THEY
 1030  * WILL NOT WORK INTO THE AUTOSTART ROM MONITOR
 1040  * ROUTINES.
 1050  *
 1060  * OPERATION: $6800<F800.FFFFM
 1070  *            ASM  (ASSEMBLE THIS CODE)
 1080  *            BSAVE F8 EPROM,A$6800,L$0800
 1090  *---------------------------------
 1100  CTRLK  .EQ $8B      LEFT BRACKET OR BRACE
 1110  CTRLL  .EQ $8C      BACKSLASH OR VERTICAL BAR
 1120  CTRLO  .EQ $8F      UNDERLINE OR RUBOUT
 1130  CTRLZ  .EQ $9A      SHIFT OR SHIFT LOCK
 1140  CASE   .EQ $77E     FOR DOS IN SLOT 6
 1150  LCKFLG .EQ $7FE     FOR DOS IN SLOT 6
 1160  KYSTRB .EQ $C010
 1170  VTAB   .EQ $FC22
 1180  RDKEY  .EQ $FD0C
 1190  *---------------------------------
 1200  PATCH1 .OR $FB5D
 1210         .TA $6B5D
 1220  *
 1230  SETCAS LDY #0       PART OF RESET ROUTINE TO INIT
 1240         STY CASE     UPPER CASE MODE
 1250         INY
 1260         STY LCKFLG
 1270         JMP VTAB
 1280  *---------------------------------
 1290  PATCH2 .OR $FD2B
 1300         .TA $6D2B
 1310  *
 1320         JMP LCADAP   FROM KEYIN ROUTINE TO LOWER
 1330         NOP          CASE "ADAPTER"
 1340  *---------------------------------
 1350  PATCH3 .OR $FD82
 1360         .TA $6D82
 1370  *
 1380         AND #$FF     ALLOW LOWER CASE TO PASS
 1390  *---------------------------------
 1400  PATCH4 .OR $FD11
 1410         .TA $6D11
 1420  *
 1430         JSR FORM     DISPLAY CHARACTERS UNDER THE
 1440         NOP          CURSOR CORRECTLY
 1450  *---------------------------------
 1460  * THE CTRL-Z KEY IS USED LIKE THE SHIFT KEY ON A
 1470  * TYPEWRITER:  ONE CTRL-Z WILL ENTER ONE UPPER
 1480  * CASE CHARACTER AND THEN RETURN TO LOWER CASE.
 1490  *
 1500  * TWO CTRL-Z'S IN SUCCESSION WILL PERFORM A
 1510  * "SHIFT-LOCK".  IF THE MODE WAS LOWER CASE,
 1520  * TWO CTRL-Z'S WILL LOCK IN UPPER CASE; IF THE
 1530  * MODE WAS UPPER CASE, TWO CTRL-Z'S WILL LOCK
 1540  * IN LOWER CASE.
 1550  *---------------------------------
 1560  PATCH5 .OR $FB69
 1570         .TA $6B69
 1580  *
 1590  LCADAP BIT KYSTRB   CLEAR KEYBOARD
 1600         CMP #CTRLZ   SEE IF "SHIFT"
 1610         BNE .4       NO, TRY OTHER TESTS
 1620         LDA LCKFLG
 1630         EOR #$80     FLIP BIT 7 (CTRLZ FLAG)
 1640         BMI .1       NEGATIVE IF FIRST CTRL-Z
 1650         EOR #$01     FLIP BIT 0 (LOCK FLAG)
 1660  .1     STA LCKFLG
 1670         BEQ .2       ...IF LOCK FLAG IS CLEAR
 1680         LDA #0       SET UPPER CASE
 1690         BEQ .3       ...ALWAYS
 1700  .2     LDA #$20     SET LOWER CASE
 1710  .3     STA CASE
 1720         JMP RDKEY
 1730  .4     CMP #CTRLK
 1740         BEQ .5
 1750         CMP #CTRLL
 1760         BEQ .5
 1770         CMP #CTRLO
 1780         BNE .6
 1790  .5     ORA #$50     CONVERT TO SPECIAL CHARS
 1800  .6     CMP #$C0     MERGE CASE IF ALPHA
 1810         BCC .7       NOT ALPHA
 1820         ORA CASE
 1830  .7     PHA          SAVE MODIFIED CHAR
 1840         LDA LCKFLG
 1850         BPL .8       ...IF Z-FLAG CLEAR
 1860         LDA #0       CLEAR Z AND LOCK FLAGS
 1870         STA LCKFLG
 1880  .8     BNE .9       ...IF LOCK FLAG IS SET
 1890         LDA #$20     SET LOWER CASE
 1900         STA CASE
 1910  .9     PLA          RETRIEVE MODIFIED CHAR
 1920         RTS
 1930         BRK
 1940         BRK
 1950  *---------------------------------
 1960  * CURSOR DISPLAY FOR EDITING
 1970  *
 1980  FORM   CMP #$E0     IS IT LOWER CASE?
 1990         BCS .1       YES, SO BRANCH
 2000         AND #$3F     ALL CHARACTERS (EXCEPT LOWER
 2010         ORA #$40     CASE) ARE FLASHED
 2020         RTS
 2030  .1     EOR #$E0     MAKE LOWER CASE INTO
 2040         RTS          INVERSE UPPER CASE
 2050  *---------------------------------
 2055  * WRITTEN:  NOVEMBER 1, 1980
 2060  * REVISED:  JUNE 25, 1981
 2070  *  AUTHOR:  BOB MATZINGER
 2080  *           P. O. BOX 13446
 2090  *           ARLINGTON, TX 76013
 2100  *           (817) 265-8122
 2110  *---------------------------------

