├── README.md ├── .gitattributes ├── Schematic_8085_Computer.pdf ├── PCB_8085 Computer V1_20191112194723.pdf ├── Blink1.asm ├── Blink2.asm ├── Blink3.asm ├── Blink4.asm ├── Simulator.asm └── Running_Light.asm /README.md: -------------------------------------------------------------------------------- 1 | # 8085-Computer 2 | 3 | Video: https://youtu.be/45ELCAVb5XQ 4 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /Schematic_8085_Computer.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SensorsIot/8085-Computer/master/Schematic_8085_Computer.pdf -------------------------------------------------------------------------------- /PCB_8085 Computer V1_20191112194723.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SensorsIot/8085-Computer/master/PCB_8085 Computer V1_20191112194723.pdf -------------------------------------------------------------------------------- /Blink1.asm: -------------------------------------------------------------------------------- 1 | .cr 8085 To load the 8085 cross overlay 2 | 3 | .OR $0000 4 | .TF blink1.hex,INT,32 5 | 6 | MVI A,01H 7 | OUT 20H ; Initialize 8155 8 | 9 | LOOP: MVI A,01H 10 | OUT 21H ; Pin High 11 | 12 | NOP 13 | NOP 14 | NOP 15 | NOP 16 | NOP 17 | 18 | MVI A,00H 19 | OUT 21H ; Pin Low 20 | 21 | NOP 22 | NOP 23 | NOP 24 | NOP 25 | NOP 26 | 27 | JMP LOOP 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Blink2.asm: -------------------------------------------------------------------------------- 1 | .cr 8085 To load the 8085 cross overlay 2 | 3 | .OR $0000 4 | .TF blink2.hex,INT,32 5 | 6 | MVI A,01H 7 | OUT 20H ; Initialize 8155 8 | 9 | LOOP: MVI A,01H 10 | OUT 21H ; Switch LED on 11 | 12 | MVI A,00H 13 | WAIT1: INR A ; delay() 14 | NOP 15 | CPI 0FFH 16 | JZ OFF 17 | JMP WAIT1 18 | 19 | OFF: MVI A,00H 20 | OUT 21H ; Switch LED off 21 | 22 | WAIT2: INR A ; delay() 23 | NOP 24 | CPI 0FFH 25 | JZ LOOP 26 | JMP WAIT2 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Blink3.asm: -------------------------------------------------------------------------------- 1 | .cr 8085 To load the 8085 cross overlay 2 | 3 | .OR $0000 4 | .TF blink3.hex,INT,32 5 | 6 | MVI A,01H 7 | OUT 20H ; Initialize 8155 8 | 9 | LOOP: MVI A,01H 10 | OUT 21H 11 | 12 | WAIT1: MVI D, 0FFH ; Loading counter for outer loop 13 | ST1: LXI B, 90H ; Loading counter for inner loop 14 | L1: DCX B ; Decrement inner counter 15 | MOV A, C ; If not exhausted go again for inner loop 16 | ORA B 17 | JNZ L1 18 | DCR D ; Decrement outer counter 19 | JNZ ST1 ; If not exhausted go again for outer loop 20 | 21 | OFF: MVI A,00H 22 | OUT 21H 23 | 24 | WAIT2: MVI D, 0FFH ; Loading counter for outer loop 25 | ST2: LXI B, 90H ; Loading counter for inner loop 26 | L2: DCX B ; Decrement inner counter 27 | MOV A, C ; If not exhausted go again for inner loop 28 | ORA B 29 | JNZ L2 30 | DCR D ; Decrement outer counter 31 | JNZ ST2 ; If not exhausted go again for outer loop 32 | 33 | JMP LOOP 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Blink4.asm: -------------------------------------------------------------------------------- 1 | .cr 8085 To load the 8085 cross overlay 2 | 3 | .OR $0000 4 | .TF blink4.hex,INT,32 5 | 6 | MVI A,01H 7 | OUT 20H ; Initialize 8155 8 | ; LXI SP,17FFH ; Initialize Stack Pointer End of RAM 9 | LXI SP,20FFH ; Initialize Stack Pointer End of RAM 8155 10 | 11 | LOOP: MVI A,01H 12 | OUT 21H 13 | CALL DELAY 14 | 15 | OFF: MVI A,00H 16 | OUT 21H 17 | CALL DELAY 18 | JMP LOOP 19 | 20 | DELAY: PUSH B ; Saving B. This delay subroutine uses 2 single registers A & D and 1 register pair BC 21 | PUSH D 22 | PUSH PSW ; Saving PSW 23 | MVI D, 0FFH ; Loading counter for outer loop 24 | ST: LXI B, 90H ; Loading counter for inner loop 25 | L: DCX B ; Decrement inner counter 26 | MOV A, C ; If not exhausted go again for inner loop 27 | ORA B 28 | JNZ L 29 | DCR D ; Decrement outer counter 30 | JNZ ST ; If not exhausted go again for outer loop 31 | POP PSW ; Restore PSW 32 | POP D 33 | POP B ; Restore B 34 | RET 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /Simulator.asm: -------------------------------------------------------------------------------- 1 | RESET: MVI A,03H 2 | ; OUT 20H ; Initialize 8155 3 | ; LXI SP,17FFH ; Initialize Stack Pointer End of RAM 4 | LXI SP,20FFH ; Initialize Stack Pointer End of RAM 8155 5 | 6 | MVI C, 14H ; Initializing the counter 7 | LXI H, PATTERN ; Pointing to the pattern IN-BUFFER 8 | 9 | AGAIN: MOV A,M ; Read pattern byte 10 | ; OUT 21H ; Out at port B 11 | CALL DELAY ; Calling the delay sub-routine 12 | INR L ; Pointing to the next location 13 | DCR C ; Decrement the counter 14 | JNZ AGAIN ; If not exhausted go again 15 | JMP RESET 16 | DELAY: PUSH B ; Saving B. This delay subroutine uses 2 single registers A & D and 1 register pair BC 17 | PUSH PSW ; Saving PSW 18 | MVI D, 02H ; Loading counter for outer loop 19 | ST: LXI B, 1H ; Loading counter for inner loop 20 | L: DCX B ; Decrement inner counter 21 | MOV A, C ; If not exhausted go again for inner loop 22 | ORA B 23 | JNZ L 24 | DCR D ; Decrement outer counter 25 | JNZ ST ; If not exhausted go again for outer loop 26 | POP PSW ; Restore PSW 27 | POP B ; Restore B 28 | RET ; Return to the calling program 29 | 30 | PATTERN: NOP -------------------------------------------------------------------------------- /Running_Light.asm: -------------------------------------------------------------------------------- 1 | .cr 8085 To load the 8085 cross overlay 2 | 3 | .OR $0000 4 | .TF Light.hex,INT,32 5 | 6 | RESET MVI A,03H 7 | OUT 20H ; Initialize 8155 8 | ; LXI SP,17FFH ; Initialize Stack Pointer End of RAM 9 | LXI SP,20FFH ; Initialize Stack Pointer End of RAM 8155 10 | 11 | MVI C, 15H ; Initializing the counter 12 | LXI H, PATTERN ; Pointing to the pattern IN-BUFFER 13 | 14 | AGAIN: MOV A,M ; Read pattern byte 15 | OUT 21H ; Out at port B 16 | CALL DELAY ; Calling the delay sub-routine 17 | INR L ; Pointing to the next location 18 | DCR C ; Decrement the counter 19 | JNZ AGAIN ; If not exhausted go again 20 | JMP RESET 21 | DELAY: PUSH B ; Saving B. This delay subroutine uses 2 single registers A & D and 1 register pair BC 22 | PUSH PSW ; Saving PSW 23 | MVI D, 0FH ; Loading counter for outer loop 24 | ST: LXI B, 1000H ; Loading counter for inner loop 25 | L: DCX B ; Decrement inner counter 26 | MOV A, C ; If not exhausted go again for inner loop 27 | ORA B 28 | JNZ L 29 | DCR D ; Decrement outer counter 30 | JNZ ST ; If not exhausted go again for outer loop 31 | POP PSW ; Restore PSW 32 | POP B ; Restore B 33 | RET ; Return to the calling program 34 | 35 | ;PATTERN: .DB $FF, $FF, $00, $00, $FF, $FF, $00, $00, $FF, $FF, $00, $00, $FF, $FF, $00, $00, $FF, $FF, $00, $00, $FF 36 | ;PATTERN: .DB $81, $42, $24, $18, $18, $24, $42, $81, $81, $C3, $E7, $FF, $7E, $3C, $18, $00, $55, $AA, $55, $AA, $FF 37 | 38 | 39 | PATTERN: .DB $7e, $bd, $db, $e7, $e7, $db, $bd, $7e, $7e, $3c, $18, $00, $81, $c3, $e7, $ff, $aa, $55, $aa, $55, $00 40 | --------------------------------------------------------------------------------