OSDN Git Service

Through NOOP. Need to check the shims and move/remove them.
[fig-forth-68000/fig-forth-68000.git] / notes.text
1 ***
2 *
3 * CONVENTIONS USED IN THIS PROGRAM ARE AS FOLLOWS :
4 *
5 * IP (A5) points to the next instruction ( post-increment mode )
6 * RP (A7/hardware SP) points to last address stored on return stack
7 * PSP (A6) points to last item (byte) pushed on data/parameter stack
8 *
9 *       when D0 and D1 hold one 32 bit FORTH data word (if ever),
10 *       D0 contains the high word, D1, the low word.
11 ***
12
13
14 *       Registers used by the FORTH virtual machine:
15
16
17 *W (A3) the instruction register points to 68K code
18 *IP (A5) the instruction pointer points to pointer to 68K code
19 *RP (A7) the return stack pointer
20 *PSP (A6) the parameter/data stack pointer
21 *UP (A4) the pointer to base of current user's 'USER' table
22
23 ******************************
24 * things to check:
25
26 * The loops
27
28 * PFNDBR has extra TST?
29 * PFNDLN seems to have an extraneous auto-inc?
30 * PQTER comment "should change to no stack effect" -> No stack effect
31
32 * U/ needs comments about the columnar division when the divisor fits in a single column.
33
34 * NOT comments not correct.
35 * R, I, +, @, !, :, ;, 0, 1, 2, 3, -, =, <, >, [, ], NULL don't have a comment-ifier on the name.
36
37 * Initializations need to be examined more carefully. 
38 * Why do I use PCR for stacks, but absolute for direct page?
39
40 * In DOUSER, why do I cache the user variable address in X?
41 * I think it was for BIF-6809, and not relevant in fig.
42
43 * MIN and MAX are identical! I think MAX is the correct version. MIN should be BGE.
44 * This is a serious bug, and was possibly the reason memory emulation of disk didn't work.
45
46 * TRAVERSE comments on 6809 code need to mention that BSR just would not work.
47 * The experimental commented-out code is just wrong.
48 * Similar problems with LATEST.
49 * That shouldn't be PCR in LATEST, it should be XCURR-UORIG,X .
50
51 * Need to go back and check all allocating words for integer alignment issues.
52
53 * No description for ERROR for some reason.
54
55 * Need to figure out whether TYPE or PDOTQ will handle odd lenght strings.
56
57 * PDOTQ and DOTQ have alignment adjuctment stuff in the ALLOTment.
58
59 * PAD needs comment on buffer width
60
61 * ERROR gets alignment adjustment for the message string.
62 * Also needs comment delimiter for BEL.
63
64 * IDDOT needs to use the WIDTH user variable instead of hard-coded widths.
65
66 * Probably should comment WORD that it does not ALLOCate.
67
68 * CREATE gets alignment adjust for the message string.
69 * Also needs comment delimiter for BEL.
70 * Also has alignment stuff in the ALLOTment.
71
72 * Why did I move RFORTH (and effective RTASK)?
73
74 * More missing comment-ifiers in WENT.
75 * And in ' (immediate), # (DIG2), ., ?
76
77 * Should the RAM label have the buffer base address before RFORTH? Why?
78
79 * BUFFER has a place where I use UPDBIT instead of ~UPDBIT. 
80 * That might be the bug. Wait. I did invert it.
81 * I need to study things out from USE and PREV, particularly KILBUF.
82 * I don't think my use of the constants agree from one place to the next.
83
84 * In NUMBER, $FFFF probably should be -1, unless the assembler doesn't handle that right.
85
86 * RBEG, FORTH, and TASK should be moved back?