1

Temat: SDX 4.4x - bieżący dysk / katalog

... 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? ;)-

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

2

Odp: SDX 4.4x - bieżący dysk / katalog

change directory?

przechodze na tumiwisizm

3

Odp: SDX 4.4x - bieżący dysk / katalog

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.

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

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

4

Odp: SDX 4.4x - bieżący dysk / katalog

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

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

5

Odp: SDX 4.4x - bieżący dysk / katalog

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

?

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

6

Odp: SDX 4.4x - bieżący dysk / katalog

.... 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" ;)-

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

7

Odp: SDX 4.4x - bieżący dysk / katalog

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

Odp: SDX 4.4x - bieżący dysk / katalog

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

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

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

Odp: SDX 4.4x - bieżący dysk / katalog

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

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

EDIT:

działa.

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

10

Odp: SDX 4.4x - bieżący dysk / katalog

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

Odp: SDX 4.4x - bieżący dysk / katalog

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

12

Odp: SDX 4.4x - bieżący dysk / katalog

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

Odp: SDX 4.4x - bieżący dysk / katalog

Dzięki epi.

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

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

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

Odp: SDX 4.4x - bieżący dysk / katalog

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

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info

15

Odp: SDX 4.4x - bieżący dysk / katalog

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!

ADRES: pin@atari.pl - konto zlikwidowane. Aktualny adres: pin(at)atari8.info