Roadmaps

Yeah, working on it… A bit of a mess as its been merged from several sources. Cleaning and sorting as we go!

Current

  • Bin Cache – post build actions
  • Update project templates to use build\bin for kernel and other refs
  • Update build to use bin dir, and post build actions too. A bat which can be called like CT.
  • Cosmos.TestRunner.* needs in some project, was removed from Kernel.
  • Consolidate naming of projects
    • Doc all projects in sln readme
    • Cosmos.IL2CPU.plugs –> Cosmos.IL2CPU.Attribs
    • Cosmos.Debug.Kernel –> Cosmos.Debug – Common? Merge – Check all Cosmos.Debug for possible merges
    • Cosmos.Debug.Kernel.Plugs.Asm –> Cosmos.Debug.Asm
    • Move CGS into kernel area
  • Split Solutions into smaller ones.
    • Builder can emit bins to source\bins or something and ref bins there via relative path.
    • We could also even make post build actions in the other SLNs to update that bin dir when they are built so if we need to update something from another SLN, we dont have to run the whole builder again….
    • See \Solutions – Readme.txt for current progress
    • Split out source dir by area too? Common, etc?
  • Builder
    • Do we still need UAC work around task?
  • Website
    • Fix broken links in imported docs as per report.
    • https://github.com/CosmosOS/Cosmos – Move info from down below to website (mostly into sections on website), and have github readme point to website.

Waiting on Others

  • https://github.com/Microsoft/msbuild/issues/2123
    Severity Code Description Project File Line Suppression State
    Error SkipCompilerExecution and ProvideCommandLineArgs should be set before calling the CompileDesignTime target Cosmos.TestRunner.Core ….\Microsoft.Managed.DesignTime.targets 243
  • Severity Code Description Project File Line Suppression StateSeverity Code Description Project File Line Suppression StateError CS1061 ‘Type’ does not contain a definition for ‘GetMethod’ and no extension method ‘GetMethod’ accepting a first argument of type ‘Type’ could be found (are you missing a using directive or an assembly reference?) Cosmos.Core.Plugs.Asm C:\source\Cosmos\source\Cosmos.Core.Plugs.Asm\Delegate\DelegateCtorAsm.cs 32 Active
  • https://github.com/dotnet/project-system/issues/1718

Pending

Website

  • News section
  • UserKit release section (under news)
  • Crowdfunding
  • More videos and articles

Etcetera

  • dynamic loading of VSIP pkgs to allow easier upgrades while developing without need to rerun install.bat
  • redo plug API
  • Improve try..finally handling
  • Struct (a part for primitive types that have hardcoding to make them work) have problems when boxing
  • Interfaces are not really usable on Cosmos as when you use for example IEquatable and plug on other classes is not found you need to plug those methods. This IL2CPU behavior is correct but I’m under the impression that in the end we end to plug entire classes only to remove the Interfaces inheritance
  • Enum’s toString() is not really working (the usual “Object.toString()”) is not implemented is shown. In Net Core it seems reflection is not used anymore to do this… we should see if we can make it work
  • A lot of BCL classes are not working (Dictionary is probably the biggest and more important one)
  • Make a test runner test with MD5 and after that AES.
  • Interfaces in scanner
  • Speed up install.bat
  • PCI init fails if no HDD
  • Optimize compiler as option – Finish all ops first before doing any optimization options.

Memory Manager (RAT)

  • Whats left?

File System (FAT)

  • Whats left?

Cosmos Graphics System (CGS)

  • Merge old VGA driver in

.NET Core

  • Minor buglets left, but does work.

Visual Studio 2017 / Debugger

  • Strings don’t work as watches (Shows null)
  • Compiler generated locals are showing and shouldn’t

Plug Tool

  • IL2CPU should fail if it encounters a plug that isn’t matched/used
  • Some code exists already as a ilspy plugin, start there
  • Select an item, generate plug shell to clipboard. Later on to plug source project.
  • Scan a project, show all existing plugs
  • Scan a project, show all things that NEED plugged

Zork Console

Summaries

1.0

  • .NET Core
  • Visual Studio 2017
  • File System (FAT)
  • Memory Manager (RAT)
  • Cosmos Graphics System (CGS)

1.1

  • Hyper-V Gen1
  • Azure
  • UDP
  • TCP
  • Telnet Zork

1.2

  • Raspberry
  • Perspex UI
  • IWML UI
  • WWW
  • WWW Zork

Future

  • Visual Studio Code Support
  • IL group emitting
  • 64 bit
  • Threading
  • debugger
  • change to new vs debugger
  • x# further integration
  • dynamic loading of libs at runtime
  • USB