1

... otóż po wstępnej lekturze manuala, oraz analizie stanu pamięci nie jestem w stanie znaleźć informacji jak zmienić z poziomu TurboBasic domyślny "D:", czyli jak ustalić bieżący dysk / katalog. Chcę po prostu dokonać poprawek w TRSdesktop - wspomniany nie współpracuje poprawnie z aktualną wersją systemu SDX.

Ktoś pomoże? - Draco? ;)-

Kontakt: pin@usdk.pl

2

change directory?

przechodze na tumiwisizm

3 Ostatnio edytowany przez mono (2012-01-06 15:17:56)

U_SFAIL smb 'U_SFAIL'
U_XFAIL smb 'U_XFAIL'
CURDEV smb 'CURDEV'
PATH = $7a0

  lda CURDEV
  and #$f
  ora #'A'
  sta cwd
  lda #<?err
  ldx #>?err
  jsr U_SFAIL
  lda #<cwd
  ldx #>cwd
  sta FILE_P
  stx FILE_P+1
  jsr GETCWD
  jsr U_XFAIL
  ldy #-1
?loop:
  iny
  lda PATH,y
  sta cwd+2,y
  bne ?loop
?err:
  rts
cwd .db '?:',0
  .ds 63

W cwd masz ścieżkę z nazwą urządzenia.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

4 Ostatnio edytowany przez Pin (2012-01-06 18:33:25)

Mono - chodzi o ustawienie ścieżki z poziomu TBXL ;)- .. a nie o program legalnie operujący na bibliotekach SDX.

Kontakt: pin@usdk.pl

5

XIO 44,#n,0,0,"Dx:path"

?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

6 Ostatnio edytowany przez Pin (2012-01-06 21:47:06)

.... czyli XIO działa, chodzi o CURDEV ustawiony na wspomnianego hardcore'a. Zaczynam to rozumieć, pytanie tylko jak namierzyć w desktopie stary rejestr i zmienić to "po nowemu" ;)-

Kontakt: pin@usdk.pl

7

Heh. Cały ten kawał kodu, co spłodziłem można zawrzeć jednym prostym XIO: http://atariki.krap.pl/index.php/GET_CURRENT_DIRECTORY (niestety nie da się użyć z BASICa).

Okazało się natomiast, że problem pina nie polega na zmianie bieżącego KATALOGU, ale że chciałby on jakoś zmienić bieżący DYSK. A do tego nie ma funkcji... Może w przyszłości dałoby się to robić XIO 44 z jakimś parametrem w icaux?
A tymczasem można to chyba osiągnąć za pomocą:

lda #numer dysku
sta CURDEV
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

8 Ostatnio edytowany przez mono (2012-01-06 22:30:39)

Kod zwracający adres dowolnego symbolu:

fr0 = $d4
FSYMBOL = $7eb
pla
pla
tax
pla
jsr FSYMBOL
sta fr0
stx fr0+1
rts

oczywiście symbol MUSI istnieć, MUSI być w pamięci podstawowej, bo ignorowane są wszystkie błędy.
Wywołanie z BASICa za pomocą:

X=USR(ADR("kodprogramu"),ADR("CURDEV  "))

Edit: Załącznik

Post's attachments

GS.LST 46 b, liczba pobrań: 3 (od 2012-01-06) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

9 Ostatnio edytowany przez Pin (2012-01-07 00:44:22)

widzę ciemność, ciemność widzę :) -

(po odpaleniu w/w załącznika) :)

EDIT:

działa.

Kontakt: pin@usdk.pl

10

W przypadku braku symbolu zwraca zero.

Post's attachments

GS.LST 51 b, liczba pobrań: 4 (od 2012-01-08) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

11

jak wspomniałem na priv, po kompilacji procka zwraca zły adres CurDev. Program niekompilowany działa 100% bezbłędnie. Dziwne toto :)

Kontakt: pin@usdk.pl

12

To nic nowego.

http://atariki.krap.pl/index.php/Turbo_BASIC_XL_Compiler napisał/a:

Funkcja USR() niewłaściwie przekazuje wynik z procedury użytkownika.
Rozwiązanie: zamiast zapisywać wynik w słowie $D4/$D5 i pobierać go bezpośrednio z funkcji, wykorzystujemy dowolne nieużywane miejsce pamięci i funkcje PEEK() lub DPEEK().

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

13 Ostatnio edytowany przez mono (2012-01-09 12:36:53)

Dzięki epi.

Wynik jest zwracany przez USR lub może być odczytany z 203..204.

Post's attachments

GS.LST 55 b, liczba pobrań: 10 (od 2012-01-09) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

14

To powinno wystarczyć w takim razie. Jutro to sprawdzę. Tnx Mono za prockę a Epi - szczególnie za info o USR ;)-

Kontakt: pin@usdk.pl

15

ok - mogę śmiało powiedzieć, iż TRS Desktop zadziałał mi poprawnie na SDX 4.45 ;)- problem CurDev rozwiązany. Dzięki Mono / Epi za wsparcie!

Kontakt: pin@usdk.pl