Enterprise Forever
:UK => Programming => Topic started by: ssr86 on 2016.July.08. 23:15:11
-
I've noticed another problem with my code this time it's something with the soft-reset.
The reset routine I'm using (copy-pasted from one of available examples):
resetRoutine
di
ld sp,0100h
ld a,0ffh
out (0b2h),a
ld c,40h
exos 0
ld a,01h
out (0b3h), a
ld a,06h
jp 0c00dh
Installed with:
ld a,0ffh
out (0b2h),a ;system segment to page2
ld hl,resetRoutine
ld (0bff8h),hl ;store soft reset in EXOS segment
My problem is that in a wip that uses more than 64kb I need to reset the machine at least twice (do a hard-reset?) to make it to the boot screen (after a single reset the machine hangs). Another problem is about the sdcard - with all my wips - after a successful reset I need to manually change the current drive to :f: to autorun the file-explorer. However that is not the case with most of the other software. What am I doing wrong?
After reseting the machine in
-
Where you run this code? It is needed to be installed on Page0 segment.
-
Where you run this code? It is needed to be installed on Page0 segment.
I run it in the startup/loader code - it is installed from code on page0
-
Hm, i can think only for that something writes to that area where soft reset routine resides, because it is on EXOS page0,and everything seems tobe ok. Could you please attach a snapshot?
Or something is overwritten on FF segment, which is necessary for soft reset.
-
Or something is overwritten on FF segment, which is necessary for soft reset.
You were right. I changed the reset setup to use page3 to see if maybe my loader doesn't corrupt my page2 which had segment $ff set and after that the reset works well - no problem with getting to the boot screen.
There is still the thing about reseting the current sd drive letter, which can be made to automatically reset to drive f, but my reset routine doesn't do that. What should be added?