TinkerOS 5.20-rc0
Pre-release
Pre-release
AutoComplete lists some previously missing shortcuts for:
- Page Break (when
CTRLheld long) - Line Feed (when
CTRL-SHIFTheld long)
Safer Ed:
- Ed now warns if you open the same file and tries to detect and warn if the file was changed since it has been opened. You can disable these in your MakeHome.
Extended palette loaded by default
- Extra TinkerOS colors are set to default values specified here:
- https://tinkeros.github.io/palette.html
New Graphics Demos in Demo/Graphics/TinkerOS
- Example of drawing a 24-bit full color image
- Example of drawing a 238 color dithered version of the same as a sprite
- Example rotating Hex Prism
- Example Texas dithersparkle flag
- Palette random squares/colors demo
- Code for writing uncompressed PNG files is in
Adam/Opt/Gfx/Png.HC, WIP
New Paint App:
- Similar to ZealOS Paint, but modified to operate on a CDC and GR files instead of the raw framebuffer so that you can use what you draw inside the OS with
GrBlotor as sprites. - Run
GrPaint;for new canvas orGrPaint(filename)to edit a GR file. - Can take advantage of all new colors in new extended default palette.
- Can navigate colors space with r,g,b or h,s,v to operate in hue, saturation, visibility color space. (Default is increase, use
SHIFTto decrease). - Can take advantage of native zoom feature (
CTRL-ALT-Zto zoom in,CTRL-ALT-SHIFT-Zto zoom out) - Can edit screenshot GR files (taken with
F9) or screen clips (taken withSHIFT-F9) - Right clicking a GR file will display Paint Edit option now.
- Left clicking a GR file still just views it only (
ESCto exit view)
New key/keyboard shortcuts:
- Kernel now recognizes
CTRL-\as CH_CTRL_SLASH Ctrl-\comments selected codeCtrl-Shift-\uncomments selected codeAlt-Shift-MUnmaximized a window maximized withAlt-M
New Drivers:
PIO SDHCI driver to support SD cards, works with QEMU and (slowly with real hardware Lenovo T420/T430 sd card slot)
- Run SdhciInit, then Mount with drive W
- Card should contain only small (< 2GB) size FAT32 partitions with a MBR partition table.
- This will not work with all card readers, for any chance of it workings the card reader should use the sdhci_pci driver in Linux (check with lscpi).
- This will not work with USB SD card readers or those using other Linux drivers such as rtsx_pci.
- Example QEMU command line addition:
-device sdhci-pci -device sd-card,drive=mysddrive -drive if=none,index=2,file=mysdcardimage.raw,id=mysddrive - Example working hardware probe that lists sdhci_pci: https://linux-hardware.org/?probe=cd0155712e
VMMouse driver
- Allows seamless absolute mouse for QEMU and VMWARE (no longer have to capture and uncapture mouse)
- It is loaded automatically if a hypervisor is detected and VMware mouse support is detected.
- Note raw mouse modes don't work with this, but only a few games take advantage of this.
- You can disable this in your MakeHome if desired.
Other Misc Functions:
- GetMSR - Get CPU model specific register values (complement to SetMSR, don't use these unless you really know what you're doing!)
- GetSysMan - Get system manufacturer as string from SMBIOS
- GetSysProduct - Get system production as string from SMBIOS
- GetSysVer - Get system version as string from SMBIOS
- MountFileB can mount an ISO.C from a buffer in memory (mainly used to improve RAM disk booting)
- MountFile can mount non-contiguous files via MountFileB.
- MIn/OutU8/16/32/64/UncachedDevCAlloc/UncachedDevFree - MMIO helper functions for possible future driver code (used by SDHCI driver)
- MemMove - moves memory
- MemZero - zeros memory
- RepOutU8 - Asm code assembed wrong, patched instruction manually
- SYield - Only Yields if on Adam Core, but not if Seth
- ThisFunc - Returns a pointer the function it is called from
- ThisFuncName - Returns the name of the function it is called from
- PciFindByID - Now has a count for finding multiple instance of same device
- WinUnmax - Restores window to prior unmaximized state (state is now saved in WinMax)
Other:
- You can now expect the following define to tell if you are running on TinkerOS:
#define TINKEROS 1 - Not every change is listed, I tried to only put what people might actually care about.