diff --git a/bin/FSHa.8xp b/bin/FSHa.8xp index ca11445..51c5aa1 100644 Binary files a/bin/FSHa.8xp and b/bin/FSHa.8xp differ diff --git a/bin/FSHa.lst b/bin/FSHa.lst index b74cf30..3a9c88f 100644 --- a/bin/FSHa.lst +++ b/bin/FSHa.lst @@ -2253,7 +2253,7 @@ Listing for file "/home/pi/Documents/asm/fsh-shell/includes/lib/prgm/prgm.inc" Listing for file "/home/pi/Documents/asm/fsh-shell/includes/lib/prgm/Prgm.asm" 1 D1:B534 - - - - #define prgmloadersize prgmloaderend - prgmloader 2 D1:B534 - - - - #define prgmunloadersize prgmunloaderend - prgmunloader - 3 D1:B534 - - - - #define prgm_to_usermem_size prgm_to_usermem - prgm_to_usermem_end + 3 D1:B534 - - - - #define prgm_to_usermem_size prgm_to_usermem_end - prgm_to_usermem 4 D1:B534 - - - - prgmloaderloc equ SafeSScreen 5 D1:B534 - - - - prgmunloaderloc equ SafeSScreen + prgmloadersize 6 D1:B534 - - - - prgm_to_usermem_loc equ SafeSScreen + prgmloadersize + prgmunloadersize @@ -2270,17 +2270,17 @@ Listing for file "/home/pi/Documents/asm/fsh-shell/includes/lib/prgm/Prgm.asm" 17 D1:B548 C3 D5 EE D0 jp prgmloaderloc 18 D1:B54C - - - - 19 D1:B54C - - - - prgminstallload: - 20 D1:B54C 21 77 B5 D1 ld hl, prgmloader + 20 D1:B54C 21 77 B5 D1 ld hl, prgmmov_start 21 D1:B550 11 D5 EE D0 ld de, prgmloaderloc 22 D1:B554 01 11 00 00 ld bc, prgmloadersize 23 D1:B558 ED B0 - - ldir - 24 D1:B55A 21 88 B5 D1 ld hl, prgmunloader + 24 D1:B55A 21 88 B5 D1 ld hl, prgmmov_start + prgmloadersize 25 D1:B55E 11 34 B5 D1 ld de, prgmunloaderloc 26 D1:B562 01 18 00 00 ld bc, prgmunloadersize 27 D1:B566 ED B0 - - ldir - 28 D1:B568 21 A0 B5 D1 ld hl, prgm_to_usermem + 28 D1:B568 21 A0 B5 D1 ld hl, prgmmov_start + prgmloadersize + prgmunloadersize 29 D1:B56C 11 34 B5 D1 ld de, prgm_to_usermem_loc - 30 D1:B570 01 BC FF FF ld bc, prgm_to_usermem_size + 30 D1:B570 01 44 00 00 ld bc, prgm_to_usermem_size 31 D1:B574 ED B0 - - ldir 32 D1:B576 C9 - - - ret 33 D1:B577 - - - - @@ -2288,67 +2288,67 @@ Listing for file "/home/pi/Documents/asm/fsh-shell/includes/lib/prgm/Prgm.asm" 35 D1:B577 - - - - 36 D1:B577 - - - - prgmmov_start: 37 D1:B577 - - - - - 38 D1:B577 - - - - ;.org SafeSScreen - 39 D1:B577 - - - - - 40 D1:B577 - - - - prgmmov: - 41 D1:B577 - - - - - 42 D1:B577 - - - - prgmloader: - 43 D1:B577 CD 34 B5 D1 call prgm_to_usermem_loc - 44 D1:B57B 21 34 B5 D1 ld hl, prgmunloaderloc - 45 D1:B57F E5 - - - push hl - 46 D1:B580 FD CB 0D D6 set appAutoScroll,(iy + appflags) - 47 D1:B584 C3 81 A8 D1 jp userMem - 48 D1:B588 - - - - prgmloaderend: - 49 D1:B588 - - - - - 50 D1:B588 - - - - prgmunloader: - 51 D1:B588 21 04 A9 D1 ld hl, Fsh - 52 D1:B58C 11 F8 05 D0 ld de, OP1 - 53 D1:B590 CD 6C AC D1 call strcpy - 54 D1:B594 CD 34 B5 D1 call prgm_to_usermem_loc - 55 D1:B598 CD 48 08 02 call _RunIndicOff - 56 D1:B59C C3 DF A8 D1 jp Fin - 57 D1:B5A0 - - - - prgmunloaderend: - 58 D1:B5A0 - - - - - 59 D1:B5A0 - - - - prgm_to_usermem: - 60 D1:B5A0 3E 09 - - ld a,$9 ; 'add hl,bc' - 61 D1:B5A2 32 E0 B5 D1 ld (prgm_to_usermem.smc),a - 62 D1:B5A6 CD 0C 05 02 call _ChkFindSym - 63 D1:B5AA CD 98 1F 02 call _ChkInRam - 64 D1:B5AE EB - - - ex de,hl - 65 D1:B5AF 28 0D - - jr z, prgm_to_usermem.in_ram - 66 D1:B5B1 AF - - - xor a,a - 67 D1:B5B2 32 E0 B5 D1 ld (prgm_to_usermem.smc),a - 68 D1:B5B6 11 09 00 00 ld de,9 - 69 D1:B5BA 19 - - - add hl,de - 70 D1:B5BB 5E - - - ld e,(hl) - 71 D1:B5BC 19 - - - add hl,de - 72 D1:B5BD 23 - - - inc hl - 73 D1:B5BE - - - - prgm_to_usermem.in_ram: ; hl -> size bytes - 74 D1:B5BE CD 9C 1D 02 call _LoadDEInd_s - 75 D1:B5C2 23 - - - inc hl - 76 D1:B5C3 23 - - - inc hl ; bypass tExtTok, tAsm84CECmp - 77 D1:B5C4 E5 - - - push hl - 78 D1:B5C5 D5 - - - push de - 79 D1:B5C6 EB - - - ex de,hl - 80 D1:B5C7 CD 2C 07 02 call _ErrNotEnoughMem ; check and see if we have enough memory - 81 D1:B5CB E1 - - - pop hl - 82 D1:B5CC 22 8C 11 D0 ld (asm_prgm_size),hl ; store the size of the program - 83 D1:B5D0 11 81 A8 D1 ld de,userMem - 84 D1:B5D4 D5 - - - push de - 85 D1:B5D5 CD 14 05 02 call _InsertMem; insert memory into usermem - 86 D1:B5D9 D1 - - - pop de - 87 D1:B5DA E1 - - - pop hl ; hl -> start of program - 88 D1:B5DB ED 4B 8C 11 + 38 D1:B577 - - - - .org SafeSScreen + 39 D0:EED5 - - - - + 40 D0:EED5 - - - - prgmmov: + 41 D0:EED5 - - - - + 42 D0:EED5 - - - - prgmloader: + 43 D0:EED5 CD FE EE D0 call prgm_to_usermem + 44 D0:EED9 21 E6 EE D0 ld hl, prgmunloader + 45 D0:EEDD E5 - - - push hl + 46 D0:EEDE FD CB 0D D6 set appAutoScroll,(iy + appflags) + 47 D0:EEE2 C3 81 A8 D1 jp userMem + 48 D0:EEE6 - - - - prgmloaderend: + 49 D0:EEE6 - - - - + 50 D0:EEE6 - - - - prgmunloader: + 51 D0:EEE6 21 04 A9 D1 ld hl, Fsh + 52 D0:EEEA 11 F8 05 D0 ld de, OP1 + 53 D0:EEEE CD 6C AC D1 call strcpy + 54 D0:EEF2 CD FE EE D0 call prgm_to_usermem + 55 D0:EEF6 CD 48 08 02 call _RunIndicOff + 56 D0:EEFA C3 DF A8 D1 jp Fin + 57 D0:EEFE - - - - prgmunloaderend: + 58 D0:EEFE - - - - + 59 D0:EEFE - - - - prgm_to_usermem: + 60 D0:EEFE 3E 09 - - ld a,$9 ; 'add hl,bc' + 61 D0:EF00 32 3E EF D0 ld (prgm_to_usermem.smc),a + 62 D0:EF04 CD 0C 05 02 call _ChkFindSym + 63 D0:EF08 CD 98 1F 02 call _ChkInRam + 64 D0:EF0C EB - - - ex de,hl + 65 D0:EF0D 28 0D - - jr z, prgm_to_usermem.in_ram + 66 D0:EF0F AF - - - xor a,a + 67 D0:EF10 32 3E EF D0 ld (prgm_to_usermem.smc),a + 68 D0:EF14 11 09 00 00 ld de,9 + 69 D0:EF18 19 - - - add hl,de + 70 D0:EF19 5E - - - ld e,(hl) + 71 D0:EF1A 19 - - - add hl,de + 72 D0:EF1B 23 - - - inc hl + 73 D0:EF1C - - - - prgm_to_usermem.in_ram: ; hl -> size bytes + 74 D0:EF1C CD 9C 1D 02 call _LoadDEInd_s + 75 D0:EF20 23 - - - inc hl + 76 D0:EF21 23 - - - inc hl ; bypass tExtTok, tAsm84CECmp + 77 D0:EF22 E5 - - - push hl + 78 D0:EF23 D5 - - - push de + 79 D0:EF24 EB - - - ex de,hl + 80 D0:EF25 CD 2C 07 02 call _ErrNotEnoughMem ; check and see if we have enough memory + 81 D0:EF29 E1 - - - pop hl + 82 D0:EF2A 22 8C 11 D0 ld (asm_prgm_size),hl ; store the size of the program + 83 D0:EF2E 11 81 A8 D1 ld de,userMem + 84 D0:EF32 D5 - - - push de + 85 D0:EF33 CD 14 05 02 call _InsertMem; insert memory into usermem + 86 D0:EF37 D1 - - - pop de + 87 D0:EF38 E1 - - - pop hl ; hl -> start of program + 88 D0:EF39 ED 4B 8C 11 D0 - - - ld bc,(asm_prgm_size) ; load size of current program - 89 D1:B5E0 - - - - prgm_to_usermem.smc equ $ - 90 D1:B5E0 09 - - - add hl,bc ; if not in ram smc it so it doesn't execute - 91 D1:B5E1 ED B0 - - ldir ; copy the program to userMem - 92 D1:B5E3 C9 - - - ret - 93 D1:B5E4 - - - - prgm_to_usermem_end: - 94 D1:B5E4 - - - - - 95 D1:B5E4 - - - - prgmmov_end: - 96 D1:B5E4 - - - - - 97 D1:B5E4 - - - - ;.org prgmmov_start+prgmmov_end-prgmmov + 89 D0:EF3E - - - - prgm_to_usermem.smc equ $ + 90 D0:EF3E 09 - - - add hl,bc ; if not in ram smc it so it doesn't execute + 91 D0:EF3F ED B0 - - ldir ; copy the program to userMem + 92 D0:EF41 C9 - - - ret + 93 D0:EF42 - - - - prgm_to_usermem_end: + 94 D0:EF42 - - - - + 95 D0:EF42 - - - - prgmmov_end: + 96 D0:EF42 - - - - + 97 D0:EF42 - - - - .org prgmmov_start+prgmmov_end-prgmmov Listing for file "/home/pi/Documents/asm/fsh-shell/includes/lib/prgm/prgm.inc" Listing for file "/home/pi/Documents/asm/fsh-shell/includes/lib/lib.inc" 4 D1:B5E4 - - - - #include "includes/lib/crypto/crypto.inc" diff --git a/includes/lib/prgm/Prgm.asm b/includes/lib/prgm/Prgm.asm index 935d9a2..390dce8 100644 --- a/includes/lib/prgm/Prgm.asm +++ b/includes/lib/prgm/Prgm.asm @@ -1,6 +1,6 @@ #define prgmloadersize prgmloaderend - prgmloader #define prgmunloadersize prgmunloaderend - prgmunloader -#define prgm_to_usermem_size prgm_to_usermem - prgm_to_usermem_end +#define prgm_to_usermem_size prgm_to_usermem_end - prgm_to_usermem prgmloaderloc equ SafeSScreen prgmunloaderloc equ SafeSScreen + prgmloadersize prgm_to_usermem_loc equ SafeSScreen + prgmloadersize + prgmunloadersize @@ -17,15 +17,15 @@ prgmasm: jp prgmloaderloc prgminstallload: - ld hl, prgmloader + ld hl, prgmmov_start ld de, prgmloaderloc ld bc, prgmloadersize ldir - ld hl, prgmunloader + ld hl, prgmmov_start + prgmloadersize ld de, prgmunloaderloc ld bc, prgmunloadersize ldir - ld hl, prgm_to_usermem + ld hl, prgmmov_start + prgmloadersize + prgmunloadersize ld de, prgm_to_usermem_loc ld bc, prgm_to_usermem_size ldir @@ -35,13 +35,13 @@ prgminstallload: prgmmov_start: - ;.org SafeSScreen + .org SafeSScreen prgmmov: prgmloader: - call prgm_to_usermem_loc - ld hl, prgmunloaderloc + call prgm_to_usermem + ld hl, prgmunloader push hl set appAutoScroll,(iy + appflags) jp userMem @@ -51,7 +51,7 @@ prgmunloader: ld hl, Fsh ld de, OP1 call strcpy - call prgm_to_usermem_loc + call prgm_to_usermem call _RunIndicOff jp Fin prgmunloaderend: @@ -94,4 +94,4 @@ prgm_to_usermem_end: prgmmov_end: - ;.org prgmmov_start+prgmmov_end-prgmmov +.org prgmmov_start+prgmmov_end-prgmmov