Odczyt rekordu tekstowego z edytora ekranowego (INPUT)
From Atariki
(Różnice między wersjami)
Wersja z dnia 12:12, 15 lip 2006 KMK (Dyskusja | wkład) ← Previous diff |
Aktualna wersja KMK (Dyskusja | wkład) |
||
Linia 1: | Linia 1: | ||
- | Program czeka, aż użytkownik wpisze ciąg znaków z klawiatury i naciśnie klawisz RETURN. Znaki podczas wpisywania są wyświetlane na ekranie, działają też normalne znaki kontrolne (odczyt jest robiony z edytora ekranowego). | + | '''Przeznaczenie:''' Program czeka, aż użytkownik wpisze ciąg znaków z klawiatury i naciśnie klawisz RETURN. Znaki podczas wpisywania są wyświetlane na ekranie, działają też normalne znaki kontrolne. Odczyt jest robiony z edytora ekranowego, a zatem kanał #0 musi być '''otwarty''' (jest to jego stan domyślny, więc wystarczy go nie zamykać). |
- | Wywołanie funkcji polega na załadowaniu adresu, pod jaki mają być wpisane znaki, do rejestrów A/Y (młodszy/starszy) i wykonaniu rozkazu JSR GETLINE. | + | '''Odpowiednik w [[BASIC]]-u''': <code>INPUT A$</code> |
- | <pre> | + | '''Wywołanie:''' adres, pod który mają być wpisane znaki, należy załadować do rejestrów A/Y (młodszy/starszy), a następnie podać rozkaz <code>jsr getline</code>. |
- | iccmd = $0342 | + | |
- | icbufa = $0344 | + | |
- | icbufl = $0348 | + | |
- | jciomain = $e456 | + | |
- | getline ldx #$00 | + | <code> |
- | sta icbufa,x | + | iccmd = $0342 |
- | tya | + | icbufa = $0344 |
- | sta icbufa+1,x | + | icbufl = $0348 |
- | lda #$ff ;maks. wielkość tekstu | + | ; |
- | sta icbufl,x | + | getline ldx #$00 |
- | lda #$00 | + | sta icbufa,x |
- | sta icbufl+1,x | + | tya |
- | lda #$05 | + | sta icbufa+1,x |
- | sta iccmd,x | + | lda #$ff ;maks. wielkość tekstu |
- | jmp jciomain | + | sta icbufl,x |
- | </pre> | + | lda #$00 |
+ | sta icbufl+1,x | ||
+ | lda #$05 | ||
+ | sta iccmd,x | ||
+ | jmp [[Tablica skoków#JCIOMAIN|jciomain]] | ||
+ | </code> | ||
[[Kategoria:Niezbędnik kodera]] | [[Kategoria:Niezbędnik kodera]] |
Aktualna wersja
Przeznaczenie: Program czeka, aż użytkownik wpisze ciąg znaków z klawiatury i naciśnie klawisz RETURN. Znaki podczas wpisywania są wyświetlane na ekranie, działają też normalne znaki kontrolne. Odczyt jest robiony z edytora ekranowego, a zatem kanał #0 musi być otwarty (jest to jego stan domyślny, więc wystarczy go nie zamykać).
Odpowiednik w BASIC-u: INPUT A$
Wywołanie: adres, pod który mają być wpisane znaki, należy załadować do rejestrów A/Y (młodszy/starszy), a następnie podać rozkaz jsr getline
.
iccmd = $0342 icbufa = $0344 icbufl = $0348 ; getline ldx #$00 sta icbufa,x tya sta icbufa+1,x lda #$ff ;maks. wielkość tekstu sta icbufl,x lda #$00 sta icbufl+1,x lda #$05 sta iccmd,x jmp jciomain