1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-05-05 23:45:08 +00:00

Commit refinements to 220 assemblers and disassembler.

1. Correct BAC-Disassembler address location assignment for CNST
pseudos for operands having tags > 1.
2. Regenerate disassembly listings with corrected disassembler for
paper-tape Diagnostics TR1202-Memory-Test.lst and
TR1203-Operations-Test.lst.
3. Reinstate BAC-Assembler second operand (field 44) for CAD, CAA, CSU,
CSA, ADD, ADA, SUB, SUA; make a few cosmetic changes.
4. Cosmetic changes to GEN-Assembler.
This commit is contained in:
Paul Kimpel
2020-08-21 06:44:22 -07:00
parent 0c57cfb6dd
commit d6377935e3
6 changed files with 530 additions and 506 deletions

View File

@@ -44,6 +44,8 @@
*
* - Punched cards in a self-loading band-6 format (default).
*
* - Punched paper tape in self-loading format.
*
* - Punched cards in BALGOL Machine Language format. This is also a
* band-6 format, but requires a separate loader program. See Appendix
* F in the BAC-220 reference manual under the heading "PREPARATION OF
@@ -396,14 +398,14 @@ window.addEventListener("load", function() {
"PWI": [ 7, 1, -1, 4, -1],
"KAD": [ 8, 1, 0, 3, 0],
"SPO": [ 9, 1, -1, 8, -1, 15, 0],
"CAD": [ 10, 1, -1],
"CAA": [ 110, 1, -1],
"CSU": [ 11, 1, -1],
"CSA": [ 111, 1, -1],
"ADD": [ 12, 1, -1],
"ADA": [ 112, 1, -1],
"SUB": [ 13, 1, -1],
"SUA": [ 113, 1, -1],
"CAD": [ 10, 1, -1, 3, 0],
"CAA": [ 110, 1, -1, 3, 0],
"CSU": [ 11, 1, -1, 3, 0],
"CSA": [ 111, 1, -1, 3, 0],
"ADD": [ 12, 1, -1, 3, 0],
"ADA": [ 112, 1, -1, 3, 0],
"SUB": [ 13, 1, -1, 3, 0],
"SUA": [ 113, 1, -1, 3, 0],
"MUL": [ 14, 1, -1, 3, 0],
"DIV": [ 15, 1, -1, 3, 0],
"RND": [ 16, 1, 0, 3, 0],
@@ -728,7 +730,7 @@ window.addEventListener("load", function() {
var e = document.createTextNode(text + "\n");
panel.appendChild(e);
panel.scrollTop += 30
panel.scrollTop += 30;
}
/**************************************/
@@ -1296,7 +1298,7 @@ window.addEventListener("load", function() {
word = opDesc[0]*p10[4];
}
for (ox=1; ox<opDesc.length; ox+=2) {
for (ox=1; ox<opTop; ox+=2) {
if (vx < vTop) {
f = values[vx];
} else if (opDesc[ox+1] < 0) {
@@ -1374,7 +1376,7 @@ window.addEventListener("load", function() {
word = putField(word, f, 33);
break;
case 19: // resolved address only in (04)
word = putField(word, f, 4);
word = putField(word, f, 4);
break;
default:
printError("INVALID OPDESC INDEX: " + opDesc[ox]);