Subversion Repositories pentevo

Rev

Rev 277 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. .EQU    TBEEP_N =0
  2. ;
  3. ;--------------------------------------
  4. ;
  5. .DSEG
  6. T_BEEP_PTR:     .BYTE   2
  7. T_BEEP_DELTA:   .BYTE   2
  8. .CSEG
  9. ;
  10. ;┌──────────────────────────────┐
  11. ;│                              │
  12. ;│           12345 Гц           │
  13. ;│                              │
  14. ;│ <>, <> - изменение частоты │
  15. ;└──────────────────────────────┘
  16. ;
  17. ;--------------------------------------
  18. ;
  19. TESTBEEP:
  20.         GETMEM  1
  21.  
  22.         LDIZ    WIND_T_BEEP*2
  23.         CALL    WINDOW
  24.         LDIZ    MLMSG_TBEEP*2
  25.         CALL    SCR_PRINTMLSTR
  26.  
  27.         LDI     DATA,0B00000001
  28.         LDI     TEMP,INT_CONTROL
  29.         CALL    FPGA_REG
  30.  
  31.         LDI     DATA,7
  32. T_BEEP_NEWFREQ:
  33.         STH     TBEEP_N,DATA
  34.         LDI     XL,20
  35.         LDI     XH,10
  36.         CALL    SCR_SET_CURSOR
  37.         LDH     DATA,TBEEP_N
  38.         LSL     DATA
  39.         LSL     DATA
  40.         LDIZ    T_BEEP_FREQTAB*2
  41.         ADD     ZL,DATA
  42.         ADC     ZH,NULL
  43.         LPM     XL,Z+
  44.         LPM     XH,Z+
  45.         PUSHZ
  46.         CALL    DECWORD
  47.         POPZ
  48.         LPM     DATA,Z+
  49.         STS     T_BEEP_DELTA+0,DATA
  50.         LPM     DATA,Z+
  51.         STS     T_BEEP_DELTA+1,DATA
  52.         LDI     DATA,$7F
  53.         LDI     TEMP,COVOX
  54.         CALL    FPGA_REG
  55.         ;теперь ничего не выводить в FPGA (не менять текущий регистр) !
  56. T_BEEP_WAITKEY:
  57.         LDI     DATA,0B00000001
  58.         MOV     INT6VECT,DATA
  59.         CALL    WAITKEY
  60.         CLR     INT6VECT
  61.  
  62.         CPI     DATA,KEY_ESC
  63.         BREQ    T_BEEP_ESCAPE
  64.         CPI     DATA,KEY_UP
  65.         BREQ    T_BEEP_UP
  66.         CPI     DATA,KEY_DOWN
  67.         BREQ    T_BEEP_DOWN
  68.         RJMP    T_BEEP_WAITKEY
  69.  
  70. T_BEEP_UP:
  71.         LDH     DATA,TBEEP_N
  72.         CPI     DATA,14
  73.         BRCC    T_BEEP_WAITKEY
  74.         INC     DATA
  75.         RJMP    T_BEEP_NEWFREQ
  76.  
  77. T_BEEP_DOWN:
  78.         LDH     DATA,TBEEP_N
  79.         TST     DATA
  80.         BREQ    T_BEEP_WAITKEY
  81.         DEC     DATA
  82.         RJMP    T_BEEP_NEWFREQ
  83.  
  84. T_BEEP_ESCAPE:
  85.         LDI     DATA,0B00000000
  86.         LDI     TEMP,INT_CONTROL
  87.         CALL    FPGA_REG
  88.  
  89.         FREEMEM 1
  90.         RET
  91. ;
  92. ;--------------------------------------
  93. ;
  94. T_BEEP_INT:
  95.         PUSH    DATA
  96.         PUSHZ
  97.         LDS     ZH,T_BEEP_PTR+0
  98.         LDS     ZL,T_BEEP_PTR+1
  99.         LDS     DATA,T_BEEP_DELTA+0
  100.         ADD     ZH,DATA
  101.         LDS     DATA,T_BEEP_DELTA+1
  102.         ADC     ZL,DATA
  103.         STS     T_BEEP_PTR+0,ZH
  104.         STS     T_BEEP_PTR+1,ZL
  105.         LDI     ZH,HIGH(TABL_SINUS*2)
  106.         LPM     DATA,Z
  107.         CALL    FPGA_SAME_REG
  108.         POPZ
  109.         POP     DATA
  110.         RET
  111. ;
  112. ;--------------------------------------
  113. ;
  114. WIND_T_BEEP:
  115.         .DB     8,8,32,6,$DF,$01
  116. ;
  117. T_BEEP_FREQTAB:
  118.         .DW        76,    181
  119.         .DW       107,    256
  120.         .DW       151,    362
  121.         .DW       214,    512
  122.         .DW       302,    724
  123.         .DW       427,   1024
  124.         .DW       604,   1448
  125.         .DW       854,   2048
  126.         .DW      1208,   2896
  127.         .DW      1709,   4096
  128.         .DW      2417,   5793
  129.         .DW      3418,   8192
  130.         .DW      4834,  11585
  131.         .DW      6836,  16384
  132.         .DW      9667,  23170
  133. ;
  134. ;--------------------------------------
  135. ;
  136.