Releases: tinkeros/TinkerOS
TinkerOS 5.20-rc5
Same as rc4 with changes:
- Added Center command (Menu View -> Center, + key) to 3D Mesh Editor
- Added ability to select all triangles matching the current color (Menu Edit -> SelectSameColor S key)
TinkerOS 5.20-rc4
Same as rc3 with changes:
- Added Ext. Palette display demo
- Renamed random colored squares demo.
- Extended palette is now reset after screen saver exit.
- Misc. cleanup and fixes of new demos
- Added 7 new tests to OSTestSuite
TinkerOS 5.20-rc3
Same as rc2 with:
GrViewdeprecated (was buggy), now GR files open inGrPaintF10takes a screenshot and immediately opens it inGrPaintGrPaintcan now paint with stamps (GR files you put in/Misc/Paint/Stampsthat can be used as paint brushes)
TinkerOS 5.20-rc2
Same as rc1 with:
- Terry Dance screensaver now has less artifacts and uses new palette so it won't corrupt the default extended palette
- Added
/Demo/ScreenSavers/TDanceSpin.HCmaking Terry a sprite so he can spin while dancing.
TinkerOS 5.20-rc1
Same as rc0 with:
- GrPaint can show/hide palette to pick colors from with
SHIFT-P - Fixed crash introduced that could occur in
WinMax - Misc. refactoring
TinkerOS 5.20-rc0
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.
TinkerOS 5.19
General:
This release is mainly just to get out initial multi-channel sound support which is still work in progress. Currently 9 channels (0-8) should be usable. See demo Demo/Snd/RisenMulti.HC for playing music with multiple instruments. You can also independently play different notes with different setup instruments on different channels by manually calling SndM.
Adam:
- Multi-Channel play which acts like normal
Playbut using one or more specified channelspublic U0 PlayM(U8 *st,U8 *words=NULL, I64 ch_start=0, I64 ch_end=0)
Apps:
- Cube now has x key to form + of the same color on top of cube to help get started
- Cube fixed a possible hang scenario
Demo:
- Extended OPL code to allow usage of 9 channels instead of just one. Added optional channel argument to pretty much every function (
SetFreq, SetVolume, SetKeyState, OPLBeep, U64Inst, RandInst, PickInst, etc) - Added Demo/Snd/RisenMulti.HC - Demo that plays risen with different channels and/or more than one channel
Kernel:
- Added multi-channel Snd function variant
U0 SndM(I8 ona=0, I64 chan=0)which can play an ona on any channel that has been properly setup when in OPL mode (does not work with the PC speaker or other non-OPL sound backends)
Note: ISOs will NOT boot from USB, if you want to use USB you must use the .img file.
TinkerOS 5.18
General:
This release is mainly a bugfix release. Some attempts at speedups I made didn't work on all systems I've since tested so I reverted them. Also some improvements to PS/2 mouse detection and adds AC'97 experimental sound support for VirtualBox.
Adam:
- Adam/Device/Comm - Disabled running
CommInit;by default. Can delay boot on some systems, you can always addAdam("CommInit;\n");to your MakeHome.HC if you want it on boot. - SysSurvey - check drive mounted before trying to use it.
- TOSClient - do not run
CursorRemFile(it's nice getting rid of the cursor, but reads and re-writes all files which causes drive fragmentation over time). - Have Adam spawn AutoComplete instead of Seth (Seth caused some hangs on some of my machines, must be a race condition bug so I reverted this for now).
Demo:
- Add Experimental AC'97 driver (/Demo/VM/AC97) for people who want to use VirtualBox with PC speaker like sound that cannot or do not want to compile the VMusic extension for OPL sound instead.
Home
- MakeHome - Disabled some experimental stuff to speed boot, added loading of AC'97 driver if detected.
Kernel:
- Added missing bounds check to Let2BlkDevType.
- Speed up looking PCI device finding for some cases.
- Does not Spawn mouse detection in KMain anymore, now waits for it to complete. This improves the likelihood of PS/2 mice/trackpads working on some machines I've tested and only causes a minimal delay.
Notes:
- Tested baremetal on Lenovo ThinkPad T420, Lenovo ThinkPad T430, Dell Latitude E7470
- TempleOS/TinkerOS/ZealOS all make assumptions about how they can use the memory map of your system which may not be safe assumptions and could even cause damage. The worst I've ever had happen was it crashes or fails to boot, but you have been warned, use them at your own risk.
TinkerOS 5.17
General:
This release is mainly because I fixed a bug in the HolyC compiler and nobody wants bugs in their compiler.
Adam:
- SethFile/SethREPL will now start in the current directory it was spawned from instead of home.
- SysSurvey will output if Clonezilla image was likely used to partition the disk and make some smart default answer changes based on earlier question responses.
Compiler:
- Disabled optimization which can cause incorrect results when using the ~ operator (
/Demo/Tests/CompilerFix.HC.Zfails on TempleOS since the HolyC compiler produces incorrect results without this fix).
Demo:
- Add calculation of PI benchmark/test. This is not the fastest implementation by any means! My primary purpose for this code was to test and compare compilers using arithmetic and bit operations on integers. Code is WIP, increasing the number of digits beyond a certain point will not produce correct digits (not because the algorithm is incorrect, but because you will overflow the max large integers the work in progress big number library supports).
Doc:
- 16 documented systems tested with successful baremetel installs now. (+4 more)
- Other minor changes.
Downloads
- Replaced Terry's TOSZ with a statically compiled version (Linux x86_64) since his old dynamically linked version will not run on many modern Linux distros anymore. You can get the new statically linked version of TOSZ here or from the assets below.
Home
- Updated
AutoHomehelper function. The main use for this is to quickly mount your drive when booting from the Live USB. It simply is a shortcut that mounts the hard drive and changes to C:\Home. It now by default to will do extended probing in the IDE/Legacy case if needed to find the drive to auto mount.
Misc:
- Add PI calculation and compiler fix unit tests to OSTestSuite.
USB Live boot image
- Improved USB image backup scripts to suppress some error messages for certain cases.
- Added statically compiled TOSZ to root of USB drive. (When running clonezilla its path is /lib/live/mount/medium/TOSZ)
TinkerOS 5.16
General:
The main focus of this release is to improve the ability to do baremetal installs on real hardware. This release contains two critical fixes which allows it to live boot from USB to a ram disk on more machines and also AHCI mode fixes to allow installation on more machines. It contains fixes for bugs found and installer improvements to help make the baremetal install process go more smoothly.
Adam:
- Fixed letterbox mode graphics issue.
- Added functions Do640x480, Do800x600 to compile quick fail safe resolutions.
- Prep Comm port functions to support both IO port and MMIO serial ports.
- Default to fast graphics if running baremetal.
- LPTRep fixes.
- Add SysSurvey question to identify custom PC builds for future motherboards supported section.
- Removed more unique SysRep information for SysSurvey results.
- Added function GetBootDrvPortInfo to output IO ports to SysSurvey for boot drive for IDE mode installs.
Demo:
- Updated OPL code, verified OPL3LPT works with real parallel port setup.
- Removed message when VirtualBox not detected.
Doc:
- Added successful baremetal installs page with 12 (a nice biblical number) successful TinkerOS baremetal installs. Also includes 2 desktops and 2 laptops that work with TempleOS as well!
- Added baremetal install guide for those who want to be adventurous!
Installer
- Installer help text improvements.
- Added option to try to auto mount pre-partitioned drives.
- Extended probing for drives if needed when in IDE mode.
Kernel:
- Fixed AHCI issues with some machines.
- Added MixedIn/OutU8 like In/OutU8, but can do MMIO too.
- Extended MountAuto and MountIDEAuto to be able to do more probing for drives.
- PCIE cleanup, still WIP.
Once
- Added additional help text if boot went to text mode.
General
This release contains two critical fixes which allows it to live boot from USB on more machines and also to install in AHCI mode on more machines.
USB Live boot image
- Modified USB early kernel to help prevent memory getting allocated which can corrupt initramfs and prevent USB boot to ram disk.
- Added boot option to save just the Survey.DD files found on partitions (to quickly copy just the results from
SysSurveyto the USB thumb drive).