Advertisement
Guest User

hello.z80

a guest
Jul 12th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include    "ti83plus.inc"
  2. ;Deklarationen
  3.  
  4. ;I/O ADRESSEN VON 00h - 07h
  5.  
  6. ;OUTPUT
  7. UPPER_DISP      EQU     00h
  8. LOWER_DISP      EQU     01h
  9. DATA_DISP       EQU     02h
  10.  
  11. ;FREI
  12. PORT_06         EQU     06h
  13. PORT_07         EQU     07h
  14.  
  15. ;INPUTA
  16. CMD_IN          EQU     03h
  17. LOWER_IN        EQU     04h
  18. UPPER_IN        EQU     05h
  19.  
  20.  
  21. ;SPEICHER ADRESS DECODING
  22. ROM_TOP         EQU     07fffh
  23. RAM_BOT         EQU     08000h
  24. RAM_TOP         EQU     0ffffh
  25.  
  26.  
  27.  
  28. ;CMD`s
  29.    
  30. WR_CMD          EQU     00h
  31. INC_CMD         EQU     02h
  32. DEC_CMD         EQU     04h
  33. RD_CMD          EQU     08h
  34. RUN_CMD         EQU     010h
  35. Z_CMD           EQU     020h
  36. STP_CMD         EQU     040h
  37. RST_CMD         EQU     080h
  38.  
  39.  
  40. ;--------------------------------------------1--------------------------------------------------
  41.  
  42.  
  43. ;BOOT
  44.  
  45. org 0000h
  46.  
  47. START:
  48.         JP      BOOT
  49.        
  50. ;--------------------------------------------------------------------
  51. ;   ROM ARESSSEN 0003-00FF SIND UNBENUTZT
  52. ;--------------------------------------------------------------------
  53.  
  54. org 0100h
  55.  
  56. BOOT:                               ; ALLE ANZEIGEN MIT "NULL" BESCHREIBEN
  57.         LD      A,00h
  58.         LD      C,UPPER_DISP
  59.         OUT     (C),A
  60.         LD      C,LOWER_DISP
  61.         OUT     (C),A
  62.         LD      C,DATA_DISP
  63.         OUT     (C),A
  64.         NOP
  65.        
  66. BOOTCHK:
  67.         LD      C,LOWER_IN
  68.         IN      A,(C)
  69.         LD      B,A
  70.         LD      C,01h
  71.         SUB     C
  72.         JP      Z,SER_BOOT
  73.        
  74. ;--------------------------------------------------------------------
  75. ;   START DES "BETRIEBSYTEMS"
  76. ;--------------------------------------------------------------------
  77.  
  78. INIT:
  79.         DI                              ;INTERRUPT AUSSCHALTEN
  80.         JP      RAMCLR                  ;RAM MIT "NULL" BESCHREIBEN
  81.  
  82. ;--------------------------------------------2--------------------------------------------------
  83. LOOP:
  84.         NOP
  85.        
  86. GET_CMD:
  87.         LD      C,CMD_IN                ;PORT ZU CMD-TASTEN ERÖFFNEN
  88.         IN      A,(C)
  89.         LD      B,A
  90.        
  91.         LD      C,WR_CMD                ;WRITE CMD
  92.         SUB     C
  93.         JP      Z,WR_DATA              
  94.         LD      A,B
  95.        
  96.         LD      C,INC_CMD               ;INCREMENT CMD
  97.         SUB     C
  98.         JP      Z,INC_ADDR
  99.         LD      A,B
  100.        
  101.         LD      C,DEC_CMD               ;DECREMENT CMD
  102.         SUB     C
  103.         JP      Z,DEC_ADDR
  104.         LD      A,B
  105.        
  106.         LD      C,RD_CMD                ;READ CMD
  107.         SUB     C
  108.         JP      Z,RD_ADDR
  109.         LD      A,B
  110.        
  111.         LD      C,RUN_CMD               ;RUN CMD
  112.         SUB     C
  113.         JP      Z,RUN_ADDR
  114.         LD      A,B
  115.        
  116.         LD      C,Z_CMD                 ;ZERO CMD
  117.         SUB     C
  118.         JP      Z,RAMCLR
  119.         LD      A,B
  120.        
  121.         LD      C,STP_CMD               ;STEP CMD
  122.         SUB     C
  123.         JP      Z,STEP_PROG:
  124.         LD      A,B
  125.        
  126.         LD      C,RST_CMD               ;RESET CMD         
  127.         SUB     C
  128.         JP      Z,INIT
  129.        
  130.         JP      LOOP
  131.        
  132. ;--------------------------------------------3--------------------------------------------------
  133.  
  134. WR_DATA:
  135.         LD      C,LOWER_IN
  136.         IN      A,(C)
  137.         LD      (HL),A
  138.         JP      DISPLAY
  139.        
  140. INC_ADDR:
  141.         INC     HL
  142.         JP      DISPLAY
  143.        
  144. DEC_ADDR:
  145.         DEC     HL
  146.         JP      DISPLAY
  147.        
  148. RD_ADDR:
  149.         LD      C,UPPER_IN
  150.         IN      H,(C)
  151.         LD      C,LOWER_IN
  152.         IN      L,(C)
  153.         JP      DISPLAY
  154.  
  155. RUN_ADDR:
  156.        
  157.         JP      DISPLAY
  158.  
  159. ;--------------------------------------------4--------------------------------------------------
  160. STEP_PROG:
  161.         JP      DISPLAY
  162.  
  163. DISPLAY:
  164.         LD      C,UPPER_DISP
  165.         OUT     (C),H
  166.         LD      C,LOWER_DISP
  167.         OUT     (C),L
  168.         LD      C,DATA_DISP
  169.         LD      A,(HL)
  170.         OUT     (C),A
  171.  
  172. DELAY:                                  ;FÜR CIRCA 250ms
  173.         LD      BC,0ffffh               ;ENTPRELLEN DER CMD-TASTEN
  174. DELAYL:
  175.         DEC     BC
  176.         LD      A,C
  177.         OR      B
  178.         JR      NZ,DELAYL
  179.         JP      LOOP
  180.        
  181. RAMCLR:
  182.         LD      BC,ROM_TOP              ;START ADRESSE RAM - 1
  183. RAMCLRL:
  184.         INC     BC
  185.         LD      A,00h
  186.         LD      (BC),A
  187.         LD      A,0ffh
  188.         SUB     B
  189.         JR      NZ,RAMCLRL
  190.         LD      A,0ffh
  191.         SUB     C
  192.         JR      NZ,RAMCLRL
  193.         LD      HL,RAM_BOT
  194.         JP      DISPLAY                 ;WENN FERTIG --> ZURÜCK ZU RAM BOT
  195.  
  196.  
  197. ;--------------------------------------------5--------------------------------------------------
  198.  
  199. ;SERIAL
  200.  
  201. SER_BOOT:
  202.         LD      C,UPPER_DISP
  203.         LD      A,05Eh
  204.         OUT     (C),A
  205.         LD      C,LOWER_DISP
  206.         LD      A,0A1h
  207.         OUT     (C),A
  208.         LD      C,DATA_DISP
  209.         LD      A,010h
  210.         OUT     (C),A
  211.        
  212.         EI
  213.         NOP
  214.        
  215. SER_INIT:
  216.         NOP
  217.         JP      SER_INIT
  218.  
  219. ;--------------------------------------------6--------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement