commit - 65a8a8f00044d5d4e6be1ac5651cd656bbe191c4
commit + 9de116a0703a197030432b3c7ab467fded3d25e2
blob - 10316f699de428a19bdb3ee949e9a6b05ddab403
blob + 67ae176f982e43f2382dad0eda1b6fb11345479b
Binary files BASASM,PRG and BASASM,PRG differ
blob - f40b54e25065a4d9e2771c8bf31510666039f91f
blob + 284cdd22f3c3f8306e3ebc49b41c49d3efeb7e4d
--- BASASM.lst
+++ BASASM.lst
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
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
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; "]";
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
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