Software & Apps

Zusie – my computer computer

Zusie – my computer computer


I shut myself by building a computer close to all relays. Relays used to perform well with computers before tabuum tubes, transistors or integrated circuits can be for the task. The main inspiration is machines by Konrad Zuse in late 30s and early 40s.

Why is it supportive? In addition to relate to a significant relationship between the history between mechanical and electronic computers, relays are more fun to work because they

  • Great and slow, with great delays in wasting and an inclination to oscallate when you set it wrong.
  • Noises, especially if many relays switch at the same time.
  • Consuming a lot of power to do either of the simpler calculations.
  • Subscribe to Lenz’s law, which will create many EMFs and flybacks now that makes for all kinds of interesting interference with places you don’t mind.

So at all, relays you need to think about new ways compared to normal solid state devices.


The relays I use on the computer.

Quick List of Easy:

  • 8-bit data bus and 16-bit address bus
  • 3 x 8-bit compulsion registers 2 x 12-bit registers (for index, address and leap)
  • 64K Solid state memory, holding group, scales and programs
  • 12-bit counter and 12-bit pointer to stack
  • Alu who can do no, and, or, xor, add, add, decrease, move, and indirectly, reduced
  • Writer microprogram stored on solid-state device for arrival
  • The predictor and microassememberrember running the DOS and talking to Zusie at the Parallel Port.

To build a relay computer, you obviously need a lot of relays. I have good fortune to find about 100 thrown into circuit boards on the phone with about 15 four and six possibilities on each board. I bought them at scrap prices and cheated them on a warm air gun and wounded to about 1500 good quality relays.


Architecture

Here is a Diagram in the Zusie architecture block (click for the larger version). This is a regularly regularly-archedized cisk.


Sets Sets

Here are some terminologies used below and the Zusie Assembly Code:

  • art literal a constant amount number between 0 and 255. can be written in the form of perfect, in hexadecimal form previously h (H80) or warned before B (B10000000).
  • art Hint a jumping or destination call. In Zusie Assembly, written in a line before a colon (such as : Label). This estimates the address of the next instruction after label. The sign takes no space in self-program and only a gathering assistant.
  • Some guidelines such as jumps take an address (or label) as an argument. They usually come in two versions, high and short. Shorts are specified or subjected to a nil. Shorts only open the lower-byte of the counter program, and so can only jump to addresses within the same 256-byte code section. Always use shorts if you can (ie if not written in full multiple programs), because only one byte address, with two bytees for long instructions. These varieties are discussed as Distance below.

Here is a comprehensive list of zusie and mnemonics instructions:

  • Picture of inigl Loading the number always register.
    LDL-> RV where r can be a, b or c, and v is a literal
  • Loading Code Condition from Register Inhabited the condition code registry according to register r.
    Ldc <-r Where r can be A, B or C.
  • Subroutine calls and returns Calld instructions can save a counter program value and maintenance to kill a label. A retd instruction restores the opponent's opponent after the last pot. D can be a s for a short jump or empty for a long jump. Call and return to distance should match.
    Call label and Ret
    Calling label and remarkable
  • Stack panty Pushes the value of a stack register.
    Pushr Where r can be A, B or C.
  • Stack pop Pops the maximum amount from the scales and a register
    Pop-> r Where r can be A, B or C.
  • Change / Managing 16-bit SMISMIS Replacing the content of R containing + 1 or content-1, or add / progresses to another register.
    Flesh in incr where r can be jo xy.
    Decrete where r can be jo xy.
    Incr-> s Where r, s will be jo xy, and is not equal to s.
    Decr-> s Where r, s will be jo xy, and is not equal to s.
  • Read the memory Reads a byte memory from the address saved in R to register s
    Rdr-> s Where is r may jo xy and s be a, b or c; or, r is j and s is xoy
  • Write memory Write a byte from the register within the memory (and, on any device map like flipdot display) at the address saved in r.
    Wrr <-s Where is r may jo xy and s be a, b or c; or, r is j and s is xoy
  • Long branch Continue to execute the program with a new label or address, possible condition.
    Br l Branch unconditional l
    BRZ L Branch to l if condition code z (zero) is set
    BNZ L Branches of l if condition code z (zero) is not specified
    BRC L Branches of l if condition code c (carry) is set
    Brnc l Branches of L if condition code C (Darup) is not set
    Brs l Branches of L if condition code s (sign) is set
    Brns l Branches of l if condition code s (sign) is not specified
  • Short branch Continue to execute the program with a new label or address, possible condition.
    SBR L Branch unconditional l
    SBRZ L Branch to l if condition code z (zero) is set
    SBRNZ L Branches of l if condition code z (zero) is not specified
    SBRC L Branches of l if condition code c (carry) is set
    SBRNC L Branches of L if condition code C (Darup) is not set
    SBRS L Branches of L if condition code s (sign) is set
    Sbrns the Branches of l if condition code s (sign) is not specified
  • 8-bit moves Copy the value of r to register s.
    Movrr-> swhere r, s = a, b, c, x, y and r do not match s
  • 16-bit movement Copy the value of r to register s.
    Movrr-> swhere r, s = xy, j, s, p and not equal to s. Observe the necessary caution for fiddling on s (the stack pointer) or P (program counter) 😉
  • Alu Operations Makes the Alu Operation of the Registration Value, it stores S. The R and S is not the same. If the construction "-> s" is not obtained, it does not store the value of a register, but only loads code code condition according to the result. If S is MXY or MJ, the result is stored in the memory of the address XY or J to be indeed.
    Notr, notr-> swhere r = a, b, c, s = a, b, c, mj, mjy. Makes logical not.
    Incr, Incr-> Swhere r = a, b, c, s = a, b, c, mj, mjy. Add r.
    Decr, Decr-> Swhere r = a, b, c, s = a, b, c, mj, mjy. Developments r.
    SRR, SRR-> Swhere r = a, b, c. Rotates the pieces to one step to the right.
  • Binary Heterogenous Alu Operations Makes the alu operation at the value of the register r and the registration value s, it is stored in T. No two in R, S and T is not the same. If "T" T "work from, it does not store the value of a register, but only loads the condition code register according to the result. If the MXY or MJ is stored in the address of XY or j indeed.
    Andras, Andrs-> Twhere r, s = a, b, c, t = a, b, c, mj, mxy. Makes logical and.
    Ors, orrs-> Twhere r, s = a, b, c, t = a, b, c, mj, mxy. Performing logically or.
    Xorrs, Xorrs-> Twhere r, s = a, b, c, t = a, b, c, mj, mxy. Makes logical xor.
  • Operations to add to Alu Makes a further operation of the registration value r and the registration value s, it stores T. The R and S will be the same registration, but Ros can be the same with t. If "T" T "work from, it does not store the value of a register, but only loads the condition code register according to the result. If the MXY or MJ is stored in the address of XY or J indeed. Note that operations like Special SpecialTT> effectively equal to 2 * a, and also a transferred to the left.
    Addrs, addrs-> twhere r, s = a, b, c, t = a, b, c, mj, mxy.

Fredrik Andersson - Wasclamat (sa) nablaman.com
Back to Juse at home | Back to my home page

2025-01-31 19:55:00

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button