04-08-2018, 11:07 PM
About
mzOS is an operating system that allows you to define program mappings for the five user keys A, B, C, D and E that you can then switch easily with just two keystrokes. This is an improvement over having to move labels A-E around in the program whenever you want to remap A-E.
Example Program Label Layout
Suppose you have these programs installed (internal labels are used by the program preceeding it):
mzOS reads register 19 as the mapping of the user keys. E.g. if you store 1615141312 in R19 you will have the "Cash Register" programs on A through E available (Read the number as 5 separate 2 digit numbers). Whenever you want to remap your User keys just store a new mapping number in register 19.
The Remap Program
Instead of storing 10 digit mapping numbers into register 19 manually you can use the Remap program.
Put GTO 18 in line 001 of program memory to make it possible to use the R/S key to start the Remap program easily. That way you won't have to assign Remap to one User key in every mapping.
Put your favorite mappings into registers 10 and up. Example:
You can now do 1 R/S to switch to Math mode, then do 42 B to convert 42 to binary, then do 2 R/S and use your calculator as a cash register and finally switch to utility mode with 0 R/S to figure out how much days September has using 9 C.
The idea is that you put programs that you use together in the same mapping. That way, you don't have to remap too often and can start your programs with just one key stroke.
Editing Mapping with vSTO
If you have vSTO installed (gives you five times as many two digit virtual registers) you can store program numbers into virtual registers.
Virtual memory map:
Notice that editing the active mapping is only temporary, it will be overwritten by Remap.
mzOS Source Code
This is the minimal version, you can use this by storing mappings in register 19 manually:
Remap Source Code
Not needed to use mzOS, but it makes remapping a lot more convenient. Either put 18 in every mapping or put GTO 18 in line 001 and start it with R/S.
This whole thing is a work in progress so please comment and give me feedback.
mzOS is an operating system that allows you to define program mappings for the five user keys A, B, C, D and E that you can then switch easily with just two keystrokes. This is an improvement over having to move labels A-E around in the program whenever you want to remap A-E.
Example Program Label Layout
Suppose you have these programs installed (internal labels are used by the program preceeding it):
Code:
0: xth root of y
1: log_x(y)
2: y mod x
3: configurable dice rolls
4: (internal)
5: convert to binary
6: (internal)
7: vSTO
8: vRCL
9: (internal)
10: Budget 1
11: Budget 2
12: Cash Register: Entry
13: Cash Register: Done
14: Cash Register: Change
15: Cash Register: Bye
16: Cash Register: Abort
17: Days of Month
18: Remap
19: [mzOS]
A: [mzOS]
B: [mzOS]
C: [mzOS]
D: [mzOS]
E: [mzOS]
mzOS reads register 19 as the mapping of the user keys. E.g. if you store 1615141312 in R19 you will have the "Cash Register" programs on A through E available (Read the number as 5 separate 2 digit numbers). Whenever you want to remap your User keys just store a new mapping number in register 19.
The Remap Program
Instead of storing 10 digit mapping numbers into register 19 manually you can use the Remap program.
Put GTO 18 in line 001 of program memory to make it possible to use the R/S key to start the Remap program easily. That way you won't have to assign Remap to one User key in every mapping.
Put your favorite mappings into registers 10 and up. Example:
Code:
Mapping Comment Register Value A B C D E
------- ------------- -------- ---------- ------- ------- -------- ------ -------
0 Utilities 10 1110170708 Budget2 Budget1 days vSTO vRCL
1 Math 11 0005010203 XrootY toBin log_x(y) YmodX dice
2 Cash Register 12 1615141312 CRabort CRbye CRchange CRdone CRentry
You can now do 1 R/S to switch to Math mode, then do 42 B to convert 42 to binary, then do 2 R/S and use your calculator as a cash register and finally switch to utility mode with 0 R/S to figure out how much days September has using 9 C.
The idea is that you put programs that you use together in the same mapping. That way, you don't have to remap too often and can start your programs with just one key stroke.
Editing Mapping with vSTO
If you have vSTO installed (gives you five times as many two digit virtual registers) you can store program numbers into virtual registers.
Virtual memory map:
Code:
Virtual Register Content
---------------- ----------------
50 Mapping 0 E
51 Mapping 0 D
52 Mapping 0 C
53 Mapping 0 B
54 Mapping 0 A
55 Mapping 1 E
55 Mapping 1 D
... ...
95 Active Mapping E
96 Active Mapping D
97 Active Mapping C
98 Active Mapping B
99 Active Mapping A
Notice that editing the active mapping is only temporary, it will be overwritten by Remap.
mzOS Source Code
This is the minimal version, you can use this by storing mappings in register 19 manually:
Code:
; loader
LBL .9
10^x
STO I
R v
RCL .9
RCL / I
FRAC
STO I
R v
2
10^x
STO * I
R v
GTO I
; user keys
LBL A
1
0
GTO .9
LBL B
8
GTO .9
LBL C
6
GTO .9
LBL D
4
GTO .9
LBL E
2
GTO .9
Remap Source Code
Not needed to use mzOS, but it makes remapping a lot more convenient. Either put 18 in every mapping or put GTO 18 in line 001 and start it with R/S.
Code:
LBL .8
STO I
CLx
1
0
STO + I
CLx
RCL (i)
STO .9
RTN
This whole thing is a work in progress so please comment and give me feedback.