Add new notes, fix minor issues
This commit is contained in:
		@@ -28,7 +28,7 @@ function Title() {
 | 
				
			|||||||
    let currRoot: SiteSubPages = SiteMap.subpages;
 | 
					    let currRoot: SiteSubPages = SiteMap.subpages;
 | 
				
			||||||
    let title: string | null = null;
 | 
					    let title: string | null = null;
 | 
				
			||||||
    if (pagePath !== '/') {
 | 
					    if (pagePath !== '/') {
 | 
				
			||||||
        const subPaths = pagePath.split('/');
 | 
					        const subPaths = pagePath.split('?')[0].split('#')[0].split('/');
 | 
				
			||||||
        for (const p of subPaths.slice(1, subPaths.length)) {
 | 
					        for (const p of subPaths.slice(1, subPaths.length)) {
 | 
				
			||||||
            splitPath.push({ name: currRoot[p].title, path: p });
 | 
					            splitPath.push({ name: currRoot[p].title, path: p });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,7 +21,7 @@ Product/Service-specific Extensions:
 | 
				
			|||||||
- [Firefox Source Docs](https://firefox-source-docs.mozilla.org/)
 | 
					- [Firefox Source Docs](https://firefox-source-docs.mozilla.org/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Reducing UI element padding
 | 
					### Reducing UI element padding
 | 
				
			||||||
- Go to [about:config](about:config)
 | 
					- Go to the browser's [about\:config](#) page
 | 
				
			||||||
- Set `browser.uidensity` equal to `1`
 | 
					- Set `browser.uidensity` equal to `1`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Safari
 | 
					## Safari
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										68
									
								
								notes/lua.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								notes/lua.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					# Lua Programming Language
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Lua 5.4 C API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Lua 5.4 Bytecode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> [!note]
 | 
				
			||||||
 | 
					> These are **unstable** and may differ in different versions of the language.
 | 
				
			||||||
 | 
					> They are not part of the language specification but an implementation detail, which in this case is the reference implementation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> [!note]
 | 
				
			||||||
 | 
					> The reference implementation used to have a stack based but now uses a register based VM similar to how modern real computer architectures.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The instructions are 32 bits wide; every instruction has an opcode that takes up 7 bits, which leaves out 25 bits for the addresses and values.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The instructions work with three register referred to as: A, B, C; each are of length 8 bits.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<table>
 | 
				
			||||||
 | 
					<thead>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
 | 
					<th></th>
 | 
				
			||||||
 | 
					<th>31</th><th>...</th><th>24</th><th>23</th><th>...</th><th>16</th><th>15</th><th>14</th><th>...</th><th>7</th><th>6</th><th>...</th><th>0</th>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					</thead>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
 | 
					<td>iABC</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>C (8 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>B (8 bits)</td>
 | 
				
			||||||
 | 
					<td style='text-align:center'>k (1 bit)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>A (8 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>OP (7 bits)</td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
 | 
					<td>iABx</td>
 | 
				
			||||||
 | 
					<td colspan='7' style='text-align:center'>B (17 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>A (8 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>OP (7 bits)</td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
 | 
					<td>iAsBx</td>
 | 
				
			||||||
 | 
					<td colspan='7' style='text-align:center'>signed B 17 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>A (8 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>OP (7 bits)</td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
 | 
					<td>iAx</td>
 | 
				
			||||||
 | 
					<td colspan='10' style='text-align:center'>Ax (25 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>OP (7 bits)</td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					<tr>
 | 
				
			||||||
 | 
					<td>sJ</td>
 | 
				
			||||||
 | 
					<td colspan='10' style='text-align:center'>signed jump address (25 bits)</td>
 | 
				
			||||||
 | 
					<td colspan='3' style='text-align:center'>OP (7 bits)</td>
 | 
				
			||||||
 | 
					</tr>
 | 
				
			||||||
 | 
					</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```lua
 | 
				
			||||||
 | 
					-- arithmetic to calculate the lengths used from https://www.lua.org/source/5.4/lopcodes.h.html
 | 
				
			||||||
 | 
					A = 8
 | 
				
			||||||
 | 
					B = 8
 | 
				
			||||||
 | 
					C = 8
 | 
				
			||||||
 | 
					Bx = A + B + 1  -- 17
 | 
				
			||||||
 | 
					Ax = A + Bx     -- 25
 | 
				
			||||||
 | 
					sJ = A + Bx     -- 25
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					This page contains excerpts from Lua's source code which is the copyright of Lua.org, PUC-Rio and is licensed under the MIT License.
 | 
				
			||||||
 | 
					[lua.org/license.html](https://www.lua.org/license.html)
 | 
				
			||||||
							
								
								
									
										40
									
								
								notes/os.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								notes/os.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					# Operating Systems
 | 
				
			||||||
 | 
					## Windows
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Package Managers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Chocolatey
 | 
				
			||||||
 | 
					    - requires Administrator permissions
 | 
				
			||||||
 | 
					- Winget
 | 
				
			||||||
 | 
					    - comes with Windows
 | 
				
			||||||
 | 
					    - (it doesn't work half of the time for me)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Mounting ISO, CUE images
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Windows versions 8 and above natively support mounting ISOs. However CUE images are not supported. 
 | 
				
			||||||
 | 
					WinCDEmu is a lightweight, open-source disc emulator that supports mounting CUE, NRG, IMG, ISO, etc. images. 
 | 
				
			||||||
 | 
					- [WinCDEmu Website](https://wincdemu.sysprogs.org/)
 | 
				
			||||||
 | 
					- [Source (GitHub)](https://github.com/sysprogs/WinCDEmu)
 | 
				
			||||||
 | 
					- [Portable Version](https://wincdemu.sysprogs.org/portable/)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Master Control Panel / God Mode
 | 
				
			||||||
 | 
					(Misnomer; you probably won't use this either) 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Shows a list of all the available settings on Windows in a single view.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Open it by exceuting the following command or saving it as a shortcut: `explorer.exe shell:::{ED7BA470-8E54-465E-825C-99712043E01C}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## MacOS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Package Manager
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [HomeBrew](https://brew.sh)
 | 
				
			||||||
 | 
					    - package manager everyone uses but it is noticeably slow
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Video Players
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- IINA
 | 
				
			||||||
 | 
					    - video player based on mpv with native macOS UI
 | 
				
			||||||
 | 
					- mpv
 | 
				
			||||||
 | 
					    - mpv doesn't have a brew cask for Apple silicon; stolen-mpv exists but it is x86 only
 | 
				
			||||||
 | 
					    - mpv brew formula is the cli tool which works pretty well but it is not as nice as packaged applications
 | 
				
			||||||
@@ -15,7 +15,9 @@
 | 
				
			|||||||
    "react-markdown": "^9.0.0",
 | 
					    "react-markdown": "^9.0.0",
 | 
				
			||||||
    "react-syntax-highlighter": "^15.5.0",
 | 
					    "react-syntax-highlighter": "^15.5.0",
 | 
				
			||||||
    "rehype-raw": "^7.0.0",
 | 
					    "rehype-raw": "^7.0.0",
 | 
				
			||||||
 | 
					    "remark-directive": "^3.0.0",
 | 
				
			||||||
    "remark-gfm": "^4.0.0",
 | 
					    "remark-gfm": "^4.0.0",
 | 
				
			||||||
 | 
					    "remark-github-admonitions-to-directives": "^2.0.0",
 | 
				
			||||||
    "uri-js": "^4.4.1"
 | 
					    "uri-js": "^4.4.1"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,12 @@
 | 
				
			|||||||
import Layout from '../../components/layout';
 | 
					 | 
				
			||||||
import ReactMarkdown from 'react-markdown';
 | 
					import ReactMarkdown from 'react-markdown';
 | 
				
			||||||
import SyntaxHighlighter from 'react-syntax-highlighter';
 | 
					import SyntaxHighlighter from 'react-syntax-highlighter';
 | 
				
			||||||
import { monokaiSublime as hlTheme } from 'react-syntax-highlighter/dist/cjs/styles/hljs';
 | 
					import { monokaiSublime as hlTheme } from 'react-syntax-highlighter/dist/cjs/styles/hljs';
 | 
				
			||||||
import remarkGfm from 'remark-gfm';
 | 
					import remarkGfm from 'remark-gfm';
 | 
				
			||||||
import rehypeRaw from 'rehype-raw';
 | 
					import rehypeRaw from 'rehype-raw';
 | 
				
			||||||
 | 
					import remarkDirective from 'remark-directive';
 | 
				
			||||||
 | 
					import remarkGithubAdmonitionsToDirectives from 'remark-github-admonitions-to-directives';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import Layout from '../../components/layout';
 | 
				
			||||||
import readMarkdown from '../../lib/read-markdown';
 | 
					import readMarkdown from '../../lib/read-markdown';
 | 
				
			||||||
import NotesInfo from '../../public/notes.json';
 | 
					import NotesInfo from '../../public/notes.json';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -19,7 +21,7 @@ interface Notes {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
function Markdown({ content }: any) {
 | 
					function Markdown({ content }: any) {
 | 
				
			||||||
    return <ReactMarkdown
 | 
					    return <ReactMarkdown
 | 
				
			||||||
        remarkPlugins={[remarkGfm]}
 | 
					        remarkPlugins={[remarkGithubAdmonitionsToDirectives, remarkDirective]}
 | 
				
			||||||
        rehypePlugins={[rehypeRaw]}
 | 
					        rehypePlugins={[rehypeRaw]}
 | 
				
			||||||
        components={{
 | 
					        components={{
 | 
				
			||||||
            code({ node, className, children, ...props }) {
 | 
					            code({ node, className, children, ...props }) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,14 +8,14 @@ function traverseMap(head: Site, cwd = '', depth = 0) {
 | 
				
			|||||||
        return [];
 | 
					        return [];
 | 
				
			||||||
    let elements = [];
 | 
					    let elements = [];
 | 
				
			||||||
    for (const [slug, info] of Object.entries(head.subpages)) {
 | 
					    for (const [slug, info] of Object.entries(head.subpages)) {
 | 
				
			||||||
 | 
					        if (slug === 'sitemap')
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
        const path = `${cwd}/${slug}`;
 | 
					        const path = `${cwd}/${slug}`;
 | 
				
			||||||
        const children = (<><dl style={{marginLeft: '3rem'}}> {traverseMap(info, path, depth + 1)}</dl></>);
 | 
					        const children = (<><dl style={{marginLeft: '3rem'}}> {traverseMap(info, path, depth + 1)}</dl></>);
 | 
				
			||||||
        elements.push(<>
 | 
					        elements.push(<>
 | 
				
			||||||
            <>
 | 
					 | 
				
			||||||
                <dt>{info.title}</dt>
 | 
					                <dt>{info.title}</dt>
 | 
				
			||||||
                <dd><Link href={path}>{path}</Link></dd>
 | 
					                <dd><Link href={path}>paulw.xyz{path}</Link></dd>
 | 
				
			||||||
                 {children}
 | 
					                 {children}
 | 
				
			||||||
            </>
 | 
					 | 
				
			||||||
        </>);
 | 
					        </>);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return elements;
 | 
					    return elements;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1 +1 @@
 | 
				
			|||||||
{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:38:33.757Z"},"browsers":{"title":"Web Browsers","mtime":"2024-04-20T19:48:29.981Z"}}
 | 
					{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:59:46.944Z"},"os":{"title":"Operating Systems","mtime":"2024-05-10T16:07:32.581Z"},"lua":{"title":"Lua Programming Language","mtime":"2024-09-13T08:45:18.515Z"},"browsers":{"title":"Web Browsers","mtime":"2024-09-13T08:47:57.942Z"}}
 | 
				
			||||||
@@ -1 +1 @@
 | 
				
			|||||||
{"title":"PaulW.XYZ","subpages":{"posts":{"title":"Posts","subpages":{}},"notes":{"title":"Notes","subpages":{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:38:33.757Z"},"browsers":{"title":"Web Browsers","mtime":"2024-04-20T19:48:29.981Z"}}},"about":{"title":"About"},"sitemap":{"title":"Site Map"}}}
 | 
					{"title":"PaulW.XYZ","subpages":{"posts":{"title":"Posts","subpages":{}},"notes":{"title":"Notes","subpages":{"mos-6502":{"title":"MOS 6502 Microprocessor","mtime":"2023-10-29T18:05:52.439Z"},"zilog-z80":{"title":"Zilog Z80 Microprocessor","mtime":"2023-10-29T18:07:08.579Z"},"steam":{"title":"Steam Client","mtime":"2024-02-13T22:34:17.609Z"},"steam-deck":{"title":"Steam Deck","mtime":"2024-02-13T22:53:51.919Z"},"programming-resources":{"title":"Programming Resources","mtime":"2024-04-20T19:59:46.944Z"},"os":{"title":"Operating Systems","mtime":"2024-05-10T16:07:32.581Z"},"lua":{"title":"Lua Programming Language","mtime":"2024-09-13T08:45:18.515Z"},"browsers":{"title":"Web Browsers","mtime":"2024-09-13T08:47:57.942Z"}}},"about":{"title":"About"},"sitemap":{"title":"Site Map"}}}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user