> Keys/s > Source for *Keys command - list function key definitions 3 Also *Show (), "*Show" is same as "*Keys" (: 27OSARGS=&FFDA:OSFIND=&FFCE:OSBGET=&FFD7:OSNEWL=&FFE7 <4OS_CLI=&FFF7:OSBYTE=&FFF4:OSWRCH=&FFEE:BRKV=&202 F!load%=&FFFF0900: mcode% &200 P5zp=&A8:kptr=&A8:kend=&AA:num=&AC:host=&AD:tmp=&AE Z: d P=0 1 nP%=load%:O%=mcode% x[OPT P*3+4 .chkDigit6 6CMP #"6":BCS errSyntax :\ >'5', error .chkDigit9 6CMP #"9"+1:BCS errSyntax :\ >'9', error 6CMP #"0":BCS chkDigitOk :\ <'0', error .errSyntax &BRK:EQUB 250:EQUS "Bad key":EQUB 0 : .go% .ShowAll AJSR ShowKey:INX:CPX #16:BNE ShowAll :\ Loop through 0 to 15 .chkDigitOk:RTS : " .ShowNum ,:JSR chkDigit9:CMP #"1":BNE ShowNumOk :\ Check '0'-'9' 6INY:LDA (zp),Y @.LDX #1:CMP #"!":BCC ShowNumOk1 :\ '1' J6JSR chkDigit6:ADC #9 :\ '10'-'15' T.ShowNumOk ^F #15:TAX:INY :\ X=key, step past last digit h.ShowNumOk1 r=LDA (zp),Y:CMP #"!":BCS errSyntax :\ Check end of |: 7.ShowKey :\ Show key X =LDA &F4:PHA:A #128:JSR RomSelect :\ Page workspace in 3LDA host:CMP #3:BCS ShowMaster :\ Master APHP:SEI:LDA &B10:SEC:SBC &B00,X :\ Copied from MOS 1.20 BSTA tmp:TYA:PHA:LDY #16 :\ Find length of string  .LE3B7 LDA &B00,Y:SEC:SBC &B00,X BCC LE3C8:BEQ LE3C8 CMP tmp:BCS LE3C8:STA tmp  .LE3C8 DEY:BPL LE3B7:PLA:TAY:PLP  LDA #1:ADC &B00,X:STA kptr+0 ADC tmp:STA kend+0 FLDA #&B:STA kptr+1:STA kend+1 :\ kptr/kend=>BBC definition @BNE KeyDisplay :\ Show key definition .ShowMaster &1LDA &8000,X:STA kptr+0:LDA &8011,X:STA kptr+1 01LDA &8001,X:STA kend+0:LDA &8012,X:STA kend+1 :: D.KeyDisplay N,\LDA kptr+0:\CMP kend+0:\BNE KeyNotEmpty X)\LDA kptr+1:\CMP kend+1:\BEQ KeyEmpty b\.KeyNotEmpty lLDY #0:.PrKey v9LDA KeyString,Y:JSR OSWRCH:INY :\ Print "Key " CMP #" ":BNE PrKey 3TXA:CMP #10:BCC KeyDigit :\ num<10 BLDA #"1":JSR OSWRCH:TXA:CLC:SBC #9 :\ Print "1", A=next digit  .KeyDigit ;A #"0":JSR OSWRCH :\ Print units digit >LDA #32:JSR OSWRCH:JSR PrQuote :\ Print : .KeyPrintLp DLDA kptr+0:CMP kend+0:BNE KeyChar :\ Not at end of defintion >LDA kptr+1:CMP kend+1:BEQ KeyEnd :\ End of definition  .KeyChar 5LDY #0:LDA (kptr),Y:BPL KeyLowChar :\ Char<128 BPHA:JSR PrBar:LDA #"!":JSR OSWRCH :\ Print "|!" for char>127  |" *2CMP #"|" 64:BEQ KeyCtrlChar :\ | -> |" 44 #64:CMP #127:BEQ KeyCtrlChar :\ Del -> |? >6CMP #32:BCS KeyPrintChar :\ <32 -> |X H.KeyCtrlChar RPHA:JSR PrBar:PLA: #64 \.KeyPrintChar f@JSR OSWRCH:INC kptr+0:BNE KeyPrintLp :\ Print and loop back pINC kptr+1:BNE KeyPrintLp z .KeyEnd JSR PrQuote:JSR OSNEWL:PLA .RomSelect STA &F4:STA &FE30:RTS : !.PrBar :LDA #"|":JMP OSWRCH .PrQuote:LDA #34:JMP OSWRCH .KeyString:EQUS "*Key " EQUS "v1.01":BRK ]  @"*SAVE Keys ";~mcode%;" ";~O%;" ";~go%&FFFF0000;" ";~load% @"*SAVE Show ";~mcode%;" ";~O%;" ";~go%&FFFF0000;" ";~load%