yes
This commit is contained in:
parent
f3125cb4c5
commit
ac3b80cbb1
Binary file not shown.
BIN
bin/FSHa.8xp
BIN
bin/FSHa.8xp
Binary file not shown.
3667
bin/FSHa.lst
3667
bin/FSHa.lst
File diff suppressed because it is too large
Load Diff
|
|
@ -7,6 +7,6 @@ prgmcmdPRGMf:
|
||||||
ld hl, prgmcmdPRGMSprgm
|
ld hl, prgmcmdPRGMSprgm
|
||||||
call _Mov9ToOP1
|
call _Mov9ToOP1
|
||||||
|
|
||||||
jp prgmasm
|
jp prgmrun
|
||||||
|
|
||||||
prgmcmdPRGMSprgm: .db ProgObj, "CHAR", 0
|
prgmcmdPRGMSprgm: .db ProgObj, "EASE", 0
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
#define prgmmovsize prgmmov_end - prgmmov_start
|
#define prgmmovsize prgmmov_end - prgmmov_start
|
||||||
|
|
||||||
prgmbasic:
|
prgmrun:
|
||||||
|
|
||||||
prgmasm:
|
|
||||||
call _HomeUp
|
call _HomeUp
|
||||||
call _RunIndicOn
|
call _RunIndicOn
|
||||||
call _APDSetup
|
call _APDSetup
|
||||||
|
|
@ -31,59 +29,86 @@ prgmloader:
|
||||||
call _DrawStatusBar
|
call _DrawStatusBar
|
||||||
;ld hl,(prgmNamePtr)
|
;ld hl,(prgmNamePtr)
|
||||||
;call NamePtrToOP1
|
;call NamePtrToOP1
|
||||||
;bit isBasic,(iy+pgrmStatus)
|
call prgm_to_usermem
|
||||||
;jp nz,RunBasicProgram
|
ld hl, userMem + 1
|
||||||
ld a, 's'
|
ld a, (hl)
|
||||||
call _PutC
|
cp a,tAsm84CECmp
|
||||||
call prgm_to_usermem; the program is now stored at userMem -- Now we need to check and see what kind of file it is - C or assembly
|
jr nz,RunBasicProgram ; is it a basic program
|
||||||
push hl
|
|
||||||
ld hl, prgmunloader
|
ld hl, prgmunloader
|
||||||
call _PushErrorHandler
|
call _PushErrorHandler
|
||||||
ld hl, prgmunloader
|
ld hl, prgmunloader
|
||||||
push hl
|
push hl
|
||||||
jp userMem ; simply call userMem to execute the program
|
jp userMem ; simply call userMem to execute the program
|
||||||
|
|
||||||
RunBasicProgram:
|
runBasicProgram:
|
||||||
call _RunIndicOn
|
call _RunIndicOn
|
||||||
call DeleteTempProgramGetName
|
;call DeleteTempProgramGetName
|
||||||
;ld hl,(actualSizePrgm)
|
;ld hl,(asm_prgm_size);actualSizePrgm)
|
||||||
;push hl
|
;push hl
|
||||||
;call _CreateProg ; create a temp program so we can execute
|
;call _CreateProg ; create a temp program so we can execute
|
||||||
;inc de
|
;inc de
|
||||||
;inc de
|
;inc de
|
||||||
;pop bc
|
;pop bc
|
||||||
;call _ChkBCIs0
|
;call _ChkBCIs0
|
||||||
;jr z,InROM ; there's nothing to copy
|
; jr z,InROM ; there's nothing to copy
|
||||||
;ld hl,(prgmDataPtr)
|
; ld hl,(userMem)
|
||||||
;ldi
|
;ldi
|
||||||
;jp po,InROM
|
;jp po,InROM
|
||||||
;ldir
|
;ldir
|
||||||
InROM: call _OP4ToOP1
|
InROM: ;call _OP4ToOP1
|
||||||
GoodInRAM:
|
GoodInRAM:
|
||||||
;ld de,apperr1
|
;ld de,apperr1
|
||||||
;ld hl,StopError
|
;ld hl,StopError
|
||||||
;ld bc,StopErrorEnd-StopError
|
;ld bc,StopErrorEnd-StopError
|
||||||
;ldir
|
;ldir
|
||||||
;set graphdraw,(iy+graphFlags)
|
set graphdraw,(iy+graphFlags)
|
||||||
;ld hl,ErrCatchBASIC
|
ld hl,prgmerrunloader;ErrCatchBASIC
|
||||||
;call _PushErrorHandler
|
call _PushErrorHandler
|
||||||
;set progExecuting,(iy+newdispf)
|
set progExecuting,(iy+newdispf)
|
||||||
;set allowProgTokens,(iy+newDispF)
|
set allowProgTokens,(iy+newDispF)
|
||||||
;set cmdExec,(iy+cmdFlags);settheseflagsto execute BASIC prgm
|
set cmdExec,(iy+cmdFlags) ;settheseflagsto execute BASIC prgm
|
||||||
;res onInterrupt,(iy+onflags)
|
res onInterrupt,(iy+onflags)
|
||||||
;ld hl,ReturnHereBASIC
|
ld hl, prgmunloader
|
||||||
;push hl
|
push hl
|
||||||
;sub a,a
|
sub a,a
|
||||||
;ld (kbdGetKy),a
|
ld (kbdGetKy),a
|
||||||
ei
|
ei
|
||||||
jp _ParseInp ; run program
|
jp _ParseInp ; run program
|
||||||
|
|
||||||
|
|
||||||
|
ErrCatchBASIC:
|
||||||
|
call _boot_ClearVRAM
|
||||||
|
call _DrawStatusBar
|
||||||
|
call _DispErrorScreen
|
||||||
|
set textInverse, (iy + textFlags)
|
||||||
|
ld hl,1
|
||||||
|
ld (curRow),hl
|
||||||
|
ld hl,QuitStr1
|
||||||
|
call _PutS
|
||||||
|
ld hl,QuitStr2
|
||||||
|
res textInverse, (iy + textFlags)
|
||||||
|
call _PutS
|
||||||
|
call _GetKey
|
||||||
|
jr +_
|
||||||
|
|
||||||
|
|
||||||
prgmunloader:
|
prgmunloader:
|
||||||
ld hl, prgmFsh
|
call _PopErrorHandler
|
||||||
|
_: ld hl, prgmFsh
|
||||||
call _Mov9ToOP1
|
call _Mov9ToOP1
|
||||||
|
call _ChkFindSym
|
||||||
|
call _ChkInRam
|
||||||
|
ex de,hl
|
||||||
|
jr z,ExistsInRAM
|
||||||
|
ld de,9
|
||||||
|
add hl,de
|
||||||
|
ld e,(hl)
|
||||||
|
add hl,de
|
||||||
|
inc hl
|
||||||
|
ExistsInRAM: ; HL->totalPrgmSize bytes
|
||||||
call prgm_to_usermem
|
call prgm_to_usermem
|
||||||
call _RunIndicOff
|
call _RunIndicOff
|
||||||
jp Fin
|
jp userMem
|
||||||
|
|
||||||
prgm_to_usermem:
|
prgm_to_usermem:
|
||||||
ld a, 09h ; 'add hl,bc'
|
ld a, 09h ; 'add hl,bc'
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,8 @@ FshCmdErrCode equ FshCmdArgFlags + 1
|
||||||
FshCmdOP equ FshCmdErrCode + 1
|
FshCmdOP equ FshCmdErrCode + 1
|
||||||
FshScratch equ FshCmdOP + 2
|
FshScratch equ FshCmdOP + 2
|
||||||
|
|
||||||
|
prgmDataPtr equ SafeSScreen - 5
|
||||||
|
|
||||||
SafeSScreen equ RamVars + FshVarsSize + FshCmdInptSize + FshPrgmSize + 10
|
SafeSScreen equ RamVars + FshVarsSize + FshCmdInptSize + FshPrgmSize + 10
|
||||||
|
|
||||||
.list
|
.list
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue