commit e01ddeac0a752a82fba5d7ff7c3b8806291ba22d from: Sven M. Hallberg date: Sun May 31 18:15:26 2026 UTC BASASM.24 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$