Advertisement
vito-Z80

jps

Jul 14th, 2020
2,365
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. part_01T:   db "part 01",0
  2. part_02T:   db "part 02",0
  3. part_03T:   db "part 03",0
  4. part_04T:   db "part 04",0
  5. part_05T:   db "part 05",0
  6.  
  7. jmpData:
  8.     dw part_01
  9.     dw part_02
  10.     dw part_03
  11.     dw part_04
  12.     dw part_05
  13.  
  14.     struct part
  15. id_01   byte
  16. id_02   byte
  17. id_03   byte
  18. id_04   byte
  19. id_05   byte
  20.     ends
  21.  
  22. nextPart:   db 0
  23. /*
  24.     Если программа состоит из нскольких частей :
  25.         (game,options,menu1,menu2,etc...)
  26.     Завершение исполняемой части должно указывть ID следующей части в регистре 'A'
  27.                     ld a,part.id_03
  28. */
  29. //  jumping system
  30.     module jps
  31. run:
  32. mainLoop:
  33.     ld hl,#5000
  34.     ld de,#5001
  35.     ld bc,#7ff
  36.     ld (hl),l
  37.     ldir
  38.  
  39.     ld hl,jmpData
  40.     call execute
  41.     ld (nextPart),a
  42.  
  43.     ei
  44.     halt
  45.     jr mainLoop
  46.  
  47. execute:
  48.     ld a,(nextPart)
  49.     add a,a
  50.     add a,l
  51.     ld l,a
  52.     jr nc,$+3
  53.     inc h
  54.     ld a,(hl)
  55.     inc hl
  56.     ld h,(hl)
  57.     ld l,a
  58.     jp (hl)
  59.  
  60.     endmodule
  61.  
  62. //-----------------------------------
  63. part_01:
  64.     ld de,#5024
  65.     ld hl,part_01T
  66.     call print.text
  67.     ld a,part.id_02
  68.     ret
  69. part_02:
  70.     ld de,#5044
  71.     ld hl,part_02T
  72.     call print.text
  73.     ld a,part.id_03
  74.     ret
  75. part_03:
  76.     ld de,#5064
  77.     ld hl,part_03T
  78.     call print.text
  79.     ld a,part.id_04
  80.     ret
  81. part_04:
  82.     ld de,#5084
  83.     ld hl,part_04T
  84.     call print.text
  85.     ld a,part.id_05
  86.     ret
  87. part_05:
  88.     ld de,#50A4
  89.     ld hl,part_05T
  90.     call print.text
  91.     ld a,part.id_01
  92.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement