PUB! Programmerbara USB-knappen (4 / 4 steg)
Steg 4: användning
Hur man använder PUB!
Detta är ett pågående arbete. Jag tror det skulle kunna förbättras genom minimera press + aktivera interaktion där så är möjligt.
Den grundläggande processen är:
- Anslut PUB! till en USB-port på datorn
- Starta anteckningar (på Windows) eller gedit (på Linux)
- Kontrollera att anteckningar/gedit har tangentbordsfokus. Detta är verkligen viktigt.
- Tryck och håll PUB! " s-knappen för cirka en sekund
- PUB! visar en typ av menyn i anteckningar/gedit (det är därför din textredigerare måste ha tangentbordets fokus)
- Navigera i menyn sker genom en kombination av trycka på knappen, trycka och vrida på knappen, vrida på knappen, eller trycka och hålla knappen i 1 sekund eller mer. Menyn visar du när du ska använda dessa alternativ.
Exempel på programmering ett lösenord
- Öppna textredigeringsprogram (till exempel gedit eller anteckningar) och kontrollera att den har tangentbordsfokus
- Plug PUB! till en värd USB-port
- Som standard är det i körläge så tryck och håll vridomkopplaren vredet för mer än 1 sekund till programmet läge. Följande visas i din texteditor:
PUB! Programmerbara USB-knappen v0.92
Main: Vända = Välj, tryck = OK, tryck på + tur = inställt på, tryck + håll = avsluta
0 anger tangenttryckning 00
Vid kod åtgärd
- Tryck på vridknappen att ställa en tangenttryckning. Det kommer att Visa:
PUB! Programmerbara USB-knappen v0.92
Nyckel: Vända = Välj, tryck på + tur = ändra, tryck på OK, = tryck + håll = avkastning
00 0004 en
Vid kod åtgärd
- Vrid vridknappen för att välja den första bokstaven i lösenordet (säga c) och tryck sedan på knappen Lägg till den till listan över åtgärder:
PUB! Programmerbara USB-knappen v0.92
Nyckel: Vända = Välj, tryck på + tur = ändra, tryck på OK, = tryck + håll = avkastning
01 0006 c
Vid kod åtgärd
00 0006 c
- Fortsätta att välja och lägga till de återstående bokstäverna (säga, en och t):
PUB! Programmerbara USB-knappen v0.92
Nyckel: Vända = Välj, tryck på + tur = ändra, tryck på OK, = tryck + håll = avkastning
03 0017 t
Vid kod åtgärd
00 0006 c
01 0004 en
02 0017 t
- Tryck och håll vridknappen att återgå till huvudmenyn:
PUB! Programmerbara USB-knappen v0.92
Main: Vända = Välj, tryck = OK, tryck på + tur = inställt på, tryck + håll = avsluta
0 anger tangenttryckning 03
Vid kod åtgärd
00 0006 c
01 0004 en
02 0017 t
- Vrid ratten tills "Göra lokala funktion" visas:
PUB! Programmerbara USB-knappen v0.92
Main: Vända = Välj, tryck = OK, tryck på + tur = inställt på, tryck + håll = avsluta
0 gör lokala funktion vid 03
Vid kod åtgärd
00 0006 c
01 0004 en
02 0017 t
- Tryck på reglaget "Göra" menyn:
PUB! Programmerbara USB-knappen v0.92
Gör: Vända = ändra, tryck = OK, tryck på + tur = inställt på, tryck + håll = avsluta
0 ta bort åtgärder på 00
Vid kod åtgärd
00 0006 c
01 0004 en
02 0017 t
- Tryck-och-vrid ratten moturs tills "Spara till EEPROM" visas:
PUB! Programmerbara USB-knappen v0.92
: Vända = ändra, tryck på + tur = Välj, tryck OK, = tryck + håll = avkastning
Spara till EEPROM
Vid kod åtgärd
00 0006 c
01 0004 en
02 0017 t
- Tryck på knappen Spara "katt" till EEPROM
Sparats i EEPROM
- Enheten är nu i körningsläge. Tryck på reglaget till "lek" inspelade sekvensen:
katt
Ett exempel på några villkorslogiken
- Skriv in följande program in i puben! enhet:
Vid kod åtgärd
00 E005 låt W = 05
01 E200 sätta W i R00
02 0006 c
03 0004 en
04 0017 t
05 002C utrymme
06 E500 säga R00
07 0028 RETUR
08 EF01 vänta 1 SEK
09 E801 låt W = W - 01
0a F701 hoppa om inte noll-01
- Nu när du trycker vredet i körningsläge borde du se den följande Visa (1 andra vänta mellan rader):
katt 05
katt 04
katt 03
katt 02
katt 01
Observera att trycka på knappen under uppspelning att avbryta uppspelning processen.
Menyfunktioner
Menyerna, om fullt utbyggd, skulle se ut så här:
KÖRA läge
Detta är den normala driftläge
Tryck för att starta uppspelningen
Tryck och håll in programmet läge
PROGRAM-läge huvudmenyn
0 set tangenttryckning (t.ex. en, retur)
0mxx tangenttryckning xx med hjälp av modifierare m
Rotera för att välja xx (t.ex. A)
Tryck på + Rotera att välja m (e.g. CTL + skift)
(för många att lista dem alla här)
1 set systemet kontroll kommando (e.g. power off)
1mxx systemet kontroll kommando xx (m ignoreras)
Rotera för att välja xx
2 set konsument enhet-kommandot (play, paus)
2xxx konsument enhet kommando xxx
Rotera för att markera xxx
D gör lokala funktion
D0xx ta bort åtgärder på xx
D1xx visningen (xx ignoreras)
Inger belastning från EEPROM (xx ignoreras)
DFxx spara till EEPROM (xx ignoreras)
E utföra instruktion
E0xx låt W = xx
E1xx Get W från Rxx
E2xx Put W i Rxx
E3xx jämför W till xx
E4xx jämför W Rxx
E5xx säga Rxx
E6xx formatet xx (visningsformat som säga använder)
E7xx låt W = W + xx
E8xx låt W = W - xx
E9xx som alla register som xx
EAxx låt W = W + Rxx
EBxx låt W = W - Rxx
ECxx låt W = W x Rxx
EDxx låt W = W / Rxx
EExx vänta xx millisekunder
EFxx vänta xx sekunder
F hoppa under förutsättning
F0xx hoppa relativa xx
F1xx hoppa om bära till xx
F2xx hoppa om hög till xx
F3xx hoppa om hög eller bär till xx
F4xx hoppa om låg till xx
F5xx hoppa om låg eller bär till xx
F6xx hoppa om inte noll eller bär till xx
F7xx hoppa om inte noll till xx
F8xx hoppa om noll till xx
F9xx hoppa om noll eller bär till xx
FAxx hoppa om inte låg eller bär till xx
FBxx hoppa om inte låg till xx
FCxx hoppa om noll eller låg till xx
FDxx hoppa om inte hög till xx
FExx hoppa om inte bär till xx
FFxx hoppa till xx
"Condition Code" utspelar sig efter varje aritmetiska eller jämföra operation, i en sätt inte obekant för äldre IBM stordator programmerare (helt slump naturligtvis) enligt följande:
ZHLC
100 x innebär: noll
010 x hjälpmedel: hög
001 x medel: låg
xxx1 medel: bära set (faktiskt inte implementerat ännu...)
xxx0 medel: ingen bär (.. .kan kastas som en dålig idé)
Så, hoppa om noll är kodad som:
F8xx
F = 0b1111 = hoppa under förutsättning
8 = 0b1000 = noll skick
xx = adress hoppade till om villkoret är sant
Och hoppa villkorslöst kodas som:
FFxx
F = 0b1111 = hoppa under förutsättning
F = 0b1111 = noll, låg, hög eller bära tillstånd
(det måste vara en av dessa)
xx = adress hoppade till om villkoret är sant
(som det alltid kommer att)