Молодчина!
Только один совет. Почитай книжки по ассемблеру. Ну типа "как написать игру на ZX" и подобные. Там всё на пальцах разжёвано. И 9 и 10 твоих вопросов сразу отпадут.
Вид для печати
1.хочу релоцируемую программу, - загрузчик кодовых блоков в память компьютера с диска по имени файла. чтоб незаморачиватся про сектора там и тп.
2.хочу релоцируемую программу, - сканирования курсор клавиш, ENTER. чтоб работало при IM2.
3. все хочу уже готовое к работе.
В de кладешь адрес строки с именем файла с ноликом после последнего символа, если по возвращению стоит c, то ахтунг.
Код:load ; in
; DE - address of file name (zero byte after last character)
; out
; c - error
ld b,8
ld hl,23773
push hl
ld a," "
clearname
ld (hl),a
inc hl
djnz clearname
ld (hl),"C"
pop hl
copyname
ld a,(de)
and a
jr z,search
ld (hl),a
inc hl
inc de
jr copyname
search
ld c,10
call 15635
inc c
scf
ret z
loadfile
xor a
ld (23801),a
ld (23823),a
ld (23824),a
ld c,14
call 15635
ld a,(23823)
add 255
ret
---------- Post added at 02:46 ---------- Previous post was at 02:17 ----------
В IM2 зовешь keyscan. В переменной keystate получаешь:
0 - не нажато
1 - лево
2 - право
3 - верх
4 - низ
5 - enter
Код:keyscan
ld b,0
ld a,#fe
in a,(#fe)
rra
jr nc,direction
ld a,#bf
in a,(#fe)
rra
jr c,setkey
ld b,5
jr setkey
direction
inc b
ld a,#f7
in a,(#fe)
and #10
jr z,setkey
ld a,#ef
in a,(#fe)
rra
rra
inc b
rra
jr nc,setkey
inc b
rra
jr nc,setkey
inc b
rra
jr nc,setkey
ld b,0
setkey
ld a,b
ld (keystate),a
ret
keystate
db 0
Видимо, если флаг С установлен, то ошибка, нет файла, напр.
Да.Цитата:
сделал так ADD a,255 верно я ?
Да, из каталога. Куда надо (hl - стартовый адрес) так:
Код:load ; in
; DE - address of file name (zero byte after last character)
; HL - start address
; out
; c - error
ld b,8
push hl
ld hl,23773
push hl
ld a," "
clearname
ld (hl),a
inc hl
djnz clearname
ld (hl),"C"
pop hl
copyname
ld a,(de)
and a
jr z,search
ld (hl),a
inc hl
inc de
jr copyname
search
ld c,10
call 15635
pop hl
inc c
scf
ret z
loadfile
xor a
ld (23801),a
ld (23823),a
ld (23824),a
inc a
ld c,14
call 15635
ld a,(23823)
add a,255
ret