_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

CTRL->T♠│ ─+

FILE INFORMATION

FILENAME(S): CTRL->T♠│ ─+

FILE TYPE(S): SEQ

FILE SIZE: 2.3K

FIRST SEEN: 2025-11-30 21:10:43

APPEARS ON: 1 disk(s)

FILE HASH

da9d75b253ad0c69a46015c2c783fc89ac825cc775ea904f611a62f918f1a451

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
PD 14A CTRL->T♠│ ─+ SEQ DuncanTwain 31 15 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 0D 09 09 43 54 52 4C 2D  3E 54 61 62 20 44 6F 63  |...CTRL->Tab Doc|
00000010: 73 0D 0D 47 65 6F 57 72  69 74 65 20 36 34 20 61  |s..GeoWrite 64 a|
00000020: 6E 64 20 31 32 38 20 64  69 66 66 65 72 20 69 6E  |nd 128 differ in|
00000030: 20 61 20 6E 75 6D 62 65  72 20 6F 66 20 77 61 79  | a number of way|
00000040: 73 2C 20 6F 6E 65 20 6F  66 20 74 68 65 6D 20 62  |s, one of them b|
00000050: 65 69 6E 67 20 74 68 65  20 31 32 38 27 73 20 54  |eing the 128's T|
00000060: 41 42 20 6B 65 79 2E 20  20 41 66 74 65 72 20 75  |AB key.  After u|
00000070: 73 69 6E 67 20 74 68 65  20 31 32 38 20 76 65 72  |sing the 128 ver|
00000080: 73 69 6F 6E 20 66 6F 72  20 61 20 77 68 69 6C 65  |sion for a while|
00000090: 2C 20 49 20 66 6F 75 6E  64 20 6D 79 73 65 6C 66  |, I found myself|
000000A0: 20 77 69 73 68 69 6E 67  20 66 6F 72 20 74 68 65  | wishing for the|
000000B0: 20 73 61 6D 65 20 66 65  61 74 75 72 65 20 6F 6E  | same feature on|
000000C0: 20 6D 79 20 36 34 2E 20  20 54 68 69 73 20 70 72  | my 64.  This pr|
000000D0: 6F 67 72 61 6D 20 69 73  20 74 68 65 20 72 65 73  |ogram is the res|
000000E0: 75 6C 74 20 6F 66 20 74  68 61 74 20 77 69 73 68  |ult of that wish|
000000F0: 2E 0D 0D 4F 72 69 67 69  6E 61 6C 6C 79 2C 20 49  |...Originally, I|
00000100: 20 68 6F 70 65 64 20 74  6F 20 62 65 20 61 62 6C  | hoped to be abl|
00000110: 65 20 74 6F 20 67 65 74  20 47 65 6F 73 20 74 6F  |e to get Geos to|
00000120: 20 73 63 61 6E 20 74 68  65 20 66 75 6E 63 74 69  | scan the functi|
00000130: 6F 6E 20 6B 65 79 73 20  61 6E 64 20 74 68 65 6E  |on keys and then|
00000140: 20 64 65 66 69 6E 65 20  6F 6E 65 20 6F 66 20 74  | define one of t|
00000150: 68 65 6D 20 61 73 20 43  54 52 4C 2D 49 20 28 49  |hem as CTRL-I (I|
00000160: 20 73 74 69 6C 6C 20 6C  69 6B 65 20 74 68 69 73  | still like this|
00000170: 20 6F 70 74 69 6F 6E 2C  20 62 75 74 20 69 74 27  | option, but it'|
00000180: 73 20 62 65 79 6F 6E 64  20 6D 79 20 61 62 69 6C  |s beyond my abil|
00000190: 69 74 79 20 74 6F 20 65  76 65 6E 20 64 65 74 65  |ity to even dete|
000001A0: 72 6D 69 6E 65 20 69 66  20 69 74 27 73 20 66 65  |rmine if it's fe|
000001B0: 61 73 69 62 6C 65 2E 29  20 20 49 6E 20 70 6C 61  |asible.)  In pla|
000001C0: 79 69 6E 67 20 61 72 6F  75 6E 64 20 77 69 74 68  |ying around with|
000001D0: 20 74 68 65 20 64 65 62  75 67 67 65 72 2C 20 68  | the debugger, h|
000001E0: 6F 77 65 76 65 72 2C 20  49 20 63 61 6D 65 20 75  |owever, I came u|
000001F0: 70 6F 6E 20 74 68 69 73  20 66 69 78 2C 20 77 68  |pon this fix, wh|
00000200: 69 63 68 20 69 73 20 6E  6F 74 20 61 73 20 65 6C  |ich is not as el|
00000210: 65 67 61 6E 74 2C 20 62  75 74 20 6A 75 73 74 20  |egant, but just |
00000220: 61 73 20 66 75 6E 63 74  69 6F 6E 61 6C 2E 0D 0D  |as functional...|
00000230: 54 6F 20 75 73 65 20 43  54 52 4C 2D 3E 54 61 62  |To use CTRL->Tab|
00000240: 2C 20 66 69 72 73 74 20  65 6E 74 65 72 20 61 20  |, first enter a |
00000250: 67 65 6F 57 72 69 74 65  20 64 6F 75 6D 65 6E 74  |geoWrite doument|
00000260: 2E 20 20 54 68 65 6E 2C  20 66 72 6F 6D 20 74 68  |.  Then, from th|
00000270: 65 20 22 67 65 6F 73 22  20 6D 65 6E 75 2C 20 63  |e "geos" menu, c|
00000280: 6C 69 63 6B 20 6F 6E 20  22 43 54 52 4C 2D 3E 54  |lick on "CTRL->T|
00000290: 61 62 22 2E 20 20 54 68  65 20 64 65 73 6B 20 61  |ab".  The desk a|
000002A0: 63 63 65 73 73 6F 72 79  20 77 69 6C 6C 20 61 70  |ccessory will ap|
000002B0: 70 65 61 72 2C 20 64 69  73 70 6C 61 79 69 6E 67  |pear, displaying|
000002C0: 20 61 20 22 54 6F 67 67  6C 65 22 20 69 63 6F 6E  | a "Toggle" icon|
000002D0: 2C 20 22 66 69 6C 65 22  20 6D 65 6E 75 2C 20 61  |, "file" menu, a|
000002E0: 6E 64 20 74 68 65 20 63  75 72 72 65 6E 74 20 73  |nd the current s|
000002F0: 74 61 74 75 73 20 6F 66  20 43 54 52 4C 2D 3E 54  |tatus of CTRL->T|
00000300: 61 62 2E 0D 0D 53 74 61  74 75 73 2E 09 22 41 63  |ab...Status.."Ac|
00000310: 74 69 76 65 22 20 73 74  61 74 75 73 20 6D 65 61  |tive" status mea|
00000320: 6E 73 20 74 68 61 74 20  74 68 65 20 43 54 52 4C  |ns that the CTRL|
00000330: 20 6B 65 79 20 61 6C 6F  6E 65 20 77 69 6C 6C 20  | key alone will |
00000340: 66 75 6E 63 74 69 6F 6E  20 61 73 20 61 20 54 41  |function as a TA|
00000350: 42 20 6B 65 79 2C 20 6D  61 6B 69 6E 67 20 74 68  |B key, making th|
00000360: 65 20 43 54 52 4C 2D 49  20 63 6F 6D 62 69 6E 61  |e CTRL-I combina|
00000370: 74 69 6F 6E 20 62 6F 74  68 20 6E 6F 6E 2D 66 75  |tion both non-fu|
00000380: 6E 63 74 69 6F 6E 61 6C  20 61 6E 64 20 75 6E 6E  |nctional and unn|
00000390: 65 63 65 73 73 61 72 79  2E 0D 09 22 49 6E 61 63  |ecessary..."Inac|
000003A0: 74 69 76 65 22 20 6D 65  61 6E 73 20 74 68 61 74  |tive" means that|
000003B0: 20 74 68 65 20 43 54 52  4C 2D 49 20 63 6F 6D 62  | the CTRL-I comb|
000003C0: 69 6E 61 74 69 6F 6E 20  69 73 20 6E 65 63 65 73  |ination is neces|
000003D0: 73 61 72 79 20 66 6F 72  20 74 61 62 73 2E 0D 0D  |sary for tabs...|
000003E0: 54 6F 67 67 6C 65 2E 09  43 6C 69 63 6B 69 6E 67  |Toggle..Clicking|
000003F0: 20 6F 6E 20 74 68 65 20  22 54 6F 67 67 6C 65 22  | on the "Toggle"|
00000400: 20 69 63 6F 6E 20 77 69  6C 6C 20 73 77 69 74 63  | icon will switc|
00000410: 68 20 74 68 65 20 73 74  61 74 75 73 20 6F 66 20  |h the status of |
00000420: 74 68 65 20 43 54 52 4C  20 6B 65 79 2E 20 20 49  |the CTRL key.  I|
00000430: 66 20 74 68 65 20 73 74  61 74 75 73 20 69 73 20  |f the status is |
00000440: 72 65 70 6F 72 74 65 64  20 61 73 20 61 63 74 69  |reported as acti|
00000450: 76 65 2C 20 69 74 20 77  69 6C 6C 20 62 65 20 6D  |ve, it will be m|
00000460: 61 64 65 20 69 6E 61 63  74 69 76 65 2E 20 20 49  |ade inactive.  I|
00000470: 66 20 74 68 65 20 73 74  61 74 75 73 20 69 73 20  |f the status is |
00000480: 72 65 70 6F 72 74 65 64  20 61 73 20 69 6E 61 63  |reported as inac|
00000490: 74 69 76 65 2C 20 69 74  20 77 69 6C 6C 20 62 65  |tive, it will be|
000004A0: 20 6D 61 64 65 20 61 63  74 69 76 65 2E 0D 0D 46  | made active...F|
000004B0: 69 6C 65 2E 09 43 6C 69  63 6B 20 6F 6E 20 66 69  |ile..Click on fi|
000004C0: 6C 65 20 61 6E 64 20 74  68 65 6E 20 6F 6E 20 22  |le and then on "|
000004D0: 71 75 69 74 22 20 74 6F  20 65 78 69 74 20 74 68  |quit" to exit th|
000004E0: 65 20 44 41 2E 20 20 54  68 65 20 63 75 72 72 65  |e DA.  The curre|
000004F0: 6E 74 20 73 74 61 74 75  73 20 6F 66 20 74 68 65  |nt status of the|
00000500: 20 43 54 52 4C 20 6B 65  79 20 77 69 6C 6C 20 62  | CTRL key will b|
00000510: 65 20 70 72 65 73 65 72  76 65 64 20 69 6E 20 52  |e preserved in R|
00000520: 41 4D 2E 0D 0D 54 68 69  73 20 69 73 20 74 68 65  |AM...This is the|
00000530: 20 41 4C 50 48 41 20 76  65 72 73 69 6F 6E 20 6F  | ALPHA version o|
00000540: 66 20 43 54 52 4C 2D 3E  54 61 62 2E 20 20 49 6E  |f CTRL->Tab.  In|
00000550: 20 74 65 73 74 69 6E 67  2C 20 49 20 68 61 76 65  | testing, I have|
00000560: 20 68 61 64 20 6E 6F 20  73 79 73 74 65 6D 20 63  | had no system c|
00000570: 72 61 73 68 65 73 20 61  73 20 61 20 72 65 73 75  |rashes as a resu|
00000580: 6C 74 20 6F 66 20 69 74  73 20 75 73 65 2E 20 20  |lt of its use.  |
00000590: 50 4C 45 41 53 45 20 6C  65 74 20 6D 65 20 6B 6E  |PLEASE let me kn|
000005A0: 6F 77 20 69 66 20 79 6F  75 20 68 61 76 65 20 70  |ow if you have p|
000005B0: 72 6F 62 6C 65 6D 73 2C  20 73 6F 20 49 20 63 61  |roblems, so I ca|
000005C0: 6E 20 74 72 79 20 74 6F  20 66 69 78 20 74 68 65  |n try to fix the|
000005D0: 6D 2E 0D 0D 49 20 73 74  72 6F 6E 67 6C 79 20 73  |m...I strongly s|
000005E0: 75 67 67 65 73 74 20 74  68 61 74 20 43 54 52 4C  |uggest that CTRL|
000005F0: 2D 3E 54 61 62 20 62 65  20 75 73 65 64 20 6F 6E  |->Tab be used on|
00000600: 6C 79 20 66 72 6F 6D 20  69 6E 73 69 64 65 20 67  |ly from inside g|
00000610: 65 6F 57 72 69 74 65 2E  20 20 54 68 65 20 43 54  |eoWrite.  The CT|
00000620: 52 4C 20 6B 65 79 20 73  74 61 74 75 73 20 73 68  |RL key status sh|
00000630: 6F 75 6C 64 20 62 65 20  72 65 74 75 72 6E 65 64  |ould be returned|
00000640: 20 74 6F 20 69 6E 61 63  74 69 76 65 20 62 65 66  | to inactive bef|
00000650: 6F 72 65 20 67 65 6F 57  72 69 74 65 20 69 73 20  |ore geoWrite is |
00000660: 71 75 69 74 2E 20 20 54  68 65 20 64 65 73 6B 54  |quit.  The deskT|
00000670: 6F 70 20 64 6F 65 73 6E  27 74 20 73 65 65 6D 20  |op doesn't seem |
00000680: 74 6F 20 6D 69 6E 64 20  43 54 52 4C 2D 3E 54 61  |to mind CTRL->Ta|
00000690: 62 2C 20 62 75 74 20 49  27 6D 20 73 75 72 65 20  |b, but I'm sure |
000006A0: 61 70 70 6C 69 63 61 74  69 6F 6E 73 20 77 68 69  |applications whi|
000006B0: 63 68 20 75 73 65 20 74  68 65 20 43 54 52 4C 20  |ch use the CTRL |
000006C0: 6B 65 79 20 69 6E 20 63  6F 6D 62 69 6E 61 74 69  |key in combinati|
000006D0: 6F 6E 20 77 69 74 68 20  6B 65 79 73 20 6F 74 68  |on with keys oth|
000006E0: 65 72 20 74 68 61 6E 20  22 49 22 20 28 6C 69 6B  |er than "I" (lik|
000006F0: 65 20 67 65 6F 43 61 6C  63 29 20 77 6F 75 6C 64  |e geoCalc) would|
00000700: 20 62 65 63 6F 6D 65 20  71 75 69 74 65 20 63 6F  | become quite co|
00000710: 6E 66 75 73 65 64 2E 20  20 49 74 20 73 68 6F 75  |nfused.  It shou|
00000720: 6C 64 20 62 65 20 70 6F  73 73 69 62 6C 65 20 74  |ld be possible t|
00000730: 6F 20 64 69 73 61 62 6C  65 20 43 54 52 4C 2D 3E  |o disable CTRL->|
00000740: 54 61 62 20 66 72 6F 6D  20 69 6E 73 69 64 65 20  |Tab from inside |
00000750: 73 75 63 68 20 61 70 70  73 2C 20 62 75 74 20 49  |such apps, but I|
00000760: 20 68 61 76 65 6E 27 74  20 74 72 69 65 64 2E 20  | haven't tried. |
00000770: 0D 0D 43 54 52 4C 2D 3E  54 61 62 20 77 6F 72 6B  |..CTRL->Tab work|
00000780: 73 20 62 79 20 63 68 61  6E 67 69 6E 67 20 74 68  |s by changing th|
00000790: 65 20 47 65 6F 73 20 6B  65 79 62 6F 61 72 64 20  |e Geos keyboard |
000007A0: 64 65 63 6F 64 69 6E 67  20 74 61 62 6C 65 20 73  |decoding table s|
000007B0: 6F 20 74 68 61 74 20 74  68 65 20 43 54 52 4C 20  |o that the CTRL |
000007C0: 6B 65 79 20 69 73 20 64  65 63 6F 64 65 64 20 61  |key is decoded a|
000007D0: 73 20 61 6E 20 22 49 22  20 28 70 75 74 73 20 24  |s an "I" (puts $|
000007E0: 36 39 20 61 74 20 24 66  63 36 30 29 2E 20 20 41  |69 at $fc60).  A|
000007F0: 70 70 61 72 65 6E 74 6C  79 2C 20 74 68 65 20 73  |pparently, the s|
00000800: 79 73 74 65 6D 20 64 65  63 6F 64 65 73 20 43 54  |ystem decodes CT|
00000810: 52 4C 20 73 65 70 61 72  61 74 65 6C 79 20 61 73  |RL separately as|
00000820: 20 77 65 6C 6C 2C 20 73  6F 20 74 68 61 74 20 74  | well, so that t|
00000830: 68 65 20 73 79 73 74 65  6D 20 69 73 20 66 6F 6F  |he system is foo|
00000840: 6C 65 64 20 69 6E 74 6F  20 74 68 69 6E 6B 69 6E  |led into thinkin|
00000850: 67 20 74 68 61 74 20 62  6F 74 68 20 6B 65 79 73  |g that both keys|
00000860: 20 61 72 65 20 62 65 69  6E 67 20 70 72 65 73 73  | are being press|
00000870: 65 64 2E 0D 0D 54 68 69  73 20 69 73 20 74 68 65  |ed...This is the|
00000880: 20 66 69 72 73 74 20 61  73 73 65 6D 62 6C 79 20  | first assembly |
00000890: 70 72 6F 67 72 61 6D 20  49 27 76 65 20 77 72 69  |program I've wri|
000008A0: 74 74 65 6E 20 69 6E 20  79 65 61 72 73 20 61 6E  |tten in years an|
000008B0: 64 20 6D 79 20 66 69 72  73 74 20 47 65 6F 73 20  |d my first Geos |
000008C0: 61 73 73 65 6D 62 6C 79  20 70 72 6F 67 72 61 6D  |assembly program|
000008D0: 20 65 76 65 72 2E 20 20  49 74 20 72 65 6C 69 65  | ever.  It relie|
000008E0: 73 20 68 65 61 76 69 6C  79 20 6F 6E 20 74 68 65  |s heavily on the|
000008F0: 20 53 61 6D 70 6C 65 44  41 20 73 74 75 66 66 20  | SampleDA stuff |
00000900: 66 72 6F 6D 20 74 68 65  20 67 65 6F 50 72 6F 67  |from the geoProg|
00000910: 72 61 6D 6D 65 72 20 70  61 63 6B 61 67 65 2E 0D  |rammer package..|
00000920: 0D 43 54 52 4C 2D 3E 54  61 62 20 69 73 20 70 75  |.CTRL->Tab is pu|
00000930: 62 6C 69 63 20 64 6F 6D  61 69 6E 2E 20 20 44 6F  |blic domain.  Do|
00000940: 20 77 69 74 68 20 69 74  20 77 68 61 74 20 79 6F  | with it what yo|
00000950: 75 20 6C 69 6B 65 2E 0D  0D 0D 49 52 56 20 43 4F  |u like....IRV CO|
00000960: 42 42                                             |BB              |
...CTRL->TAB DOCS..GEOWRITE 64 AND 128 D
IFFER IN A NUMBER OF WAYS, ONE OF THEM B
EING THE 128'S TAB KEY.  AFTER USING THE
 128 VERSION FOR A WHILE, I FOUND MYSELF
 WISHING FOR THE SAME FEATURE ON MY 64. 
 THIS PROGRAM IS THE RESULT OF THAT WISH
