?login_element?

Subversion Repositories NedoOS

Rev

Rev 1107 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.         module SYSTEM
  2. ;------------------------------------
  3. run:
  4.  
  5.         ;ld sp,#8000
  6.         call SOUND_PLAYER.SET_SOUND.mute
  7.         xor a
  8.         ld hl,varsStart
  9.         ld de,varsStart + 1
  10.         ld bc,tablesEnd - varsStart - 1
  11.         ld (hl),a
  12.         ldir
  13.         inc a           ; remove later
  14.         out (254),a
  15. ; The main loop of the program.
  16. ; The main loop calls the required system by identifier.
  17. ; The index and address of the execution of the required system are stored in a pre-created table.
  18.         ld bc,$
  19.         ; A - system ID
  20.         rlca
  21.         add a,low systemMap
  22.         ld l,a
  23.         adc a,high systemMap
  24.         sub l
  25.         ld h,a
  26.         ld a,(hl)
  27.         inc hl
  28.         ld h,(hl)
  29.         ld l,a
  30.         exx
  31.         call SOUND_PLAYER.play
  32.         exx
  33.         BORDER 0
  34.         call int
  35.         push bc
  36.         jp (hl)
  37. ;------------------------------------
  38. int:
  39.         ld iy,#5C3A
  40.         ei
  41.         halt
  42.         di
  43.         ret
  44. ;------------------------------------
  45. systemMap:     
  46.         ; system indices and addresses
  47. TITLE:                  equ 0
  48.                         dw TITLE_2.run
  49. MAIN_MENU_INIT:         equ 1
  50.                         dw MAIN_MENU.init
  51. MAIN_MENU_UPDATE:       equ 2
  52.                         dw MAIN_MENU.update
  53. GAME_INIT:              equ 3
  54.                         dw GAME.init
  55. GAME_UPDATE:            equ 4
  56.                         dw GAME.update
  57. INFO_INIT:              equ 5
  58.                         dw 0
  59. INFO_UPDATE:            equ 6
  60.                         dw 0
  61. PASS_INIT:              equ 7
  62.                         dw PASS.init
  63. PASS_UPDATE:            equ 8
  64.                         dw PASS.update
  65.  
  66. SHOP_INIT:              equ 9
  67.                         dw SHOP.init
  68. SHOP_UPDATE:            equ 10
  69.                         dw SHOP.update
  70. ;------------------------------------
  71.         endmodule
  72.