i8085

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

MakerFaire Prague 2023