...ORIGINALLY, I HOPED TO BE ABLE TO GET
 GEOS TO SCAN THE FUNCTION KEYS AND THEN
 DEFINE ONE OF THEM AS CTRL-I (I STILL L
IKE THIS OPTION, BUT IT'S BEYOND MY ABIL
ITY TO EVEN DETERMINE IF IT'S FEASIBLE.)
  IN PLAYING AROUND WITH THE DEBUGGER, H
OWEVER, I CAME UPON THIS FIX, WHICH IS N
OT AS ELEGANT, BUT JUST AS FUNCTIONAL...
TO USE CTRL->TAB, FIRST ENTER A GEOWRITE
 DOUMENT.  THEN, FROM THE "GEOS" MENU, C
LICK ON "CTRL->TAB".  THE DESK ACCESSORY
 WILL APPEAR, DISPLAYING A "TOGGLE" ICON
, "FILE" MENU, AND THE CURRENT STATUS OF
 CTRL->TAB...STATUS.."ACTIVE" STATUS MEA
NS THAT THE CTRL KEY ALONE WILL FUNCTION
 AS A TAB KEY, MAKING THE CTRL-I COMBINA
TION BOTH NON-FUNCTIONAL AND UNNECESSARY
..."INACTIVE" MEANS THAT THE CTRL-I COMB
INATION IS NECESSARY FOR TABS...TOGGLE..
CLICKING ON THE "TOGGLE" ICON WILL SWITC
H THE STATUS OF THE CTRL KEY.  IF THE ST
ATUS IS REPORTED AS ACTIVE, IT WILL BE M
ADE INACTIVE.  IF THE STATUS IS REPORTED
 AS INACTIVE, IT WILL BE MADE ACTIVE...F
ILE..CLICK ON FILE AND THEN ON "QUIT" TO
 EXIT THE DA.  THE CURRENT STATUS OF THE
 CTRL KEY WILL BE PRESERVED IN RAM...THI
S IS THE ALPHA VERSION OF CTRL->TAB.  IN
 TESTING, I HAVE HAD NO SYSTEM CRASHES A
S A RESULT OF ITS USE.  PLEASE LET ME KN
OW IF YOU HAVE PROBLEMS, SO I CAN TRY TO
 FIX THEM...I STRONGLY SUGGEST THAT CTRL
->TAB BE USED ONLY FROM INSIDE GEOWRITE.
  THE CTRL KEY STATUS SHOULD BE RETURNED
 TO INACTIVE BEFORE GEOWRITE IS QUIT.  T
HE DESKTOP DOESN'T SEEM TO MIND CTRL->TA
B, BUT I'M SURE APPLICATIONS WHICH USE T
HE CTRL KEY IN COMBINATION WITH KEYS OTH
ER THAN "I" (LIKE GEOCALC) WOULD BECOME 
QUITE CONFUSED.  IT SHOULD BE POSSIBLE T
O DISABLE CTRL->TAB FROM INSIDE SUCH APP
S, BUT I HAVEN'T TRIED. ..CTRL->TAB WORK
S BY CHANGING THE GEOS KEYBOARD DECODING
 TABLE SO THAT THE CTRL KEY IS DECODED A
S AN "I" (PUTS $69 AT $FC60).  APPARENTL
Y, THE SYSTEM DECODES CTRL SEPARATELY AS
 WELL, SO THAT THE SYSTEM IS FOOLED INTO
 THINKING THAT BOTH KEYS ARE BEING PRESS
ED...THIS IS THE FIRST ASSEMBLY PROGRAM 
I'VE WRITTEN IN YEARS AND MY FIRST GEOS 
ASSEMBLY PROGRAM EVER.  IT RELIES HEAVIL
Y ON THE SAMPLEDA STUFF FROM THE GEOPROG
RAMMER PACKAGE...CTRL->TAB IS PUBLIC DOM
AIN.  DO WITH IT WHAT YOU LIKE....IRV CO
BB
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL