Create README.md

This commit is contained in:
James McClanahan 2021-05-28 08:53:00 -04:00 committed by GitHub
parent 5329025be0
commit 065170b09a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 34 additions and 0 deletions

34
A1B-move/README.md Normal file
View File

@ -0,0 +1,34 @@
# Python Tools for A1B Relocation
This is a pair of simple (and far from optimized) Python tools that help you quickly and consistently move Apple 1 Integer BASIC (A1B) from it's normal location at $E000.
The source should be named `a1basic.in` and you should first run `./a1bmoveg.py`. This will generate a file named `a1basic.mod` that lists the line numbers of all references to $Exxx.
The .mod file can be editted to comment out the lines you do not want to change. This can be a bit of trial and error (but not too much if you study the code). The example in this repository has the appropriate lines commented out.
Next you should edit `./a1bmovem.py` so that Line 36 replaces all occurances of '$E' with the right value. I suggest using multiple of $2000 for relocation. (More about that in a minute.) You can then run this code and it will result in a file named `a1basic.out` that has the addressing modified.
There is one final step...
There is a reference in line 761 where a `LDA #$76` is used followed by an `ROL` command (which has the effect of multiplying it by two resulting in A having a value of $EC). If you have stuck with a multiple of $2000, you just need to take the first hex digit, divide it by two, and replace the first hex digit in the constant.
At this point, you should have a source file that can be assembled and work from the selected location in memory.
I know you are safe moving to multiples of $2000. (I have working relations to $8000 and $A000.) Because of some of the tricks used there would definatly be problems not relocating to a page boundary. Can you select any page boundary? I'm not sure and would have to do some testing before I could say.
## The fine print...
Copyright 2021 by Jim McClanahan W4JBM
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.