¢ SDX uəywa do definiowania waənych procedur SYMBOLI, dzi❎ki nim moəliwe¢ jest porozumiewanie si❎ programw 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 dwch najstarszych bitach, w pozostaych mie③ci si❎¢ numer aplikacji do ktrej 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 rwny zero procedura si❎ koczy z tym¢ beq eA4F9 wynikiem.¢¢ ldy #$02¢ eA4CF lda (bufadr),y W przeciwnym razie porwnuje nazwy symboli.¢ cmp SYMBOL,y¢ bne eA4FA¢ iny¢ cpy #$0A¢ bne eA4CF¢¢ ldy #$0B Gdy nazwy s⇧ rwne 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 zgadzay 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 ktrej 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 dugo③⇨ symbolu wska♪nik MEMLO.¢ lda #$0D¢ adc sdxmemlo¢ sta sdxmemlo¢ bcc eA549¢ inc sdxmemlo+1¢ eA549 jmp newmemlo Na kocu 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 porwnuje 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.¢