We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Datasheet

From Esolang
Jump to navigation Jump to search

(make suggestions in the discussion page)

Datasheet is a esolang thats supposed to resemble a punched card-like data structure. Data looks like this:
0000001000......................................................
................................................................
................................................................
................................................................
................................................................
......................................QWERTYUIOPASDFGHJKLZXCVBNM

Data structure

Dots are null spaces with no data. Data is stored in a strucure called doub-dec which are double-digit decimals. The disk is 192 doub-decs and 384 decimal digits.

Formatting

Disks have their format info at doub-dec 1, which has only 1 variant right now which is format 00, which allows for the storage of 192 doub-decs.

Character set system

26 characters can be choosed from a character set consisting of:

  • 1-26: QWERTYUIOPASDFGHJKLZXCVBNM
  • 27: Newline
  • 28-38: 1234567890
  • 39-51: "é*?-_,;.:<>

Assembly language

The datasheet computer has 100 bytes of ram (00-99). There is a lack of registers because the system is primitive and is for calculation. Numbers are between 0-99 and NO INPUT
Basic thing: (aa = adress ii = immediate) also wraps happen.

  • NOP (00) No-op.
  • MOV A, B (01 aa ii) Changes adress A to B.
  • ADD A, B (02 aa ii) Adds B to adress A.
  • SUB A, B (03 aa ii) Subtracts B from adress A.
  • SHR A (04 aa) Bitshifts adress A right.
  • SHL A (05 aa) Bitshifts adress A left.
  • JMP A (06 ii) Jumps to adress A.
  • JZ A B (07 aa ii) Jumps to adress B if A is zero.
  • JNZ A B (08 aa ii) Jumps to adress B if A is not zero.
  • ADA A, B, C (09 aa aa aa) Adds A and B and writes result to C.
  • SBA A, B, C (10 aa aa aa) Subtracts A and B and writes result to C.
  • CPY A, B (11 aa aa) Copy adress A to B.
  • OUT A (12 aa) Output value at A to printer.
  • GRP A (13 aa) Graph value at A on grapher.