mmbutler
04-26-06, 11:19 PM
I am trying to transfer working code into flash. Appended is a screen buffer showing my reduced test case. I'm thinking this problem might have to do with the BUILDS ... DOES in my !VARIABLE and !2VARIABLE words .
Short desciption:
I do a COLD, use NMI-based code to find a sector of unused flash, along with "Auto-ROM words" provided by NMI. Then I try to load my program using a terminal program. The program load hangs. I reset the computer, and dumped out the relevant contents of flash.
After reset, I can continue to load definitions.
Of course, I could replace every occurrence of nnn !VARIABLE name with the sequence
VARIABLE name nnn name ! , and that's what I'll try as a field expedient if I must.
Please help. Thank you very much.
OK
OK
OK
COLD
Max-FORTH V5.1G
( FIND-EMPTY-FLASH ) OK
( FROM NMI DOCUMENTATION ) OK
OK
COLD
Max-FORTH V5.1G
HEX OK
OK
: FIND-EMPTY-FLASH ( -- addr)
F800 ( default)
F800 8000 ( limits)
DO
FF I 10 OVER + SWAP
DO I C@ AND LOOP
FF = IF DROP I LEAVE THEN 100
+LOOP
DUP F800 =
IF CR ." **Flash is full." CR
ELSE DUP U.
THEN ; OK
OK
FIND-EMPTY-FLASH FDP ! 8700 OK
OK
FORGET FIND-EMPTY-FLASH OK
OK
( ==== ROM it all with auto-ROM words ====) OK
: ; [COMPILE] ; FLWORD ; IMMEDIATE FLWORD
; NOT UNIQUE OK
: CONSTANT CONSTANT FLWORD ;
CONSTANT NOT UNIQUE OK
: CREATE HERE CONSTANT ;
CREATE NOT UNIQUE OK
: VARIABLE CREATE 2 ALLOT ;
VARIABLE NOT UNIQUE OK
OK
OK
OK
: !VARIABLE ( n -- ) <BUILDS , DOES> ; OK
: !2VARIABLE ( d -- ) <BUILDS , , DOES> ; OK
OK
CREATE PURPOSE OK
OK
DECIMAL OK
OK
10000 CONSTANT ms30 ( - ~30 ms. OK
( - 300 ought to be ~1 ms. OK
OK
: BUSY @ 0 DO LOOP ; OK
OK
ms30 !VARIABLE PDELAY ( - Pushbutton OK
ms30 !VARIABLE MDELAY ( - MODE OK
ms30 !VARIABLE TDELAY ( - Thumbwheel OK
OK
( *** flash PROGRAMMING HANGS RIGHT ABOUT HERE. WHY? ) OK
OK
: PD PDELAY BUSY ; OK
: MD MDELAY BUSY ; OK
: TD TDELAY BUSY ; OK
OK
: DO100 100 BUSY ;
( **** Hangs here; hit reset button. **** )
Max-FORTH V5.1G
OK
OK
OK
OK
HEX OK
FDP @ U. 8802 OK
8700 200 DUMP
0 1 2 3 4 5 6 7 8 9 A B C D E F
8700: C1 BB 61 5C 87 08 C2 C3 4C 8E 55 9A 53 44 88 43 ..a\....L.U.SD.C
8710: 4F 4E 53 54 41 4E D4 87 00 87 1D C2 C3 4C 6E 55 ONSTAN.......LnU
8720: 9A 53 44 20 86 43 52 45 41 54 C5 87 0E 87 31 C2 .SD .CREAT....1.
8730: C3 42 9A 87 1B 53 44 20 88 56 41 52 49 41 42 4C .B...SD .VARIABL
8740: C5 87 24 87 47 C2 C3 87 2F 53 CC 00 02 42 A2 53 ..$.G.../S...B.S
8750: 44 20 89 21 56 41 52 49 41 42 4C C5 87 38 87 62 D .!VARIABL..8.b
8760: C2 C3 4C 40 42 B6 4C 54 53 44 8A 21 32 56 41 52 ..L@B.LTSD.!2VAR
8770: 49 41 42 4C C5 87 52 87 7B C2 C3 4C 40 42 B6 42 IABL..R.{..L@B.B
8780: B6 4C 54 53 44 20 87 50 55 52 50 4F 53 C5 87 6A .LTSD .PURPOS..j
8790: 87 94 C2 EA 11 C2 84 6D 73 33 B0 87 86 87 A1 C2 .......ms3......
87A0: EA 27 10 EA 84 42 55 53 D9 87 96 87 AF C2 C3 53 .'...BUS.......S
87B0: B8 53 CC 00 00 53 CE 53 D2 FF FE 53 44 20 82 50 .S...S.S...SD .P
87C0: C4 11 E4 87 C7 C2 C3 11 CD 87 AD 53 44 20 82 4D ...........SD .M
87D0: C4 87 BE 87 D7 C2 C3 11 DE 87 AD 53 44 20 82 54 ...........SD .T
87E0: C4 87 CE 87 E7 C2 C3 11 EF 87 AD 53 44 20 85 44 ...........SD .D
87F0: 4F 31 30 B0 87 DE 87 FA C2 C3 53 CC 00 64 87 AD O10.......S..d..
8800: 53 44 FF FF FF FF FF FF FF FF FF FF FF FF FF FF SD..............
8810: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8830: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8840: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8850: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8860: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8870: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8880: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8890: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ OK
Short desciption:
I do a COLD, use NMI-based code to find a sector of unused flash, along with "Auto-ROM words" provided by NMI. Then I try to load my program using a terminal program. The program load hangs. I reset the computer, and dumped out the relevant contents of flash.
After reset, I can continue to load definitions.
Of course, I could replace every occurrence of nnn !VARIABLE name with the sequence
VARIABLE name nnn name ! , and that's what I'll try as a field expedient if I must.
Please help. Thank you very much.
OK
OK
OK
COLD
Max-FORTH V5.1G
( FIND-EMPTY-FLASH ) OK
( FROM NMI DOCUMENTATION ) OK
OK
COLD
Max-FORTH V5.1G
HEX OK
OK
: FIND-EMPTY-FLASH ( -- addr)
F800 ( default)
F800 8000 ( limits)
DO
FF I 10 OVER + SWAP
DO I C@ AND LOOP
FF = IF DROP I LEAVE THEN 100
+LOOP
DUP F800 =
IF CR ." **Flash is full." CR
ELSE DUP U.
THEN ; OK
OK
FIND-EMPTY-FLASH FDP ! 8700 OK
OK
FORGET FIND-EMPTY-FLASH OK
OK
( ==== ROM it all with auto-ROM words ====) OK
: ; [COMPILE] ; FLWORD ; IMMEDIATE FLWORD
; NOT UNIQUE OK
: CONSTANT CONSTANT FLWORD ;
CONSTANT NOT UNIQUE OK
: CREATE HERE CONSTANT ;
CREATE NOT UNIQUE OK
: VARIABLE CREATE 2 ALLOT ;
VARIABLE NOT UNIQUE OK
OK
OK
OK
: !VARIABLE ( n -- ) <BUILDS , DOES> ; OK
: !2VARIABLE ( d -- ) <BUILDS , , DOES> ; OK
OK
CREATE PURPOSE OK
OK
DECIMAL OK
OK
10000 CONSTANT ms30 ( - ~30 ms. OK
( - 300 ought to be ~1 ms. OK
OK
: BUSY @ 0 DO LOOP ; OK
OK
ms30 !VARIABLE PDELAY ( - Pushbutton OK
ms30 !VARIABLE MDELAY ( - MODE OK
ms30 !VARIABLE TDELAY ( - Thumbwheel OK
OK
( *** flash PROGRAMMING HANGS RIGHT ABOUT HERE. WHY? ) OK
OK
: PD PDELAY BUSY ; OK
: MD MDELAY BUSY ; OK
: TD TDELAY BUSY ; OK
OK
: DO100 100 BUSY ;
( **** Hangs here; hit reset button. **** )
Max-FORTH V5.1G
OK
OK
OK
OK
HEX OK
FDP @ U. 8802 OK
8700 200 DUMP
0 1 2 3 4 5 6 7 8 9 A B C D E F
8700: C1 BB 61 5C 87 08 C2 C3 4C 8E 55 9A 53 44 88 43 ..a\....L.U.SD.C
8710: 4F 4E 53 54 41 4E D4 87 00 87 1D C2 C3 4C 6E 55 ONSTAN.......LnU
8720: 9A 53 44 20 86 43 52 45 41 54 C5 87 0E 87 31 C2 .SD .CREAT....1.
8730: C3 42 9A 87 1B 53 44 20 88 56 41 52 49 41 42 4C .B...SD .VARIABL
8740: C5 87 24 87 47 C2 C3 87 2F 53 CC 00 02 42 A2 53 ..$.G.../S...B.S
8750: 44 20 89 21 56 41 52 49 41 42 4C C5 87 38 87 62 D .!VARIABL..8.b
8760: C2 C3 4C 40 42 B6 4C 54 53 44 8A 21 32 56 41 52 ..L@B.LTSD.!2VAR
8770: 49 41 42 4C C5 87 52 87 7B C2 C3 4C 40 42 B6 42 IABL..R.{..L@B.B
8780: B6 4C 54 53 44 20 87 50 55 52 50 4F 53 C5 87 6A .LTSD .PURPOS..j
8790: 87 94 C2 EA 11 C2 84 6D 73 33 B0 87 86 87 A1 C2 .......ms3......
87A0: EA 27 10 EA 84 42 55 53 D9 87 96 87 AF C2 C3 53 .'...BUS.......S
87B0: B8 53 CC 00 00 53 CE 53 D2 FF FE 53 44 20 82 50 .S...S.S...SD .P
87C0: C4 11 E4 87 C7 C2 C3 11 CD 87 AD 53 44 20 82 4D ...........SD .M
87D0: C4 87 BE 87 D7 C2 C3 11 DE 87 AD 53 44 20 82 54 ...........SD .T
87E0: C4 87 CE 87 E7 C2 C3 11 EF 87 AD 53 44 20 85 44 ...........SD .D
87F0: 4F 31 30 B0 87 DE 87 FA C2 C3 53 CC 00 64 87 AD O10.......S..d..
8800: 53 44 FF FF FF FF FF FF FF FF FF FF FF FF FF FF SD..............
8810: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8820: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8830: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8840: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8850: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8860: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8870: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8880: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
8890: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88A0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88B0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88C0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88D0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88E0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
88F0: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................ OK