Mercurial > hg > Members > kono > nitros9-code
changeset 2251:e53b8d577cca
Fixed Level 2 RBF issue
author | boisy |
---|---|
date | Sat, 26 Dec 2009 15:17:20 +0000 |
parents | 8f641411c2fa |
children | 41a797492324 |
files | ChangeLog level1/coco/makefile level2/modules/rbf.asm |
diffstat | 3 files changed, 33 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Thu Dec 24 16:51:18 2009 +0000 +++ b/ChangeLog Sat Dec 26 15:17:20 2009 +0000 @@ -3,6 +3,7 @@ Level 2 Only: - joydrv_6551L, joydrv_6551M and joydrv_6552L now have their MPI slot select bytes properly represented and should work. +- A bug that caused RBF to write to the system globals area has been fixed. ------------------------------------------------------
--- a/level1/coco/makefile Thu Dec 24 16:51:18 2009 +0000 +++ b/level1/coco/makefile Sat Dec 26 15:17:20 2009 +0000 @@ -14,6 +14,8 @@ BOOTFILE_COVDG = bootfiles/bootfile_covdg BOOTFILE_COHR = bootfiles/bootfile_cohr BOOTFILE_COVDG_DS80 = bootfiles/bootfile_covdg_ds80 +BOOTFILE_DW3_COCO1 = bootfiles/bootfile_dw3_coco1 +BOOTFILE_DW3_COCO2 = bootfiles/bootfile_dw3_coco2 BOOTFILE_COVDG_DW3_COCO1 = bootfiles/bootfile_covdg_dw3_coco1 BOOTFILE_COVDG_DW3_COCO2 = bootfiles/bootfile_covdg_dw3_coco2 BOOTFILE_COHR_DS80 = bootfiles/bootfile_cohr_ds80
--- a/level2/modules/rbf.asm Thu Dec 24 16:51:18 2009 +0000 +++ b/level2/modules/rbf.asm Sat Dec 26 15:17:20 2009 +0000 @@ -89,6 +89,11 @@ * error if error code is != E$UnkSvc (fixes problems with drivers * which do not support SS.VarSect and return E$UnkSvc in their GetStat * routines after evaluating an unknown service code.) +* +* 37r3 2009/12/26 Boisy G. Pitre +* Moved SS.VarSect code down to fix a problem where code to call driver +* expected PD.Exten to be allocated when it wasn't, and that caused +* a write to PE.Prior to go into the system globals area (address $0016). nam RBF ttl Random Block File Manager @@ -97,7 +102,7 @@ use defsfile endc -rev set $02 +rev set $03 ty set FlMgr IFNE H6309 lg set Obj6309 @@ -1518,7 +1523,30 @@ * Entry: U=caller's stack reg. ptr * Y=Path dsc. ptr FindFile + ldd #$0100 get size of sector +* Note, following line is stb PD.SMF,y in v30! + IFGT Level-1 + stb PD.FST,y clear state flags?? + ENDC + os9 F$SRqMem request a 256 byte sector buffer + bcs Sst7AB couldn't get memory, return with error + stu PD.BUF,y save ptr to sector buffer + IFGT Level-1 + leau ,y point U to path descriptor + ldx <D.PthDBT get ptr to path descriptor block tables + os9 F$All64 allocate path descriptor + exg y,u exchange pointers + bcs Sst7AB couldn't get path descriptor, return error + stu PD.Exten,y save pointer to path extension + clr PE.SigID,u clear send signal proc. ID + sty PE.PDptr,u save back pointer to path descriptor + stu PE.Wait,u init waiting extension to myself + ENDC + + **** ADDED 06/19/2004 **** +**** MOVED 12/26/2009 due to issue with PD.Exten not being allocated and +**** causing a write into system direct page memory * Call to SS.VarSect in Driver: * * This code calls the driver's SS.VarSect GetStat, which will @@ -1537,26 +1565,8 @@ bcc ok@ branch if no error on GetStat cmpb #E$UnkSvc Unknown Service call error? bne Sst782 if not, return with error +ok@ **** -ok@ ldd #$0100 get size of sector -* Note, following line is stb PD.SMF,y in v30! - IFGT Level-1 - stb PD.FST,y clear state flags?? - ENDC - os9 F$SRqMem request a 256 byte sector buffer - bcs Sst7AB couldn't get memory, return with error - stu PD.BUF,y save ptr to sector buffer - IFGT Level-1 - leau ,y point U to path descriptor - ldx <D.PthDBT get ptr to path descriptor block tables - os9 F$All64 allocate path descriptor - exg y,u exchange pointers - bcs Sst7AB couldn't get path descriptor, return error - stu PD.Exten,y save pointer to path extension - clr PE.SigID,u clear send signal proc. ID - sty PE.PDptr,u save back pointer to path descriptor - stu PE.Wait,u init waiting extension to myself - ENDC ldx PD.RGS,y get register stack pointer ldx R$X,x get pointer to pathname pshs u,y,x