?login_element?

Subversion Repositories NedoOS

Rev

Rev 1869 | Blame | Compare with Previous | Last modification | View Log | Download

  1.     MODULE ModProcessor
  2.     ifdef GS
  3.        
  4.     macro GS_WaitCommand2
  5. .wait
  6.     in a, (CMD)
  7.     rrca
  8.     jr c, .wait
  9.     endm
  10.  
  11.     macro GS_SendCommand2 nn
  12.     ld a, nn : out (CMD), a
  13.     endm
  14.        
  15. play:
  16.     ld a, 255
  17.     ld (oldminutes), a
  18.  
  19.     call Console.waitForKeyUp
  20.  
  21.     ld hl, Gopher.requestbuffer : call DialogBox.msgNoWait
  22.  
  23.     ;ld a, 1, (Render.play_next), a
  24.         xor a
  25.         ld (last_song_position),a
  26.    
  27.     ld h, #00, a, 32
  28.     call TextMode.fillLine
  29.     ld de, #0001 : call TextMode.gotoXY
  30.     ld hl, message : call TextMode.printZ
  31.     ld a, #00
  32.     call TextMode.highlightLine
  33.  
  34. .loop
  35.     halt
  36.     xor a
  37.     call Console.peekC
  38.     cp Console.BACKSPACE
  39.     jp z, .stopKey
  40.         cp SPACE
  41.     jp z, .playNext
  42.    
  43.     call printRTC
  44.  
  45.    ;проверка что MOD начал играть сначала
  46.     GS_SendCommand2 CMD_GET_SONG_POSITION
  47.     GS_WaitCommand2
  48.         ld a,(last_song_position) ;предыдущая позиция
  49.         ld c,a
  50.         in a,(DATA) ;текущая позиция
  51.         ld (last_song_position),a
  52.         cp c
  53.         jr nc, .loop ;если не меньше, продолжаем играть
  54. .playNext
  55.     ld a, 1, (Render.play_next), a ;флаг что надо будет играть следующий файл
  56. .stop
  57.     call GeneralSound.stopModule
  58.    
  59.     call Console.waitForKeyUp
  60.     ret
  61. .stopKey
  62.     xor a : ld (Render.play_next), a ;флаг что не надо играть следующий файл
  63.     jr .stop
  64.  
  65. message
  66.     IFDEF SCREEN64
  67.     ENDIF    
  68.     IFDEF SCREEN80
  69.     db "       "
  70.     ENDIF    
  71.     IFDEF SCREEN85
  72.     db "         "
  73.     ENDIF
  74.  
  75.     db "Playing MODs [SPACE] for next song [BACKSPACE] for stop playing.", 0
  76.  
  77. CMD_GET_SONG_POSITION     = #60
  78. last_song_position db 0
  79.  
  80. ;; Control ports
  81. CMD  = 187
  82. DATA = 179
  83.     endif
  84.     ENDMODULE
  85.