home *** CD-ROM | disk | FTP | other *** search
/ Syzygy Magazine 6 / Syzygy_Magazine_6_1999___pl_Disk_2_of_3_Side_B.atr / sparta1.arc / SPARTA09.DOC < prev    next >
Text File  |  1999-02-20  |  5KB  |  1 lines

  1. ¢      SDX uəywa do definiowania waənych procedur SYMBOLI, dzi❎ki nim moəliwe¢  jest porozumiewanie si❎ programw mieszcz⇧cych si❎ w rənych miejscach¢  pami❎ci,  adowanie kodu przemieszczalnego itp. System posiada trzy procedury¢  zarz⇧dzaj⇧ce SYMBOLAMI oraz pole SYMBOL zawieraj⇧ce.¢¢¢  SYMBOL   equ $B7F¢           +$0 - wska♪nik do nast❎pnego symbolu,¢           +$2 - nazwa symbolu (8),¢           +$A - indeks uəywanej pami❎ci przez program definiowany symbolem¢                 zawarty w dwch najstarszych bitach, w pozosta ych mie③ci si❎¢                 numer aplikacji do ktrej naleəy symbol.¢           +$B - adres procedury definiowanej symbolem.¢¢      Procedura odszukania symbolu. Wymaga ona ustawionej nazwy symbolu w¢  SYMBOL. Zwraca adres procedury w SYMBOL i indeks pami❎ci w EXTENDED oraz¢  wynik 1 lub wynik 0. Uwaga: warto③⇨ w EXTENDED jest nanoszona (ORA), a nie¢  ustawiana (STA).¢¢           org $A4BF   System LOOK UP of symbol.¢¢  bufadr   equ $15¢  SYMBOL   equ $B7F¢  EXTENDED equ $C57¢  smb_p    equ $C80¢¢  S_LOOKUP lda smb_p       Procedura pobiera adres ostatniego zdefiniowanego¢           ldx smb_p+1     symbolu.¢¢  eA4C5    sta bufadr      Teraz ustawia wska♪nik do symbolu¢           stx bufadr+1¢           ora bufadr+1    gdy jest on rwny zero procedura si❎ koczy z tym¢           beq eA4F9       wynikiem.¢¢           ldy #$02¢  eA4CF    lda (bufadr),y  W przeciwnym razie porwnuje nazwy symboli.¢           cmp SYMBOL,y¢           bne eA4FA¢           iny¢           cpy #$0A¢           bne eA4CF¢¢           ldy #$0B        Gdy nazwy s⇧ rwne ustawiany jest adres procedury¢           lda (bufadr),y¢           sta SYMBOL,y¢           iny¢           lda (bufadr),y¢           sta SYMBOL,y¢           ldy #$0A¢           lda (bufadr),y  oraz indeks pami❎ci.¢           and #$C0¢           asl @¢           rol @¢           rol @¢           ora EXTENDED¢           sta EXTENDED¢           lda #$01        Na koniec ustawiany jest poprawny wynik operacji.¢  eA4F9    rts¢¢  eA4FA    ldy #$01        Gdy nazwy si❎ nie zgadza y pobierany jest adres¢           lda (bufadr),y  nast❎pnego symbolu¢           tax¢           dey¢           lda (bufadr),y¢           jmp eA4C5       i procedura si❎ zap❎tla.¢¢      Procedura dodaj⇧ca symbol do listy. Wymaga ustawionego pola¢  SYMBOL.¢¢           org $A505   System ADD symbol.¢¢  bufadr   equ $15¢  SYMBOL   equ $B7F¢  EXTENDED equ $C57¢  sdxmemlo equ $C5F¢  aplnum   equ $C7B¢  smb_p    equ $C80¢¢  newmemlo equ $AFCB¢¢  S_ADD    lda smb_p       Procedura ustala adres nast❎pnego symbolu na¢           sta SYMBOL      ostatnio zdefiniowany.¢           lda smb_p+1¢           sta SYMBOL+1¢           lda EXTENDED    Nast❎pnie ustala uəywan⇧ przez symbol pami❎⇨¢           lsr @¢           ror @¢           ror @¢           ora aplnum      i numer aplikacji do ktrej naleəy symbol.¢           sta SYMBOL¢¢           lda sdxmemlo    Teraz ustawia wska♪nik pami❎ci na MEMLO¢           sta bufadr¢           lda sdxmemlo+1¢           sta bufadr+1¢¢           ldy #$0C¢  eA529    lda SYMBOL,y    i przepisuje tam definicj❎ symbolu.¢           sta (bufadr),y¢           dey¢           bpl eA529¢¢           lda bufadr      Nast❎pnie ustawia nowy adres ostatnio zdefiniowanego¢           sta smb_p       symbolu¢           lda bufadr+1¢           sta smb_p+1¢           clc             i zwi❎ksza o d ugo③⇨ symbolu wska♪nik MEMLO.¢           lda #$0D¢           adc sdxmemlo¢           sta sdxmemlo¢           bcc eA549¢           inc sdxmemlo+1¢  eA549    jmp newmemlo    Na kocu aktualizuje ATARI OS memlo.¢¢      Procedura kasuj⇧ca symbole aplikacji wi❎kszej niə aplnum.¢¢           org $A54C   System CLEAR symbol.¢¢  bufadr   equ $15¢  smb_p    equ $C80¢  aplnum   equ $C7B¢¢  S_CLEAR  lda smb_p       Na pacz⇧tku procedura ustawia adres ostatniego¢           ldx smb_p+1     symbolu,¢¢  eA552    sta bufadr      nast❎pnie ustawia wska♪nik do symbolu.¢           stx bufadr+1¢           ldy #$0A¢           lda (bufadr),y  Teraz porwnuje numer aplikacji dla symbolu z¢           and #$3F        numerem ustawionym i¢           cmp aplnum¢           bcc eA56E¢           beq eA56E¢           ldy #$01        gdy jest on wi❎kszy pobierany ustawiany jest¢           lda (bufadr),y  symbolu,¢           tax¢           dey¢           lda (bufadr),y¢           jmp eA552       po czym p❎tla si❎ zamyka.¢¢  eA56E    lda bufadr      Gdy odszuka symbol o odpowiednim numerze aplikacji¢           sta smb_p       procedura ustawia jego adres w wska♪niku ostatnio¢           lda bufadr+1    definiowanego symbolu.¢           sta smb_p+1¢           rts¢¢           end of doc.¢