LB'Softlife Keypad Software V2.10(C) 1985 by Softlife Ltd.# `LLL^LLLHHH)Kȱ)!*׀LhH)Kȱ)!ۀL׀ Lπۀ =Lπhhh`hhh`PADRELEASEb@nlxn`(`H) HH hhh`Hm0)h`HH`)N hhh`n)􅀩n`-923817 6.E504HHs Lchh`Softlife Numeric Keypad HIIh`h`HIh`H S؁G Lʁ Softlife numeric keypad software V2.10 Normal Programmable h`H)! \ L\LphH)! c L>cLhh`NORMALPROGRAMMABLEpHqHpqp pqLhqhphh`pHqHpqp pqL The Softlife numeric keypad should be connected to the user port on the micro and the EPROM containing the software should be inserted in one of the sideways ROM sockets on the right of the main circuit board (or on a ROM expansion board). Once this is fitted, the keypad may be bought into operation using *PAD and stopped by using *RELEASE Either of these commands may be prefixed by "K" (*KPAD, *KRELEASE) in case of clash with other sideways ROMs. Please refer to the manual for more detail if required. Please see the manual for details of creation of the programmable software. Once produced, the software may be *RUN. The keypad will now produce the characters as set up. To disable the software, type *LINE followed by . Please see the manual for more details. Hardware design by Andrew Thomson, software design by Alastair France. All rights reserved. (C) 1984 and 1985 by Softlife Ltd., 7 Rose Crescent, CAMBRIDGE, CB2 3LL. Many thanks to all involved with the project.*MAKEKEY#ƒ #(C) Softlife Ltd 1985 18/4/85 E%= 7 (1P%=01:CENTRE("Softlife Numeric Keypad"): 2"Programming Procedure"'''"Use cursor keys to move to the positionsrequired. When there, press the key"'"on the BBC keyboard that you want to"'"use on thݺ#e BBC." <'"If you wish to use a key that is not"'"available on the BBC keyboard, press"'"the TAB key, and then enter that value in decimal." F'"For the key ESCAPE use the value 27"'''"Press once keys have been set.";10,23)"PressSPACEto c#ontinue";:=32: P A%(3,3) Z0B%=03:C%=03:A%(B%,C%)=(~(4*B%+C%)):: d TlA n *FX4,1 x23,1,0;0;0;0; X%=0:Y%=0 d:0,24)(30);:B%=03:0,20-2*B%)(5);::Y%*5+12,24)"^";0,20-2*X%)"]";:1,-8,100,1:*FX21,0 B%=3 0 -1:C%=0 d# 3:A%(B%,C%)>32 A%(B%,C%)<127 10+5*C%,20-2*B%)"";A%(B%,C%);" "; 10+5*C%,20-2*B%)"";(A%(B%,C%));(3-(A%(B%,C%))) : 10+5*Y%,20-2*X%)"";:Z%= Z%=137Y%<3Y%=Y%+1 Z%=136Y%>0Y%=Y%-1 Z%=138X%>0X%=X%-1 Z%=139X%135Z%<140TbA Z%<>9A%(X%,Y%)=Z%:TbA 0,5)"Select number :"; ""I% I%=27 E%= 0,5)(39); $I%<0I%>255dp@ A%(X%,Y%)=I% "0 , *FX4,0 6 @ M%=&70 J%B%=015:X%,Y%:M%?B%=A%(Y%,X%): T7 ^sE% "b#Should produce an ESCAPE? ";::K%=:K%="Y"K%="y"K%="N"K%="n":E%=(K%="y"K%="Y"):K% h#"Irq1v OK? ";: YN=0 "MK2" r | =&3000 userv=&200 irq1v=&204 "Softlife Numeric Keypad" "Programming Operation"  S%=&3000 k#PASS=022 ASS   userv=&200 irq1v=&204  S%=&4001 PASS=022 ASS  S%=P%-&4001 & "MK3" 06ݤYN:Y%::Y%=31:Y%=25Y%=14:(Y%+64):=(Y%=25) :ݤEQUW(A%) D ?P%=A% NP%?1=A% 256 X P%=P%+2 b =PASS lݤEQUS(A$) v>#J%  J%=1A$ ?P%=(A$,J%,1))  P%=P%+1   =PASS  ASS  P%=S%  [OPT PASS /.lookup_table OPT EQUS("F7E56D4CB3A12908") .init_pgm BCS W% RTS .W% PHP:SEI:LDAirq1v:STAirqsavvec:LDAirq1v+1:STAirqsavvec+1:LDA#&F0:STA&FE62:LDA#&40{#:STA&FE6E:LDA#&8:STA&FE6C:LDA#&90:STA&FE6E:LDA#&7F:STA&FE6D:LDX#0:LDY#0:LDA#&81:JSR&FFF4:LDAuserv:STAusersavvec:LDA userv+1:STAusersavvec+1 LDA#lineinp 256:STA userv:LDA #lineinp 256:STA userv+1:LDA #inrtpt 256:STA irq1v:LDA #inrtpt 256:STA irq1~{#v+1:PLP:LDA#247:LDX#&4C:LDY#0:JSR&FFF4:LDA#248:LDX# init_pgm 255:LDY#0:JSR&FFF4  2LDA#249:LDX# init_pgm 256:LDY#0:JSR&FFF4:RTS L.lineinp CMP#1:BNE out1:LDA #&10:STA &FE6E:LDA #247:LDX#0:LDY#0:JMP&FFF4  .out1 JMP (usersavvec) *.irqsavvec OPT EQUN#W(0) 4.usersavvec OPT EQUW(0) ># .inrtpt PHA:LDA&FE6D:BMIintok1 H.intout PLA:JMP(irqsavvec) R.intok1 #&10:BEQ intout \8TXA:PHA:TYA:PHA:LDA&FE60:#&F:TAX:LDY lookup_table,X f OPT ESC p5LDX #0:LDA #138:JSR &FFF4:PLA:TAY:PLA:TAX:PLA:RTI z ] p*MAKEKEY# ƒ'!&2A1=A%:!&2A5=B%:!&2A9=C%:!&2AD=D% H RݤEQUW(A%) \ ?P%=A% fP%?1=A% *MK2# ؝256 p P%=P%+2 z =PASS ݤEQUS(A$) J%  J%=1A$ ?P%=(A$,J%,1))  P%=P%+1   =PASS  ݤESC I E% [OPT PASS :CPY #27:BNE not27:LDA #125:JSR&FFF4:LDY#27:.not27:]  =PASS *MK3#, '"Address for code? &"A$ O%=("&"+A$) 'T%=0S%-1:T%?&3000=T%?&4001 Tr@ (]T%?&3000=&30 T%?&4001=&40 D%=M%+O%:L%?&3000=D%:T%?&3000=D% 256 M%=T%?&3000:L%=T% 2 <6''"Please select your filing system:":"*"$&4000 FSX%=0:Y%=&40:&F*MK3#nFF7:count%=015:count%?&3000=count%?&70::"Save Filename :"A$ PZO%=O% &FF0000:$&4000=("SAVE "+A$+" 3000 +"+~S%+" "+~(O%+W%-&4001)+" "+~O%):&FFF7 A*IF=[Standard software prepared 18/4/85 &8006 Auto-boot provision +