dd86k's blog

Machine code enthusiast

What’s In Progress? – January 2023

Author: dd
Published: January 27, 2023
Last modified: May 28, 2023 at 18h41
Categories:

A new year, the same stuff. Or too much stuff? Uh oh.

sha3-d

I’ve promoted some of the compile-time constants within the structure as structure template parameters. The sponge (state) size and number of rounds can now be configured, which may help me if I ever wish to add support for NIST SP 800-185 (approved SHA-3 variants).

Definitively, if some websites start giving… cSHAKE digests? Is there any project that use K12 too?

ddhx

Rewrote rendering engine, with optional cursor information, that saves about 50-100µs of rendering and printing time. Rewriting settings modules. Rewriting everything.

Example with cursor position at the end of the file.

I’m rethinking the entire workflow, module requirements, module imports, etc. Software architecture can be hard, even for a medium-sized project.

For example, thankfully, the new settings module will require a strict key-value and menu system won’t require “set” command (e.g., I prefer “length iec” over “set iec” and “cols 16” over “set cols 16” which feels more consistent to type). Alas, this settings module is needed for everything else (rendering, character translation, UI, etc.), so I’m not inclined to keep global states in separate modules anymore.

DD’s Emoji Picker

There were a few improvements since its initial release since December 25:

  • A “Show all” button was added. This shows all 1700 ish emojis.
  • A “Show [all] by group”, same but with groups, and a checkbox when searching as well.
  • Warning and error banners. This includes loading the page in HTTP due to Clipboard API “security”.
  • Validate HTML (HTML sins were being committed).
  • Add a “Reload in HTTPS” button.
  • Minor visual corrections (e.g., word-wrap for results).

NEW: SYSLORE

As OMF support in DMD is in its deprecation phase, I thought of writing something to cover processors that ddcpuid can’t — like, the actual 8086 processor, of which MS-DOS 6.22 still had support for it.

SYSLORE is written in C and inlined x86 assembler in 16+32 mixed code, without using any extenders. It’s aimed for old DOS systems using Turbo C 2.01 and Turbo Assembler 2.01. So far, my tests in DosBox-X has been proven successful to detect any processors from the 8086 to the i486SX/i486DX and coprocessors from the 8087 to the i387.

I am already working (slowly) to make the utility detect later i486 processors (with “SL Technology”, thanks to the i486SL, so that includes DX, SX, SL, and GX variants) with support for the CPUID instruction (models 0, 2, and 4), Pentium, and Pentium Pro.

This project officially replaces MCPUINFO.

SYSLORE is available on GitHub. Versions 0.0.2 has been released.

NEW: Binco

I’ve always wanted to have my own binary-text encoder/decoder, and I needed something quick for encoding Base64, so I decided to create this thing with plans to add UUEncoding, and others. (Hopefully!)

At least I’m not polluting my hasher “ddh” and my hex editor “ddhx” with this binary-text encoding business.

Binco is available on GitHub. Version 0.0.1 has been released.

VR

Yep, I have a (semi-used) Quest 2 headset. Fun thing. Don’t have plans for developing anything on it.