[an error occurred while processing this directive]
|
//******************************************************************************
//*
//* File Name
//* labuda_with_ci.asm
//*
//* Version
//* January 18, 2003.
//*
//* Purpose
//* Simply labuda.
//*
//* Author
//* SDY
//*
//* Calling parameters
//*
//* Return values
//* r1 - Number of latches IRQ2.
//*
//* Registers affected
//* r0, r1
//*
//* Registers used
//* r0, r1
//*
//******************************************************************************
#include "def21061.h"//******************************************************************************
//*
//*
//*
//******************************************************************************
.section/pm sec_rth;
// Reserved interrupt, IRPTL bit 0, Vector 0x00
___lib_RSRV0:
NOP; NOP; NOP; NOP;// Reset vector (read-only, non-maskable):
___lib_RSTI:
IDLE;
jump main(db);
nop;
nop;// Reserved interrupt, IRPTL bit 2, Vector 0x08
___lib_RSRV1:
NOP; NOP; NOP; NOP;// Vector for status stack/loop stack overflow or PC stack full:
// Stack overflow, IRPTL bit 3, Vector 0x0c
___lib_SOVFI:
RTI; RTI; RTI; RTI;// High priority timer interrupt, IRPTL bit 4, Vector 0x10
___lib_TMZHI:
RTI; RTI; RTI; RTI;// Vector Interrupt, IRPTL bit 5, Vector 0x14
___lib_VIRPTI:
RTI; RTI; RTI; RTI;// IRQ2, IRPTL bit 6, Vector 0x18
___lib_IRQ2I:
jump irq2_occured;
RTI; RTI; RTI;//******************************************************************************
//*
//* Џ® Ё¤ҐҐ ( Ё зҐ § 祬 нв®в аҐо§ 㦥) ¤®«¦® Ўлвм в Є:
//* ў ॣЁбвॠr1 еа Ёвбп зЁб«® ЇаҐалў Ё© irq2.
//* Ђ ў®в Ё Ґв, Ґб«Ё ў бва®ЄҐ irq2_maybe_latches_in_that_string
//* Їа®Ёб室Ёв § йс«ЄЁў ЁҐ ЇаҐалў Ёп irq2, в® Vsakaya labuda ЁбЇ®«пвмбп
//* Ґ Ўг¤Ґв. Ќг Ё б®бв®пЁҐ r1 Ґ Ё§¬ҐЁвбп ЇаЁ ®Ўа Ў®вЄҐ в®«мЄ® зв® ў®§ЁЄиҐЈ®
//* ЇаҐалў Ёп.
//*
//******************************************************************************
.section/pm sec_pmco;
main:
r0 = 1;
r1 = 0;
bit set imask IRQ2I;
bit set mode1 IRPTEN;idle;
jump (pc,-1);irq2_occured:
jump (pc,1) (ci);
r0 = pass r0;
if eq rts;
irq2_maybe_latches_in_that_string:
r0 = 0; // Clr flg.rts(db), r1 = r1+1; // Number of interrupt.
nop; // Vsakaya labuda.
r0 = 1; // Set flg.
Составить ответ ||| Конференция ||| Архив
Ответы
E-mail: info@telesys.ru