i8085 | i8085proc | i8085set | i8085minimax | i8085sim | i8085basic | i8085examples | PMD85 | terminal85
https://www.octopusengine.org/rur_23/
poznámky 2023
http://www.malinov.com/Home/sergeys-projects/minimax8085
inspir:
https://heavydeck.net/project/i8085-microcomputer/
Mapování EEPROM / RAM
- při vypalování 27 vypnout "check-ID" 158c - vybíráme model ST 27C256 - pro 28 zvolit uPD 28C256 ------------------------------------------------- EPROM: monitor 0000 - 0fde blink 0fdf - 0fff (delay: call 0ff2) boot1 1000 - boot2 todo: read "intelhex" ... BASIC 1800 - 399f ... 39a0 ? ------------------------------------------------- RAM: 62256 (32k) 8000 - ffff FFA0 ; Debugger RAM (Monitor) 6264 (8k) A000 x ------------------------------------------------- UART? 153,800/16 -> 9612
Monitor
monitor 1.2 - https://github.com/skiselev/minimax8085 -------------------------------------------------------------------- ROM EQU 0000h ; Debugger goes here / EEPROM (32k) 0-7FFF? DRAM EQU 0FFA0h ; Debugger RAM (96 bytes required) -------------------------------------------------------------------- > ? A ON|OFF - Enable/Disable Automatic register display B [bp address] - Set/Display breakpoints C <src> <dest> <size> - Copy memory D <address> - Display memory in assembly format E <address> - Edit memory F <start> <end> <value> - Fill memory G [address] - Begin/Resume execution H <start> <end> - Send out memory in Intel HEX format I <port> - Input from port L [address] - Load image into memory M <address> - Display memory in hex dump format O <port> <data> - Output to port R [rp value] - Set/Display program registers S ON|OFF - Enable/Disable Subroutine trace T ON|OFF - Enable/Disable Trace mode U [address] - Set/Display program base address C> M8000 (esc) 8000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ................ 8010 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F ................ 8020 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F !"#$%&'()*+,-./ 8030 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 0123456789:;<=>? 8040 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F @ABCDEFGHIJKLMNO 8050 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F PQRSTUVWXYZ[\]^_ 8060 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F `abcdefghijklmno 8070 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F pqrstuvwxyz{|}~. 8080 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F ................ ------------------------------------------ ========== C> s off # subroutin C> t on # trasování C> SPACE # krokování ========== C> g fdf # blikání 0FDF - run (go) C> g 1800 # basic C> g 1000 # bootloader1 ========== ------------ blink0000 -------------- ;Assembly Address Opcode ;Flash a LED on SOD ; ;Load C000h to SP START: LXI H,0C000h ; 0000 21 00 C0 SPHL ; 0003 F9 FLASH: MVI A,0C0h ; 0004 3E C0 SIM ; 0006 30 CALL DELAY ; 0007 CD 13 00 MVI A,40h ; 000A 3E 40 SIM ; 000C 30 CALL DELAY ; 000D CD 13 00 JMP FLASH ; 0010 C3 04 00 ;Delay, return to HL when done. DELAY: MVI A, 0FFh ; 0013 3E FF MOV B,A ; 0015 47 PT1: DCR A ; 0016 3D PT2: DCR B ; 0017 05 JNZ PT2 ; 0018 C2 17 00 CPI 00h ; 001B FE 00 JNZ PT1 ; 001D C2 16 00 RET ; 0020 C9 ------------- / --------------- porty: o F8 CC --> LED 00110011 /55/aa 01010101 i F9 <-- SWitch o FA FF 7400 +-------+ W- -| | +-------+ Ax-Ay --| 74138 | | |o-- --| 7430 |o---------o| | R- -| | | | GND- o| |--> device 0-7 | | IO/M-| | addr F8, F9... Ax-y --| | | Ucc --|
Porty
OUT: F8h | 248 IN: F9h | 249 OUT: FAh | 250 OUT: FBh FCh FDh ... //--------------------------------------------
org 8000h STARTC: MVI C, 0FFh ; 8000 0E FF PT3: MOV A, C ; 8002 79 OUT 0F8h ; 8003 D3 F8 CALL 0FF2h ; 8005 CD F2 0F DCR C ; 8008 0D JNZ PT3 ; 8009 C2 02 80 absolute JMP STARTC ; 0010 C3 00 80 absolute
ToDo
LED: ROM->RAM obecné zařízení na UARTU nebo na 8bitu "děrná páska" i/o imsai BLINK org 8000h ... BASIC IMSAI BASIC: 1800 konec 399f next 39a0? velikost 219B
Boot1 (1000)
;Assembly Address Opcode ;https://www.sim8085.com/ ORG 1000h START: LXI H,8000h ; 1000 21 00 80 MVI A,C0h ; 1003 3E C0 SIM ; 1005 30 CALL 0FF2h ; 1006 CD F2 0F MVI A,40h ; 1009 3E 40 SIM ; 100B 30 IN F9h ; 100C DB F9 CMA ; 100E 2F MOV D,A ; 100F 57 LOOP: MVI A,C0h ; 1010 3E C0 SIM ; 1012 30 CALL 0FF2h ; 1013 CD F2 0F IN F9h ; 1016 DB F9 CMA ; 1018 2F MOV M,A ; 1019 77 INX H ; 101A 23 MVI A,40h ; 101B 3E 40 SIM ; 101D 30 CALL 0FF2h ; 101E CD F2 0F DCR D ; 1021 15 JNZ LOOP ; 1022 C2 10 10 HLT ; 1025 76 ; 37 Bytes
mvi a, 100 ;Moves 64 into a, as 100 base 10 is 64 base 16 mvi a, 26h ;Moves 0x26 (or 26 in hexadecimal) into a ... data: def 50 ... org f000 / 8000h lxi h, data ... MVI A, 64H LOOP: OUT 85h DCR A JNZ LOOP ukazky asm:
https://github.com/SohamMalakar/Intel-8085/tree/master/samples
https://github.com/GNUSim8085/GNUSim8085/tree/master/doc/examples
I2C EEPROM
+---U---+ 24C16 (2K x 8) 16kb / 2KB A0 -| |- Vcc A1 -| | - WP --- GND A2 -| | - SCL GND -| | - SDA +-------+
Odkazy
https://heavydeck.net/project/i8085-microcomputer/
http://john.ccac.rwth-aachen.de:8000/as/
https://grantmestrength.github.io/RetroComputerInstructionManual/imsai_front_panel.html
https://digibarn.com/collections/business-docs/imsai-corporate/index.html
https://www.zseries.in/embedded%20lab/8085%20microprocessor/timing%20diagram.php
https://www.electronicsandcommunications.com/2019/07/machine-cycle-in-8085-microprocessor.html