В эмуляторе файл map.bin после отработки раздувается в восемь раз. В железе как был 8192, так и остался. Что делает программа:
1. открываем map.bin, находящийся на SD.
2. читаем открытый файл в ОЗУ.
3. закрываем файл.
4. открываем mapBuf.bin, находящийся на SD. После этого файл map.bin увеличивается в 8 раз.
5. записываем открытый файл на карту SD.
6. закрываем файл.
[spoiler]
Code: Select all
map equ 4000h
.org 0
di
;сохраняем адрес вызова функций BIOS, передаваемой в ВС
mov h,b
mov l,c
shld bios+1
;открываем файл map
mvi a,2
mvi d,0
lxi h,mapFile
call bios
;читаем карту в ОЗУ
mvi a,4
lxi h,2000h ;размер
lxi d,map ;куда
call bios
;EOF закрываем файл
mvi a,5
lxi h,0
call bios
;*****************************************
;открываем файл mapBuf
mvi a,2
mvi d,0
lxi h,mapBuf
call bios
;сохраняем карту в файл
mvi a,5
lxi h,2000h ;размер
lxi d,map ;откуда
call bios
;EOF закрываем файл
mvi a,5
lxi h,0
call bios
jmp $
;********************
;вызов функции BIOS
;********************
bios:
call bios
ora a
rz ;операция прошла успешно
jmp $
mapFile:
db "test/map.bin",0
mapBuf:
db "test/mapBuf.bin",0В чём беда? Как быть?
____________________
Если файл map.bin не закрывать, то всё хорошо, размер файла map.bin не изменяется.
Code: Select all
;открываем файл map
mvi a,2
mvi d,0
lxi h,mapFile
call bios
;читаем карту в ОЗУ
mvi a,4
lxi h,2000h ;размер
lxi d,map ;куда
call bios
;EOF закрываем файл
; mvi a,5
; lxi h,0
; call bios
;*****************************************
;открываем файл mapBuf
mvi a,2
mvi d,0
lxi h,mapBuf
call biosФайл раздувается в момент открытия другого файла - mapBuf.bin.
Не по теме. Открываю страничку в смартфоне и вижу: С какого-то перепугу вставляется
, которое я терпеть ненавижувремени суток
