home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / as65 / demo / s1 / update.asm < prev    next >
Assembly Source File  |  1995-02-27  |  3KB  |  162 lines

  1. ;**************************************************************************
  2. ;
  3. ; Filename : UPDATE.ASM
  4. ; ---------------------
  5. ;
  6. ; (c) 1991 by Thomas Lehmann
  7. ;
  8. ;
  9. ; Jackophone V5.00
  10. ;
  11. ;
  12. ; Schalten verschiedener Ereignisse, z.B. Ports, Relais, ...
  13. ;
  14. ;
  15. ;**************************************************************************
  16.  
  17.  
  18. MODUL_START    set    *    ; Größe des Moduls berechnen
  19.  
  20.  
  21.  
  22. update_task    jsr port_update    ; frei programmierbare Ports schalten
  23.     jsr tst_erde    ; Relais für Erdtaste schalten
  24.     jsr set_fslh    ; FS bzw. LH Relais und LED schalten
  25.  
  26.     lda #20        ; Anzahl der Aussetzer
  27.     jsr task_sleep    ; Task X-mal aussetzen
  28.     bra update_task    ; erneuter Durchlauf
  29.  
  30.  
  31.  
  32. ; =========================================================================
  33. ;
  34. ; Funktion    : Update der frei programmierbaren Ports
  35. ;
  36. ; Eingang    : -------
  37. ;
  38. ; Ausgang    : -------
  39. ;
  40. ; Register    : Accu, X
  41. ;
  42. ; (c) by Thomas Lehmann August 1991
  43. ;
  44. ; =========================================================================
  45.  
  46. port_update
  47.     block
  48.     lda #PRG_PORT-1    ; letzten Port einstellen
  49.  
  50. loop    pha        ; Portnr. retten
  51.     jsr port_tst    ; Port testen
  52.     bcc port_off    ; Port ausgeschaltet
  53.  
  54.  
  55.     ; Port einschalten
  56.     ; ----------------
  57.     jsr set_prgport    ; Port setzen
  58.     bra loop_1
  59.  
  60.     ; Port ausschalten
  61.     ; ----------------
  62. port_off    jsr clr_prgport    ; programmierbaren Port zurücksetzen
  63.  
  64. loop_1    pla        ; Portnr. zurück
  65.     dec a        ; alle Ports geschaltet ?
  66.     bpl loop
  67.  
  68.     rts
  69.     bend
  70.  
  71.  
  72.  
  73.  
  74. ; =========================================================================
  75. ;
  76. ; Funktion    : Erde wählen
  77. ;      Relais für Erdtaste testen
  78. ;      wenn Timer abgelaufen, Erd-Relais zurückgesetzt
  79. ;
  80. ; Eingang    : ---------
  81. ;
  82. ; Ausgang    : ---------
  83. ;
  84. ; Register    : Accu
  85. ;
  86. ; (c) by Thomas Lehmann Mai 1990
  87. ;
  88. ; =========================================================================
  89.  
  90. tst_erde    bbr WHL_ERDE,ltg_stat,tst_erd_end    ; Erde wird nicht gewählt
  91.  
  92.     lda struct_tim100+ERD_TIM_O    ; ist Timer abgelaufen ?
  93.     bne tst_erd_end    ; nein, Ende
  94.  
  95.     lda erd_rel    ; Portnr. für Erdtaste laden
  96.     jsr port_off    ; Erd Relais ausschalten
  97.  
  98.     rmb WHL_ERDE,ltg_stat    ; Erde ist gewählt
  99.  
  100. tst_erd_end    rts
  101.  
  102.  
  103.  
  104. ; =========================================================================
  105. ;
  106. ; Funktion    : Update des FS/LH Relais und der LED`s
  107. ;
  108. ; Eingang    : -------
  109. ;
  110. ; Ausgang    : -------
  111. ;
  112. ; Register    : Accu, X
  113. ;
  114. ; (c) by Thomas Lehmann August 1991
  115. ;
  116. ; =========================================================================
  117.  
  118. set_fslh
  119.     block
  120.     bbs ST_FSLH,feap_stat,fslh_on    ; FS/LH ist eingeschaltet
  121.  
  122.     ; FS/LH ist ausgeschaltet
  123.     ; =======================
  124.     ldy #LD_L|LD_R|LD_OFF    ; LED`s in FS Taste löschen
  125.     jsr fslh_led    ; LED schalten
  126.     jmp fs_off    ; FS ausschalten
  127.  
  128.  
  129.     ; FS/LH ist eingeschaltet
  130.     ; =======================
  131. fslh_on    jsr fs_on    ; FS/LH einschalten
  132.  
  133.     ; LED`s in FS/LH Taste schalten
  134.     ; -----------------------------
  135.     ldy #LD_L|LD_OFF
  136.     lda #LD_R|LD_ON    ; LED-Wert für LH
  137.  
  138.     ldx fs_stat    ; FS aktiv ?
  139.     beq fslh_1    ; nein, nur temporör bzw. LH
  140.  
  141.     ldy #LD_R|LD_OFF
  142.     lda #LD_L|LD_ON    ; LED-Wert für FS
  143.  
  144. fslh_1    pha
  145.     jsr fslh_led
  146.     ply
  147.  
  148. fslh_led    lda #KEY_FSLH    ; Tastenwert laden
  149.     jmp set_prgled    ; LED ausschalten
  150.     bend
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157. ; --------------------------------------------------------------------------
  158.  
  159. HLP    set    *
  160. _UPDATE    equ    HLP-MODUL_START        ; Größe des Moduls
  161.  
  162.