Commit Diff


commit - c756c2590a05ea760d8c0ee270fb4d3f111a23e6
commit + e01ddeac0a752a82fba5d7ff7c3b8806291ba22d
blob - ba9a340a1ee8b23f27e0205a0374261e0fbf467e
blob + 65e49d6b9cfc2cf28b98b4810ad613bbd5228aab
Binary files BASASM,PRG and BASASM,PRG differ
blob - b5f79980d87e933e152e10768138832a99e69821
blob + fa1faca8e3ff37ce869f28fe0df7d3407ad9f173
--- BASASM.lst
+++ BASASM.lst
@@ -1,5 +1,5 @@
 0 REM BASASM - A SIMPLE ASSEMBLER MADE
-1 REM V.23     IN BASIC.  PESCO 2026
+1 REM V.24     IN BASIC.  PESCO 2026
 2 REM  10 VARIABLES    700 *SAVE TO PRG
 3 REM 100 LOAD OPCODES 720 *PRINT SEQ F
 4 REM 130 SUBROUTINES  740 *MEMSTAT
@@ -10,8 +10,10 @@
 9 REM 900 OPCODE TBL  1000 ASSEMBLY PGM
 10 O = 49152    :REM STARTING POSITION
 11 P = O        :REM CURRENT POSITION
-13 UN = 0       :REM UNDEF SYMBOL COUNT
-14 XX = 666666  :REM "IMPOSSIBLE" VALUE
+12 PP = P       :REM MIN. POSITION
+13 PQ = P       :REM MAX. POSITION
+15 UN = 0       :REM UNDEF SYMBOL COUNT
+16 XX = 666666  :REM "IMPOSSIBLE" VALUE
 20 MN% = 150    :REM MNEMONIC MAX
 21 DIM MN$(MN%) :REM INST MNEMONICS
 22 DIM OP%(MN%) :REM INST OPCODES
@@ -136,16 +138,17 @@
 297 RETURN
 298 REM
 299 REM - AFTER END OF INPUT -
-300 PRINT "PATCH FWD REFS..."
-305 GOSUB 370  :REM PATCH FWD REFS
+300 IF P > PQ THEN PQ = P
+305 PRINT "PATCH FWD REFS..."
+306 GOSUB 370  :REM PATCH FWD REFS
 310 IF UN = 0 THEN 340
 320 PRINT "UNDEFINED SYMBOLS:"
 325 FOR I = 0 TO SY%
 330 IF SY(I) = XX THEN PRINT SY$(I),;
 335 NEXT: PRINT
 340 PRINT "ASSEMBLY FINISHED."
-341 PRINT "O ="; O; TAB(12); "P ="; P;
-342 PRINT TAB(24); "P-O ="; P-O
+341 PRINT "P =";PP; TAB(12); "Q =";PQ;
+342 PRINT TAB(24); "Q-P ="; PQ-PP
 350 END
 368 REM
 369 REM SUB: PATCH FWD SYMBOL REFS
@@ -192,8 +195,10 @@
 519 REM .=   - CHANGE CURRENT POSITION
 520 READ A$: GOSUB 150
 521 PRINT MID$(STR$(A), 2)
-522 P = A
-523 GOTO 499
+524 IF P > PQ THEN PQ = P
+525 P = A
+526 IF P < PP THEN PP = P
+527 GOTO 499
 528 REM
 529 REM .DB  - OUTPUT RAW DATA BYTE
 530 M$ = "": L% = 1: READ L$