Skip to content

Implement Nik's Multithreading #1921

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 461 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
461 commits
Select commit Hold shift + click to select a range
018a7fd
Merge branch 'feature/tcp' of https://github.com/CosmosOS/Cosmos into…
valentinbreiz May 12, 2021
65186e7
Merge pull request #1772 from CosmosOS/feature/tcp
valentinbreiz May 12, 2021
ac1d534
Fix #1775 + Open existing connection
valentinbreiz May 13, 2021
1010e38
Merge pull request #1776 from CosmosOS/feature/tcp
valentinbreiz May 13, 2021
2dee948
Change if forest to switch case
valentinbreiz May 13, 2021
d9878c3
Add more cases on LISTEN + SYN_SENT + Typo
valentinbreiz May 18, 2021
90573b5
Add basic ATAPI support
MishaTy May 20, 2021
808f6d5
Fix a hang up
MishaTy May 20, 2021
71c59fb
Add the comments back
MishaTy May 20, 2021
d1459fc
Small fix
MishaTy May 20, 2021
76bbb83
Pass packets if CLOSED
valentinbreiz May 21, 2021
2815c84
Merge pull request #1777 from CosmosOS/feature/tcp
valentinbreiz May 22, 2021
c70f7ce
Merge branch 'master' into atapi-driver
MishaTy May 22, 2021
edf7074
Typo
valentinbreiz May 24, 2021
8445c33
Merge pull request #1788 from CosmosOS/valentinbreiz-patch-3
valentinbreiz May 24, 2021
a5f8770
Bad link
valentinbreiz May 26, 2021
714e01b
Merge pull request #1791 from CosmosOS/valentinbreiz-patch-3
valentinbreiz May 26, 2021
67c96e1
Add TcpListener class + Move tcp state machine to Tcp.cs
valentinbreiz May 27, 2021
e9c1fcd
TcpListener fixes
valentinbreiz May 27, 2021
2d1467d
NRE fix on TcpClient + listeners list creation
valentinbreiz May 27, 2021
6207fbb
Add Dispose to TcpListener class + Documentation comments
valentinbreiz May 27, 2021
680a0e9
PSH/ACK fix after SYN_RECEIVED
valentinbreiz May 27, 2021
7c68dfe
Add TcpListener to documentation
valentinbreiz May 27, 2021
b6c1756
Make AcceptTcpClient blocking + PSH ACK fixes + Remove listener when …
valentinbreiz May 28, 2021
67b3486
Add debug
valentinbreiz May 28, 2021
d659112
Better byte conversion to hex + Remove useless exceptions
valentinbreiz May 28, 2021
ac3b9d8
Move utils to ArrayHelper.cs
valentinbreiz May 28, 2021
5e31529
Update Cosmos.iss
KM198912 May 29, 2021
6181522
Update VFS.md
KM198912 May 29, 2021
8476383
Merge pull request #1794 from CosmosOS/KM198912-patch-1
quajak May 29, 2021
50f3072
Merge branch 'master' into KM198912-patch-2
KM198912 May 29, 2021
9552187
Merge pull request #1795 from CosmosOS/KM198912-patch-2
quajak May 29, 2021
6a89122
Add comments
valentinbreiz May 31, 2021
7221a38
Add URG boolean value to TcpPacket class + Add getFlags method + Use …
valentinbreiz May 31, 2021
d567a46
Use TryGetValue instead of ContainsKey
valentinbreiz May 31, 2021
c77803f
Merge branch 'master' into feature/tcp
valentinbreiz May 31, 2021
054a097
Merge pull request #1792 from CosmosOS/feature/tcp
valentinbreiz May 31, 2021
3b65d71
Handle ACK when LISTEN (happens when distant client not closed)
valentinbreiz Jun 1, 2021
458acc3
Merge branch 'master' into feature/tcp
valentinbreiz Jun 1, 2021
ac455db
Merge pull request #1798 from CosmosOS/feature/tcp
valentinbreiz Jun 1, 2021
4c55c6c
Start FTP server over TCP
valentinbreiz Jun 2, 2021
ecd6a49
Add SYST, PWD, PSV and LIST commands
valentinbreiz Jun 2, 2021
d4ccdc5
Unix style LIST (filezilla support)
valentinbreiz Jun 2, 2021
7dd1f4a
Add RMD + MKD + DELE commands
valentinbreiz Jun 2, 2021
002993a
ProcessPwd fix
valentinbreiz Jun 2, 2021
f26328e
Filesystem fixes
valentinbreiz Jun 2, 2021
3a34cb6
Add CDUP + backslash fixes
valentinbreiz Jun 2, 2021
a6c2c3e
Command content with space fix
valentinbreiz Jun 2, 2021
1e9c829
Add STOR + RETR command
valentinbreiz Jun 2, 2021
b12504a
Remove arg check on LIST command
valentinbreiz Jun 2, 2021
22225b8
Tcp: Allow multiple connection on same port
valentinbreiz Jun 3, 2021
c66b953
Fix bochs and cleanup
MishaTy Jun 3, 2021
7ebd7b9
Add the remaining documentation back
MishaTy Jun 3, 2021
596586a
Merge branch 'master' into atapi-driver
MishaTy Jun 3, 2021
a2f1324
Fix a error
MishaTy Jun 3, 2021
d37fa28
Merge branch 'atapi-driver' of https://github.com/CosmosOS/Cosmos int…
MishaTy Jun 3, 2021
2b27ae8
Update LICENSE.txt
Arawn-Davies Jun 3, 2021
a734e42
Merge pull request #1803 from CosmosOS/Arawn-Davies-license-patch
charlesbetros Jun 4, 2021
c9fb31e
Add FTP active mode
valentinbreiz Jun 4, 2021
c937aaa
Add QUIT command + PORT fix
valentinbreiz Jun 4, 2021
708f62b
Add TYPE command (to support FileZilla)
valentinbreiz Jun 4, 2021
3615506
Move FTP client + Command Manager to other files + add code doc
valentinbreiz Jun 4, 2021
df69781
Merge branch 'master' into feature/ftp
valentinbreiz Jun 4, 2021
950ad5c
Remove useless Close() calls
AnErrupTion Jun 4, 2021
1f7d3f8
CWD fix + DELE/MKD/RMD fix
valentinbreiz Jun 4, 2021
043aae6
Merge branch 'feature/ftp' of https://github.com/CosmosOS/Cosmos into…
valentinbreiz Jun 4, 2021
9873781
Clean code
valentinbreiz Jun 4, 2021
acd4dc6
Set only one FTP connection for now + CDUP fix
valentinbreiz Jun 4, 2021
fbc3bf6
Merge pull request #1804 from SartoxOnlyGNU/master
valentinbreiz Jun 4, 2021
84a52a8
Merge branch 'master' into feature/ftp
valentinbreiz Jun 4, 2021
14620a1
Merge branch 'master' into atapi-driver
Arawn-Davies Jun 5, 2021
a3acb7d
More XML summaries and documentation for methods, renamed AtaPio to m…
Arawn-Davies Jun 5, 2021
9b6a2f6
[Documentation] Improve VFS article
AnErrupTion Jun 6, 2021
09e2ca4
Add second note for formatting
AnErrupTion Jun 6, 2021
1f7e813
Merge branch 'master' into master
AnErrupTion Jun 6, 2021
e0b635f
Use System.IO functions
AnErrupTion Jun 7, 2021
8fe8164
Update index.md
Arawn-Davies Jun 7, 2021
d09bc44
Add code documentation + Transmission Control Block
valentinbreiz Jun 8, 2021
b8bac55
Add TCB checks to SYN_SENT + SYN_RECEIVED
valentinbreiz Jun 8, 2021
dc78a48
Add more TCP checks
valentinbreiz Jun 8, 2021
bf87750
Remove useless packet duplication check
valentinbreiz Jun 8, 2021
93dc384
Update window + More TCP checks for ESTABLISHED state
valentinbreiz Jun 8, 2021
7568caa
Change thrown new Exception to debugger messages
valentinbreiz Jun 8, 2021
160f6f7
Update index.md
Arawn-Davies Jun 8, 2021
28f1e97
Merge pull request #1811 from CosmosOS/Arawn-Davies-patch-1
quajak Jun 8, 2021
f900925
FTP CWD fixes + Remove PASV mode for now
valentinbreiz Jun 8, 2021
e34a87a
Merge branch 'master' into atapi-driver
charlesbetros Jun 8, 2021
c10a6b0
Create install.md
Arawn-Davies Jun 8, 2021
5addd50
Merge pull request #1779 from CosmosOS/atapi-driver
MishaTy Jun 8, 2021
5362347
Merge branch 'master' into Arawn-Davies-patch-1
quajak Jun 8, 2021
c46d864
Create docs_or_website.md
Arawn-Davies Jun 8, 2021
190e883
Merge pull request #1815 from CosmosOS/Arawn-Davies-patch-1
quajak Jun 8, 2021
2088840
Update docs_or_website.md
Arawn-Davies Jun 8, 2021
a86245f
Merge branch 'master' into Arawn-Davies-patch-2
quajak Jun 8, 2021
02ec77c
Add new UI
MishaTy Jun 8, 2021
0275fc5
Merge branch 'master' into devkit-ui
MishaTy Jun 8, 2021
7d8d11a
Merge pull request #1816 from CosmosOS/Arawn-Davies-patch-2
quajak Jun 8, 2021
e6515a1
[installer]
MishaTy Jun 8, 2021
8ad33c4
Merge branch 'devkit-ui' of https://github.com/CosmosOS/Cosmos into d…
MishaTy Jun 8, 2021
dccc4e1
Merge branch 'master' into devkit-ui
MishaTy Jun 8, 2021
c4dd27d
CWD and PWD fixes + Prevent Receive block if state != ESTABLISHED
valentinbreiz Jun 9, 2021
eeba664
Merge branch 'master' into feature/ftp
valentinbreiz Jun 9, 2021
d0eb1b3
Reply to the FTP client that PASV is not implemented.
valentinbreiz Jun 9, 2021
c0ad2a0
Merge branch 'feature/ftp' of https://github.com/CosmosOS/Cosmos into…
valentinbreiz Jun 9, 2021
0b6ae04
Add filesystem check
valentinbreiz Jun 9, 2021
d694df1
Addressing the review
MishaTy Jun 9, 2021
96c8f41
Merge pull request #1818 from CosmosOS/devkit-ui
quajak Jun 9, 2021
859458b
Add debug paramater to ctor
valentinbreiz Jun 9, 2021
d24f23f
Merge branch 'master' into feature/ftp
valentinbreiz Jun 9, 2021
3c7c947
Merge branch 'master' into master
AnErrupTion Jun 9, 2021
82d15ef
Add FTP documentation article
valentinbreiz Jun 9, 2021
5698c57
Update Network.md
valentinbreiz Jun 9, 2021
523bcec
Update Network.md
valentinbreiz Jun 9, 2021
a469cb3
[Doc] Add comments to FTP snippet
valentinbreiz Jun 9, 2021
5301ff5
Merge pull request #1799 from CosmosOS/feature/ftp
valentinbreiz Jun 9, 2021
16233c1
Merge branch 'master' into master
AnErrupTion Jun 9, 2021
1463ee9
Merge pull request #1807 from SartoxOnlyGNU/master
Arawn-Davies Jun 9, 2021
7b3a649
[Documentation] Improve CGS article
AnErrupTion Jun 9, 2021
e18ec6d
Merge branch 'master' into master
AnErrupTion Jun 9, 2021
e5a069f
CGS doc changes (requested)
AnErrupTion Jun 10, 2021
2b4fd68
CGS doc changes (requested)
AnErrupTion Jun 10, 2021
ac84221
Merge pull request #1821 from SartoxOnlyGNU/master
quajak Jun 10, 2021
deff6a3
Fixes #1820
Arawn-Davies Jun 10, 2021
531021d
Merge pull request #1822 from CosmosOS/Arawn-Davies-patch-1
Arawn-Davies Jun 11, 2021
19fb023
Update Network.md
valentinbreiz Jun 11, 2021
ec863ae
Added more exclusions to appveyor.yml
Arawn-Davies Jun 11, 2021
e05a3a8
Update Cosmos.iss
Arawn-Davies Jun 11, 2021
7c4a574
Merge pull request #1827 from CosmosOS/Arawn-Davies-patch-2
Arawn-Davies Jun 11, 2021
da959f6
Fix bugs
AnErrupTion Jun 11, 2021
d8f1275
Undo commit 'Fix bugs'
AnErrupTion Jun 11, 2021
e915d73
Add Initialize(bool aShowInfo)
AnErrupTion Jun 11, 2021
4c2e789
Merge pull request #1828 from SartoxOnlyGNU/master
quajak Jun 11, 2021
6d00f56
Delete Power.cs
AnErrupTion Jun 11, 2021
b77e361
Add files via upload
AnErrupTion Jun 11, 2021
d977400
Add back Power.cs
AnErrupTion Jun 11, 2021
d13e8ae
Update Power.cs
AnErrupTion Jun 11, 2021
a91856f
Plug Environment.Exit()
AnErrupTion Jun 11, 2021
b81ce8d
Merge pull request #1830 from SartoxOnlyGNU/master
charlesbetros Jun 11, 2021
bd2904c
Merge branch 'master' into Arawn-Davies-patch-1
Arawn-Davies Jun 12, 2021
7d9ccb7
Merge branch 'master' into valentinbreiz-patch-3
Arawn-Davies Jun 12, 2021
a4953e7
Merge pull request #1826 from CosmosOS/Arawn-Davies-patch-1
Arawn-Davies Jun 12, 2021
acd49d6
Merge branch 'master' into valentinbreiz-patch-3
Arawn-Davies Jun 13, 2021
3d919f7
Merge pull request #1824 from CosmosOS/valentinbreiz-patch-3
valentinbreiz Jun 13, 2021
e89bf9e
Update appveyor.yml
Arawn-Davies Jun 13, 2021
4356c9c
Merge branch 'master' into Arawn-Davies-patch-1
Arawn-Davies Jun 13, 2021
4493e2a
Merge pull request #1831 from CosmosOS/Arawn-Davies-patch-1
charlesbetros Jun 13, 2021
e86bfdf
Add FAT32 formatting
valentinbreiz Jun 14, 2021
986442f
Add FAT32 formatting to tests
valentinbreiz Jun 14, 2021
a103dfa
Add CreateFatFileSystem static
valentinbreiz Jun 14, 2021
e07b943
Format empty partition
valentinbreiz Jun 14, 2021
162698d
Fixes
valentinbreiz Jun 14, 2021
c96a6aa
Fill ManagedMemoryBlock + better comments + remove Fat.ClearAllFat();
valentinbreiz Jun 15, 2021
4097cbc
Coding style
valentinbreiz Jun 15, 2021
20e807c
Update toc.yml
Arawn-Davies Jun 15, 2021
6e61506
Clean code + add sanity checks
valentinbreiz Jun 15, 2021
5450634
Replace 0:\ by 0 in VFSManagerTest
valentinbreiz Jun 15, 2021
c9163a0
Clean all sectors
valentinbreiz Jun 15, 2021
b7c226d
Fix test (name should be 0 only, not 0:\)
valentinbreiz Jun 16, 2021
1357256
Add FAT16 and FAT12 message
valentinbreiz Jun 16, 2021
f663760
Clean sectors with one call
valentinbreiz Jun 16, 2021
aca0063
Update issue templates
quajak Jun 16, 2021
991d3a8
Better CheckDataSize
valentinbreiz Jun 16, 2021
4dec7c9
Better FatSectorCount computation
valentinbreiz Jun 16, 2021
294f288
Update FatFileSystem.cs
valentinbreiz Jun 16, 2021
88a056c
Merge pull request #1833 from CosmosOS/Arawn-Davies-patch-1
charlesbetros Jun 16, 2021
3d68542
Merge branch 'master' into feature/fatformat
valentinbreiz Jun 17, 2021
6e4692d
Really don't know where the bug is
valentinbreiz Jun 17, 2021
e4d819f
Erase data if Quick mode disabled
valentinbreiz Jun 17, 2021
9d5e534
Don't hardcode sector size
valentinbreiz Jun 17, 2021
98544e4
Check FileSystem type in CosmosVFS format + add test for it + code do…
valentinbreiz Jun 18, 2021
a73f591
Try to fix format issue
MishaTy Jun 18, 2021
d5dca75
Data cleaning fix (for now only first 5 sectors)
valentinbreiz Jun 18, 2021
3b494ce
Merge branch 'feature/fatformat' of https://github.com/CosmosOS/Cosmo…
valentinbreiz Jun 18, 2021
03c44fc
Remove useless code
valentinbreiz Jun 18, 2021
eec0249
Do not allocate new ManagedMemoryBlock each enumeration
valentinbreiz Jun 18, 2021
69fe754
More fixes
MishaTy Jun 18, 2021
8fcbb39
Merge branch 'feature/fatformat' of https://github.com/CosmosOS/Cosmo…
MishaTy Jun 18, 2021
7f6a063
GetFileSystemFromPath fix (don't instantiate a new FileSystem!!)
valentinbreiz Jun 18, 2021
bd606d0
Merge branch 'feature/fatformat' of https://github.com/CosmosOS/Cosmo…
valentinbreiz Jun 18, 2021
749591f
FileSystemExists after formatting.
valentinbreiz Jun 18, 2021
1f6d9f9
Update build-error-and-visual-studio-problems.md
Arawn-Davies Jun 19, 2021
cbbe553
Merge branch 'master' into quajak-patch-4
Arawn-Davies Jun 19, 2021
7ca5c4a
Update FatFileSystem.cs
valentinbreiz Jun 20, 2021
a8a8179
Make the format work on windows
MishaTy Jun 20, 2021
87878e5
Put second FAT at the right place
valentinbreiz Jun 20, 2021
ddd64db
Revert Appveyor.yml changes due to API issues
Arawn-Davies Jun 21, 2021
e3ab532
Update appveyor.yml
Arawn-Davies Jun 21, 2021
9bda33b
Install script didn't CD into Cosmos repo
Arawn-Davies Jun 21, 2021
290f4c3
Update appveyor.yml
Arawn-Davies Jun 21, 2021
08800df
Update appveyor.yml
Arawn-Davies Jun 21, 2021
906a0c0
Update appveyor.yml
Arawn-Davies Jun 21, 2021
34b27b1
Merge pull request #1832 from CosmosOS/feature/fatformat
valentinbreiz Jun 21, 2021
cd20e94
Merge branch 'master' into quajak-patch-4
Arawn-Davies Jun 21, 2021
f4ac14d
Merge pull request #1835 from CosmosOS/quajak-patch-4
Arawn-Davies Jun 21, 2021
ac0f5c8
Update appveyor.yml
Arawn-Davies Jun 23, 2021
c8f864c
Update appveyor.yml
Arawn-Davies Jun 23, 2021
b35ff4d
Update index.md
Arawn-Davies Jun 23, 2021
6f5c3be
Merge branch 'master' into Arawn-Davies-patch-1
Arawn-Davies Jun 23, 2021
81f4208
Update appveyor.yml
Arawn-Davies Jun 23, 2021
9145137
Update appveyor.yml
Arawn-Davies Jun 23, 2021
b2c7b81
Update appveyor.yml
Arawn-Davies Jun 23, 2021
4d14d87
Update appveyor.yml
Arawn-Davies Jun 23, 2021
140b940
Update appveyor.yml
Arawn-Davies Jun 23, 2021
aad5b10
Update appveyor.yml
Arawn-Davies Jun 23, 2021
df34298
Update appveyor.yml
Arawn-Davies Jun 23, 2021
8b8a152
Update appveyor.yml
Arawn-Davies Jun 23, 2021
2b3a4a2
Merge pull request #1843 from CosmosOS/Arawn-Davies-patch-1
Arawn-Davies Jun 24, 2021
2b6a74c
Merge branch 'master' into Arawn-Davies-patch-2
Arawn-Davies Jun 24, 2021
a44883c
Merge pull request #1852 from CosmosOS/Arawn-Davies-patch-2
Arawn-Davies Jun 24, 2021
d35436a
Make error message clearer
quajak Jun 26, 2021
dc878c0
Merge pull request #1859 from CosmosOS/quajak-patch-4
MishaTy Jun 26, 2021
902fbe4
Update ThreadImpl.cs
Arawn-Davies Jun 26, 2021
cac88d8
Merge pull request #1861 from CosmosOS/Arawn-Davies-patch-1
Arawn-Davies Jun 26, 2021
4db76c0
[vfs[
MishaTy Jul 12, 2021
4ecf1fd
[vfs] fixes
MishaTy Jul 12, 2021
c6684a4
small UI changes to be less scattered
terminal-cs Jul 13, 2021
3dde9bd
fixed typos
terminal-cs Jul 13, 2021
6550f07
Try to fix tests
MishaTy Jul 14, 2021
c49f2fd
Try to fix tests again
MishaTy Jul 14, 2021
bd9f249
Try to fix tests again
MishaTy Jul 14, 2021
2ff42d0
Change this back
MishaTy Jul 14, 2021
cd57a1c
changed a bit of text
terminal-cs Jul 17, 2021
1bf74df
Merge pull request #1877 from terminal-cs/master
quajak Jul 17, 2021
300fa67
Fix building on Windows 7
AnErrupTion Jul 23, 2021
9a3d721
Merge branch 'master' into master
AnErrupTion Jul 23, 2021
4971f63
Add requested changes
AnErrupTion Jul 25, 2021
955624e
Merge pull request #1888 from SartoxOnlyGNU/master
quajak Jul 25, 2021
d5d8593
Fix typos
Jspa2 Aug 3, 2021
be7f10b
Merge pull request #1894 from jOS-X/patch-1
quajak Aug 3, 2021
99758e6
Merge branch 'master' into feature/iso9660
MishaTy Aug 15, 2021
3371750
Try again to fix tests
MishaTy Aug 15, 2021
b7a2bdf
Merge branch 'feature/iso9660' of https://github.com/CosmosOS/Cosmos …
MishaTy Aug 15, 2021
70c4739
Update ConsoleImpl.cs to use exceptions
Aug 17, 2021
f744ee4
Removed unnecessary return statements
Aug 17, 2021
09db10a
Merge pull request #1907 from BlitzWolfMatthew/master
quajak Aug 17, 2021
0ae59e1
Merge branch 'master' into feature/iso9660
MishaTy Aug 17, 2021
4423943
Remove before-after Run() debug lines
Aug 18, 2021
0d7d3a2
Removed the commented changes entirely
Aug 18, 2021
12b1a09
Merge pull request #1909 from BlitzWolfMatthew/master
quajak Aug 18, 2021
f414aa3
Merge branch 'master' into feature/iso9660
MishaTy Aug 18, 2021
ba06849
Fix tests
MishaTy Aug 18, 2021
5b449d0
Merge branch 'feature/iso9660' of https://github.com/CosmosOS/Cosmos …
MishaTy Aug 18, 2021
fb3b887
Reorder ATAPI to be last device and undo test changes
MishaTy Aug 18, 2021
813062f
Merge pull request #1875 from CosmosOS/feature/iso9660
quajak Aug 18, 2021
426ef62
Add RemoteEndPoint and LocalEndPoint properties to TcpClient
valentinbreiz Aug 19, 2021
40c026f
Build fixes
valentinbreiz Aug 19, 2021
5973a3f
Merge pull request #1910 from CosmosOS/feature/tcpclient-ep
valentinbreiz Aug 19, 2021
1b1ecf8
Merge pull request #1 from CosmosOS/master
ThomasBeHappy Sep 7, 2021
c99cc73
why is github so annoying
ThomasBeHappy Sep 7, 2021
5d61b0f
why is github so annoying
ThomasBeHappy Sep 7, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: Build Error and Visual Studio Problems
about: For errors when trying to build a Cosmos Kernel or use VS
title: ''
labels: ''
labels: 'Area: Build, Area: Visual Studio Integration'
assignees: ''

---
Expand All @@ -24,6 +24,8 @@ If applicable, add screenshots to help explain your problem.
**Context**
Before posting please confirm that the following are in order
[ ] Both Cosmos VS Extensions are installed
[ ] The Cosmos nuget packages are installed
[ ] In the NuGet Package Manager "Include prerelease" is selected
[ ] The Cosmos NuGet package store is selected (NOT nuget.org) in 'Manage NuGet Packages'
[ ] The Cosmos NuGet packages are installed

Add any other context about the problem which might be helpful.
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/docs_or_website.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Documentation/Website Bug Report
about: For bugs involving the Cosmos documentation & website
title: ''
labels: 'Area: Documentation'
assignees: ''

---

#### URL of Documentation - What page of documentation are we dealing with?


#### Expected Behaviour - What do you think should happen?


#### Actual Behaviour - What is the issue?
22 changes: 0 additions & 22 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

28 changes: 0 additions & 28 deletions .github/ISSUE_TEMPLATE/installation-problem.md

This file was deleted.

23 changes: 23 additions & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Mark stale issues and pull requests

on:
schedule:
- cron: "30 1 * * *"

jobs:
stale:

runs-on: ubuntu-latest

steps:
- uses: actions/stale@v3
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-issue-message: 'As this issue has received no new activity, it has been marked as stale'
stale-pr-message: 'As this pull request has received no new activity, it has been marked as stale'
stale-issue-label: 'no-issue-activity'
stale-pr-label: 'no-pr-activity'
exempt-issue-labels: 'Up for Grabs,Blocked,PR submitted'
exempt-pr-labels: 'Work in progress'
exempt-all-milestones: true
exempt-all-assignees: true
8 changes: 4 additions & 4 deletions Docs/articles/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ so overwhelming like the dev kit. This article focuses on the user kit.

## Writing your first Operating System

Create a new project as you would any C# project, but select Cosmos as the
project type.
Create a new project as you would any C# project, but select Cosmos Kernel
(Previously CosmosBoot; same functionality) as the project type.

![](images/SNAG-0000.png)

Expand Down Expand Up @@ -126,7 +126,7 @@ and it will appear in the Visual Studio output window.

## What's the catch?

There really is no catch. Everything We've shown here is functioning as seen.
There really is no catch. Everything we've shown here is functioning as seen.
No mockups were used. However we still have a lot of work to go. Items of
interest that are on our current task list include interfaces (necessary for
foreach loops), file systems (partial support exists), threads, networking, and
Expand All @@ -137,7 +137,7 @@ rolled into the mainline Cosmos development as of yet.

Cosmos does not run on Linux. A boot loader called Syslinux is used to boot
Cosmos. After booting, Syslinux is not used. Syslinux is a bootloader and is
not a Linux distro. Syslinux simplifies the booting process by doing tasks such as enabline the A20 gate, initializing hardware, and switching to real mode (all of which are required by modern operating systems).
not a Linux distro. Syslinux simplifies the booting process by doing tasks such as enabling the A20 gate, initializing hardware, and switching to real mode (all of which are required by modern operating systems).

## Obtaining Cosmos

Expand Down
82 changes: 49 additions & 33 deletions Docs/articles/Kernel/CGS.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Introduction

The Cosmos Graphic Subsystem (CGS from now on) is based on the abstraction of Canvas that is an empty space in which the user of CGS can draw its content. CGS is not a widget toolkit as Winforms or Gnome / GTK but is tough to be more lower level and it will be the basic in which widget toolkits will be implemented. CGS hides the graphics driver (so far VGA and VBE) used and it is tough to be the universal way to draw on the screen in Cosmos.
The Cosmos Graphic Subsystem (CGS from now on) is based on the abstraction of Canvas that is an empty space in which the user of CGS can draw its content. CGS is not a widget toolkit as Winforms or Gnome / GTK but is thought to be more lower level and it will be the basic in which widget toolkits will be implemented. CGS hides the graphics driver (so far VGA, VBE and SVGA II) used and it is thought to be the universal way to draw on the screen in Cosmos.

While Canvas could be overwritten (for example to create sub windows) the user of CGS does not have to deal with it directly but it must use the static class FullScreenCanvas.
While Canvas could be overwritten (for example to create sub windows) the user of CGS does not have to deal with it directly but they must use the static class FullScreenCanvas.

Let's give a look to its API methods.
# FullScreenCanvas
Expand All @@ -24,6 +24,10 @@ To really draw into the screen we need to use the Canvas class. Let's give a loo
void DrawPoint(Pen pen, int x, int y) draws a point at the coordinates specified by x and y with the specified pen
void DrawLine(Pen pen, int x_start, int y_start, int x_end, int y_end) draws a line at the coordinates specified by x_start, y_start and x_end, y_end with the specified pen
void DrawRectangle(Pen pen, int x_start, int y_start,int width, int height) draws a rectangle specified by a coordinate pair, a width, and a height with the specified pen
void DrawImage(Image image, int x, int y) draws an image at the x and y specified
void DrawString(String string, Font font, Brush brush, int x, int y) draws a string with the specified font and brush at the specified x and y coordinates
void Display() only for double buffering, swaps the 2 buffers then display everything to the screen


Really simple right?
# A working example
Expand All @@ -38,72 +42,84 @@ namespace GraphicTest
{
Canvas canvas;

private readonly Bitmap bitmap = new Bitmap(10, 10,
new byte[] { 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0,
255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255,
23, 59, 88, 255, 0, 255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255, 23, 59, 88, 255, 0, 255, 243, 255, 0,
255, 243, 255, 0, 255, 243, 255, 23, 59, 88, 255, 153, 57, 12, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
243, 255, 0, 255, 243, 255, 153, 57, 12, 255, 23, 59, 88, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243,
255, 0, 255, 243, 255, 0, 255, 243, 255, 72, 72, 72, 255, 72, 72, 72, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0,
255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 72, 72,
72, 255, 72, 72, 72, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
243, 255, 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 10, 66, 148, 255, 10, 66, 148, 255,
10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255,
243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148, 255, 10, 66, 148,
255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255,
0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, 0, 255, 243, 255, }, ColorDepth.ColorDepth32);

protected override void BeforeRun()
{
/* If all works correctly you should not really see this :-) */
Console.WriteLine("Cosmos booted successfully. Let's go in Graphic Mode");

canvas = FullScreenCanvas.GetFullScreenCanvas();
// If all works correctly you should not really see this :-)
Console.WriteLine("Cosmos booted successfully. Let's go in Graphical Mode");

// You don't have to specify the Mode, but here we do to show that you can.
canvas = FullScreenCanvas.GetFullScreenCanvas(new Mode(640, 480, ColorDepth.ColorDepth32));
canvas.Clear(Color.Blue);
}

protected override void Run()
{
try
{
/* A red Point */
Pen pen = new Pen(Color.Red);

// A red Point
canvas.DrawPoint(pen, 69, 69);

/* A GreenYellow horizontal line */
// A GreenYellow horizontal line
pen.Color = Color.GreenYellow;
canvas.DrawLine(pen, 250, 100, 400, 100);

/* An IndianRed vertical line */
// An IndianRed vertical line
pen.Color = Color.IndianRed;
canvas.DrawLine(pen, 350, 150, 350, 250);

/* A MintCream diagonal line */
// A MintCream diagonal line
pen.Color = Color.MintCream;
canvas.DrawLine(pen, 250, 150, 400, 250);

/* A PaleVioletRed rectangle */
// A PaleVioletRed rectangle
pen.Color = Color.PaleVioletRed;
canvas.DrawRectangle(pen, 350, 350, 80, 60);

Console.ReadKey();

/* Let's try to change mode...*/
canvas.Mode = new Mode(800, 600, ColorDepth.ColorDepth32);

/* A LimeGreen rectangle */
// A LimeGreen rectangle
pen.Color = Color.LimeGreen;
canvas.DrawRectangle(pen, 450, 450, 80, 60);

Console.ReadKey();
// A bitmap
canvas.DrawImage(bitmap, new Point(100, 150));

Stop();
Console.ReadKey();
Sys.Power.Shutdown();
}
catch (Exception e)
{
mDebugger.Send("Exception occurred: " + e.Message);
mDebugger.Send(e.Message);
Stop();
Sys.Power.Shutdown();
}
}
}
}
```
# Limitation of the current implementation

1. Only the Bochs Graphic Adapter is actually supported; this means that CGS will work only on Bochs, QEMU and VirtualBox. CGS does not make any assumption on the underlying hardware, simple a VGA driver should be adapted to use it. No change to user code should be required to use another driver
2. Only 32 bit color depth is actually supported, the API provides methods to set a resolution with 24, 16, 8 and 4 bit but the low level Bochs driver has not yet implemented them
3. CGS does not permits yet to do basic operations that would permit to fulfill its promise to be the basic block from which a "Widget Toolkit" could be derived for example these methods should be added:
DrawFilledRectangle((Pen pen, int x_start, int y_start,int width, int height)
void DrawImage(Image image, int x, int y) Canvas has already defined this method but it is not yet implemented
void DrawString(String string, Font font, Brush brush, int x, int y) Canvas has already defined this method but it is not yet implemented
.Net System.Drawing has overload of these methods taking a float to evaluate if they are really needed for CGS, they are defined but for now no implementation is provided
A double buffering strategy could be implemented to make it faster
This is more a limitation of the Bochs driver when the Graphic Mode is set there is no more a way to return to text mode
CGS / Graphic Mode interacts badly with the Kernel.Stop method: Bochs does not exit cleanly. You must use Sys.Power.Shutdown to shut down correctly your computer.
# Limitations of the current implementation

1. Only 32 bit color depth is actually supported, the API provides methods to set a resolution with 24, 16, 8 and 4 bit but the low level Bochs driver has not yet implemented them.

2. In addition, some other nice things could be implemented:
- Plugging System.Drawing functions for easier manipulation of colors
- A double buffering strategy, to make drawing faster (one is already implemented in the VBE driver, but not VGA or SVGA II)

3. CGS interacts badly with the Kernel.Stop method: the screen will freeze without displaying any error message whatsoever. You must use the Sys.Power.Shutdown() function to properly shut down your computer.
Loading