自带解释器、编译器的无线键盘实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
linuxfans
V2EX    分享创造

自带解释器、编译器的无线键盘实现

  •  
  •   linuxfans 2017-11-02 2:34:03 +08:00 4150 次点击
    这是一个创建于 2907 天前的主题,其中的信息可能已经有所发展或是发生改变。
    为了当年 tree 过的 newbee。。。给我们做的一个用于 DIY 机械键盘的低功耗蓝牙电路板做的。
    这是一个 forth 的实现,叫 BACK ( Be A Compilable Keyboard )。用 Thumb2 汇编以及 forth 语言写成,这部分实现是开源的( https://github.com/thumb2/back LGPL),对接到一个闭源的低功耗蓝牙键盘固件里面。
    结合一个 Notepad 之类的应用,就可以和键盘进行交互、定义一些新的词(循环分支等等都支持)等等。

    5 条回复    2017-11-06 22:21:19 +08:00
    noli
        1
    noli  
       2017-11-02 22:54:52 +08:00 via iPhone
    想法很有创意,动手能力令人赞叹,然而我还是比较看好在软件层做这种事情,的前途。
    linuxfans
        2
    linuxfans  
    OP
       2017-11-03 08:46:06 +08:00
    @noli 做键盘的配置吗?其实我只是为了让键盘有个噱头。之前也写过一两次的 forth 实现,当然,都不兼容标准 forth,只是用到什么就写点什么,但到最后都没什么卵用。这次的至少还有点用处吧,如果放在键盘固件里强推的话。
    其实还是靠 forth 这个有趣的语言(或者只能叫思想?),不然这个任务是不太可能完成的。不过最初还是想简单了,觉得两三个月就能搞定,后来拖拖拉拉搞了半年多才搞成现在这个样子,而且还有不少需要完善的地方。
    forestyuan
        3
    forestyuan  
       2017-11-03 15:07:15 +08:00
    市场太小了吧
    linuxfans
        4
    linuxfans  
    OP
       2017-11-03 16:07:54 +08:00
    @forestyuan 也不是说不会 forth 就用不了键盘,当一个可以自定义配列的低功耗蓝牙键盘也没问题。不过作为搬石砸脚头名的 forth (遥遥领先 lua ),把键盘搞崩的可能性还是很高的。但如果程序员因为自己的程序把键盘搞崩,应该是不好意思去责备厂商的吧
    linuxfans
        5
    linuxfans  
    OP
       2017-11-06 22:21:19 +08:00

    命令行以及编辑器的编辑功能
    if else then 的测试
    循环应该也是可以用的
    以上这些功能大概用了 1000 行汇编和 160 行 forth 代码
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2463 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 04:59 PVG 12:59 LAX 21:59 JFK 00:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86