commit 9de116a0703a197030432b3c7ab467fded3d25e2 from: Sven M. Hallberg date: Sun May 31 18:15:35 2026 UTC BASASM.27 commit - 65a8a8f00044d5d4e6be1ac5651cd656bbe191c4 commit + 9de116a0703a197030432b3c7ab467fded3d25e2 blob - 10316f699de428a19bdb3ee949e9a6b05ddab403 blob + 67ae176f982e43f2382dad0eda1b6fb11345479b Binary files BASASM,PRG and BASASM,PRG differ blob - f40b54e25065a4d9e2771c8bf31510666039f91f blob + 284cdd22f3c3f8306e3ebc49b41c49d3efeb7e4d --- BASASM.lst +++ BASASM.lst @@ -1,12 +1,12 @@ 0 REM BASASM - A SIMPLE ASSEMBLER MADE -1 REM V.26 IN BASIC. PESCO 2026 -2 REM 10 VARIABLES 700 *SAVE TO PRG +1 REM V.27 IN BASIC. PESCO 2026 +2 REM 10 VARIABLES 700 *SAVE ML PRG 3 REM 100 LOAD OPCODES 720 *PRINT SEQ F 4 REM 130 SUBROUTINES 740 *MEMSTAT -5 REM 200 MAIN LOOP 750 *READ IO ERR -6 REM 300 FORWARD REFS 770 *SCRATCH F.. -7 REM 400 .DIRECTIVES 777 *SCR/SAV/RUN -8 REM 800 *HEXDUMP MEM +5 REM 200 MAIN LOOP 750 *DISK CMD +6 REM 300 FORWARD REFS 760 *SCRATCH F.. +7 REM 400 .DIRECTIVES 770 *SCR/SAVE +8 REM 800 *HEXDUMP 777 *SCR/SAV/RUN 9 REM 900 OPCODE TBL 1000 ASSEMBLY PGM 10 O = 49152 :REM STARTING POSITION 11 P = O :REM CURRENT POSITION @@ -20,11 +20,11 @@ 23 DIM LN%(MN%) :REM OPERAND LENGTHS 24 DIM MI%(26) :REM ALPH. MNEM. INDEX 25 SY% = 0 :REM SYMBOL COUNT -26 SM% = 511 :REM SYMBOL MAX +26 SM% = 255 :REM SYMBOL MAX 27 DIM SY$(SM%) :REM SYMBOL NAMES 28 DIM SY(SM%) :REM SYMBOL VALUES 30 PA% = 0 :REM PATCH COUNT -31 PM% = 199 :REM PATCH MAX +31 PM% = 99 :REM PATCH MAX 32 DIM PA(PM%) :REM PATCH POSITION 33 DIM PA%(PM%) :REM PATCH LENGTH 34 DIM PA$(PM%) :REM PATCH EXPRESSION @@ -258,7 +258,7 @@ 697 REM 698 REM *RUN 700* WRITE MEM TO PRG FILE 699 REM -700 GOSUB 760: REM GET DRIVE/FILE +700 GOSUB 780: REM GET DRIVE/FILE 701 INPUT "START"; A$: GOSUB 130: P=A 702 INPUT "STOP"; A$: GOSUB 830: Q=A 703 PRINT "LOAD ["; P; "]"; @@ -273,7 +273,7 @@ 717 REM 718 REM *RUN 720* PRINT SEQ FILE 719 REM -720 GOSUB 760: REM GET D/F +720 GOSUB 780: REM GET D/F 728 OPEN 1,D,2,F$ + ",SEQ,)" 729 IF ST THEN CLOSE 1: END 732 GET# 1, A$: PRINT A$;: GOTO 729 @@ -288,35 +288,46 @@ 745 PRINT 53,"FRESPC",PEEK(53)+PEEK(54)*256 746 PRINT 55,"MEMSIZ",PEEK(55)+PEEK(56)*256 747 END -748 REM *RUN 750* READ IO ERROR CHANNEL +748 REM *RUN 750* ISSUE DISK COMMAND 749 REM -750 FA = PEEK(186) -751 PRINT "DRIVE [";FA;"]";: INPUT A$ -752 A=FA: IF A$ <>"" THEN A=VAL(A$) -753 OPEN 15, A, 15 -754 INPUT# 15, A, B$, C, D -755 CLOSE 15 -756 PRINT A; B$; C; D -757 END -758 REM -759 REM SUB: PROMPT FOR DRIVE & FILE -760 FA = PEEK(186) :REM CURRENT DEVICE -761 PRINT "DRIVE ["; FA; "]"; -762 D=0: INPUT D: IF D=0 THEN D=FA -763 INPUT "FILE"; F$ -764 IF F$ = "" THEN PRINT "ABORT": END -765 RETURN -766 REM *RUN 770* SCRATCH FILE -767 REM *RUN 776* SCRATCH & SAVE +750 GOSUB 785: REM GET DRIVE +751 INPUT "CMD"; C$: GOSUB 753: END +752 REM +753 OPEN 15,D,15, C$ +754 INPUT# 15, X,A$,Y,Z: CLOSE 15 +755 IF X THEN PRINT X;TAB(6); A$, Y; Z +756 RETURN +757 REM +758 REM *RUN 760* SCRATCH FILE(S) +759 REM +760 GOSUB 761: END +761 GOSUB 780: REM GET D/F +762 C$ = "S:" + F$ +763 GOSUB 753: REM SEND CMD +764 RETURN +766 REM +767 REM *RUN 770* SCRATCH & SAVE 768 REM *RUN 777* SCRATCH/SAVE/RUN 769 REM -770 GOSUB 771: END -771 GOSUB 760: REM GET D/F -772 OPEN 15,D,15, "S:" + F$: CLOSE 15 -773 RETURN -775 REM -776 GOSUB 771: SAVE F$,D: END -777 GOSUB 771: SAVE F$,D: RUN +770 GOSUB 772: END +771 REM +772 GOSUB 761: SAVE F$,D +773 IF ST THEN C$= "": GOSUB 753: END +774 RETURN +776 REM +777 GOSUB 772: RUN +778 REM +779 REM SUB: PROMPT FOR DRIVE & FILE +780 GOSUB 785: INPUT "FILE"; F$ +781 IF F$ = "" THEN PRINT "ABORT": END +782 RETURN +783 REM +784 REM SUB: PROMPT FOR DRIVE +785 FA = PEEK(186) :REM CURRENT DEVICE +786 PRINT "DRIVE [";FA;"]";: INPUT A$ +787 D=FA: IF A$ <> "" THEN D=VAL(A$) +788 IF D=0 THEN END +789 RETURN 797 REM 798 REM *RUN 800* HEXDUMP MEMORY 799 REM