Commit Diff


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