mirror of
https://github.com/w4jbm/Apple-1-Integer-BASIC.git
synced 2024-11-22 07:30:55 +00:00
Create README.md
This commit is contained in:
parent
5329025be0
commit
065170b09a
34
A1B-move/README.md
Normal file
34
A1B-move/README.md
Normal 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.
|
Loading…
Reference in New Issue
Block a user