Operation of 1802 Membership Card front panel ============================================== 1 Mar 2011 (c) Lee Hart, edits by Herb Johnson see also mship_fpx.jpg Switches -------- The group of four switches on the left are, from left to right: S11 IN (a pushbutton) S10 LOAD (a toggle switch) S9 CLEAR (a toggle switch) S8 READ/WRITE (a toggle switch) S10 LOAD and S9 CLR are the mode switches. They select 1 of 4 modes: RUN - both up WAIT - right up, left down (CLR up, LOAD down) CLEAR - right down, left up (CLR down, LOAD up) LOAD - both down Power-up state --------------- IN LOAD CLR R/W S11 S10 S9 S8 down down down 0. Select LOAD mode (R/W down to avoid write) apply power To examine or load memory ------------------------- IN LOAD CLR R/W S11 S10 S9 S8 down down down 0. Select LOAD mode (R/W down to avoid write) up down down 1. Select CLEAR mode (resets program counter to 0) down down down Select LOAD mode down down X 2. R/W up to select write, down to read 3. Set switches S0-S7 to byte to write to memory 0, push 4. then push IN. For write, LEDs show the data written, OR for read, LEDs shows value in location 0. AND program counter increments to 1 push 4. Set switches to next byte, press IN, reads/writes location 1 push 5. Set switches to next byte, press IN, reads/writes location 2, etc. Change location N: CLEAR, read to N-1, write UP, set S0-S7, IN, write DOWN To run a program in memory -------------------------- IN LOAD CLR R/W S11 S10 S9 S8 down down down 0. Select LOAD mode (R/W down to avoid write) up down down 1. Select CLEAR mode (resets program counter to 0) up down up 2. (optional if program writes to memory) up up -- 2. Select RUN mode. Program begins executing at 0. This program blinks Q so you can see it. ---------------------------------------- 0000 7A reset Q 0001 F8 load... 0002 10 ... 10 hex (change this byte to blink faster or slower) 0003 B1 ... into register 1's high byte 0004 21 decrement register 1 0005 91 get high byte of register 1 0006 3A branch if not zero... 0007 04 ... to 0004 0008 31 branch if Q=1... 0009 00 ... to 0000 and reset Q 000A 7B set Q 000B 30 branch... 000C 01 ... to 0001 to skip reset