Advertisement
Guest User

Z80 Rainbow Project Demo

a guest
Apr 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;
  2. ; Rainbow Project Demo Program
  3. ; For Festival use
  4. ;
  5.  
  6.         org 0x0000      ; Program entry
  7. endram: equ 0x27FF      ; Stack at end of RAM (dec 10239)
  8.         LD SP, endram   ; Load Stack Pointer
  9.         JP start        ; JP to main routine
  10. disp:   LD A,(HL)       ; Display subroutine for null terminated strings
  11.         CP 0            ; affects A, HL. HL points to string.
  12.         JP Z, dend
  13.         OUT (0x1),A
  14.         INC HL
  15.         JP disp
  16. dend:   RET
  17. delay:  NOP             ; Delay subroutine. Affects B. B must have a delay
  18.         DJNZ delay      ; value
  19.         RET
  20. start:  LD C, 192
  21. stloop: LD A,C          ; Set initial position to (col,row) (0,0)
  22.         CP 208          ; if end of line 1 exit star demo
  23.         JP Z, msgst     ; and proceed with names
  24.         OUT (0x1),A     ; send command to display
  25.         LD A,42         ; send star to display
  26.         OUT (0x1),A     ;
  27.         LD A,224        ; clear screen
  28.         OUT (0x1),A     ;
  29.         INC C           ; increase column
  30.         JP stloop
  31. msgst:  LD A, 192       ; restart from (0,0)
  32.         OUT (0x1),A
  33.         LD HL, messg    ; Get Rainbow Project string
  34.         CALL disp       ; Display it
  35.         LD B,10         ; Delay loop
  36.         CALL delay
  37.         LD HL, mesg2    ; Load address of first message
  38. start2: LD A,224        ; clear screen
  39.         OUT (0x1),A     ;
  40.         LD A, 192       ; restart from (0,0)
  41.         OUT (0x1),A     ;
  42.         CALL disp       ; display message
  43.         LD A,208        ; move to second line
  44.         OUT (0x1),A     ;
  45.         INC HL          ; get to the next message
  46.         CALL disp       ; display it
  47.         LD B,10         ; Delay loop
  48.         CALL delay      ;
  49.         INC HL          ; Get to the next message
  50.         LD A,(HL)       ; if no next message
  51.         CP 255          ; HALT
  52.         JP NZ, start2   ; else loop
  53.         HALT
  54.         org 0x1000
  55. messg:  defm "Rainbow Project"
  56.         defb 0
  57. mesg2:  defm "Nikos"
  58.         defb 0
  59.         defm "Koutsonikolis"
  60.         defb 0
  61.         defm "Giorgos"
  62.         defb 0
  63.         defm "Papadakis"
  64.         defb 0
  65.         defm "Nikos"
  66.         defb 0
  67.         defm "Gkiomakis"
  68.         defb 0
  69.         defm "Giorgos"
  70.         defb 0
  71.         defm "Krommydakis"
  72.         defb 0
  73.         defm "Alexandros"
  74.         defb 0
  75.         defm "Kordatzakis"
  76.         defb 0
  77.         defm "Eftichios"
  78.         defb 0
  79.         defm "Giakoumakis"
  80.         defb 0
  81.         defm "Iasonas"
  82.         defb 0
  83.         defm "Mavrommatakis"
  84.         defb 0
  85.         defm "Giorgos"
  86.         defb 0
  87.         defm "Priftis"
  88.         defb 0
  89.         defm "Manolis"
  90.         defb 0
  91.         defm "Kiagias"
  92.         defb 0
  93.         defb 255
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement