Post Reply 
(15C) Operating System: mzOS
04-08-2018, 11:07 PM (This post was last modified: 04-09-2018 09:23 AM by Michael Zinn.)
Post: #1
(15C) Operating System: mzOS
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):

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.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
(15C) Operating System: mzOS - Michael Zinn - 04-08-2018 11:07 PM
RE: (15C) Operating System: mzOS - gardel - 04-09-2018, 01:05 PM



User(s) browsing this thread: 1 Guest(s)