-
Notifications
You must be signed in to change notification settings - Fork 1
/
Version_History.txt
223 lines (154 loc) · 6.97 KB
/
Version_History.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
6809-strlen Version_history.txt
(c) 2017, 2018, 2019 by Richard Cavell
Version 1.7 (30 March 2019)
* New documents:
* strlen.s Listing
* no_error_strlen.s Listing
* Level_Eight.txt
We now have an analysis of the instruction timings within the two
main routines. We also have even more exercises.
* Changes to the test suite
* The number of tests has increased to 10
* The order of the tests has now changed
* Wait for keypress after loading the machine language routines
* The code now uses arrays, and line number magnitudes have been greatly
reduced, for hopefully what is more professional code
* Removal of dead code
* Added some subroutines to allow for abstraction of CLS and PRINT
blank line
* It is now possible to run the test suite using MAME with the debugger,
from the Makefile in the "Test suite" folder
* Numerous additions to source code comments
...and numerous other changes
(Note that asm6809 is our only supported assembler)
Version 1.6 (6 November 2018)
* Many more exercises have been added to the Documents folder
* The exercises are now called "Level_One.txt" to "Level_Seven.txt"
* Exercises have been shuffled and are roughly grouped by difficulty
and theme
* All assembly source files now export their symbols
* The makefiles now have many more targets, and can produce listings
and symbols
* The test suite can now handle a no-end error without halting
* The test suite program is now significantly smaller (simply by removing
spaces, using multiple statements on one line, etc)
Version 1.5 (19 October 2018)
* New documents:
* Assembly_Questions.txt
* BASIC_Program.txt
* BASIC_Questions.txt
* Book_Recommendations.txt
* Intermediate_Exercises.txt
There is now much more material, and material for a wider range of
skill levels.
* Simulation of error conditions is now performed within helper1.s
* The test suite can handle a no-end error condition without halting
execution.
* Numerous other minor changes to source code and documentation
Version 1.4 (7 January 2018)
* This is the first version of 6809-strlen that incorporates
all of the original ideas for the project.
The original specification and mission are now fulfilled.
Many of my original ideas have been presented as exercises for the
student.
* Addition of two new files:
* Beginner_exercises.txt
* Advanced_exercises.txt
Version 1.3 (23 November 2017)
* The test suite has been improved
* Translation into German, French and Spanish
* Now requires 32K minimum RAM
* Now always measures the length of the string
manually using BASIC
* Can simulate errors to assist with testing
* Less code duplication
* Automation of testing using XRoar and MAME:
* make xroar
* make mame
* Tiny cosmetic changes to the non-test suite portions of the
project
* New file:
* Symbols.inc
This allows for calculation of the memory map by the assembler
and ensuring that the object code fits within the allocated space
* Removal of file:
* Memory_map.txt
Version 1.2 (1 November 2017)
* The routine now comes in two versions:
* strlen.s
* no_error_strlen.s
* strlen.s now identifies the "no end" error, which occurs when the
string is read up to memory location $FFFF without finding a
terminating zero
* no_error_strlen.s is for when you are sure that this error
will not be encountered
* Both versions are, and will be, actively maintained
* The test suite now tests both versions
* The object code assembles with asm6809 into:
* strlen.bin - 15 bytes
* no_error_strlen.bin - 21 bytes
* The code has been improved
* Slight savings in speed have been achieved
* The CODE pseudo-op is used at the start of the code
* All symbols that might be useful are now exported
* The object code length is calculated and exported
* We now use 4-space indents
* The test suite has been improved
* We now use the decb utility from the Toolshed
(https://sourceforge.net/projects/toolshed/) to automatically
build the test suite disk, making things much easier
* The test suite now builds its own versions of strlen.bin and
no_error_strlen.bin, as DECB executable files rather than raw binaries
(DECB means Disk Extended Color BASIC)
* You can now build the test suite and run XRoar or MAME from a single
make command
* helper1.bin now takes a parameter, to indicate which routine you
want to use
* And more!
* Removal of certain files in the "Test suite" folder:
* Machines.txt
* Technical_info.txt
Their contents are now incorporated into the test suite
Readme.txt
Version 1.1 (24 August 2017)
* Slight improvements to strlen.s
* Add label _strlen_entry, which identifies the entry point
* Slight modification to the code, for maximum portability
to other assemblers
* PULS X, PC -> PULS X,PC (removal of space)
* Removal of the ORG command, for maximum portability to other
projects
* To assemble a standalone routine or to incorporate it into the
test suite, you should now use main.s, which includes the ORG
command and what remains of strlen.s
* And more!
* Improved code comments and Readme.txt
The following things are now explicitly documented:
* What a C-style string is
* The routine is position-independent and re-entrant
* Interrupts are allowed to occur during execution
* 2 extra bytes of the S stack are being used
* Creation of new files
* Machines.txt (in the Test Suite folder)
* Version_history.txt (in the main folder)
* Many significant improvements to the test suite
* TEST.BAS now calls the machine language routines using USRx()
instead of EXEC, so parameters are handled more neatly
* helper1.s and helper2.s now use the DECB (Disk Extended Color BASIC)
calling conventions
* The memory map has been greatly simplified
* helper2.s now constructs the test string 2 bytes at a time, so
it is faster. It will still correctly handle odd lengths
* Both assembly files have been modified for maximum portability
to other assemblers
* Characters are now presented as 'A rather than 'A'
* Two chars are now presented as 'A * 256 + 'B rather than "AB"
* All magic numbers are now presented as symbols
* And more!
* We are now supporting only two platforms for the test suite
* Machines.txt identifies those targets. Both are emulated machines:
* xroar coco2b
* mame coco2b
* The ability of TEST.BAS to work from tape has been removed
Version 1.0 (28 July 2017)
* Initial stable release of 6809-strlen