Commit Diff


commit - 7a5d3b7f02e230ca0edf71c2487681b54bc3b7c0
commit + abe5d49acbdb547530f395310ea6dd021ed60e8b
blob - a0820050cae8016dde2d87ee3f0c764c09a7d132
blob + f7eecdff018fa0a32f1b85815f43ec1c5ee62446
Binary files BASASM,PRG and BASASM,PRG differ
blob - 9c67d20137293230cb5f39daa80e92a24c614579
blob + 19545d6dca94c052bf53f5002a0b9ffa2eeece2a
--- BASASM.lst
+++ BASASM.lst
@@ -1,13 +1,13 @@
 0 REM BASASM - A SIMPLISTIC ASSEMBLER
 1 REM MADE IN BASIC. PESCO 2026
 2 REM
-3 REM  10 VARIABLES    400 .DIRECTIVES
-4 REM 100 LOAD OPCODES 700 *SAVE TO PRG
-5 REM 130 SUBROUTINES  720 *PRINT SEQ F
-6 REM 200 MAIN LOOP    800 *HEXDUMP MEM
-7 REM 300 FORWARD REFS 900 OPCODE TABLE
-8 REM                 1000 ASSEMBLY PGM
-9 REM
+3 REM  10 VARIABLES    700 *SAVE TO PRG
+4 REM 100 LOAD OPCODES 720 *PRINT SEQ F
+5 REM 130 SUBROUTINES  740 *MEMSTAT
+6 REM 200 MAIN LOOP    750 *READ IO ERR
+7 REM 300 FORWARD REFS 800 *HEXDUMP MEM
+8 REM 400 .DIRECTIVES  900 OPCODE TABLE
+9 REM                 1000 ASSEMBLY PGM
 10 O = 49152    :REM STARTING POSITION
 11 P = O        :REM CURRENT POSITION
 13 UN = 0       :REM UNDEF SYMBOL COUNT
@@ -143,7 +143,10 @@
 325 FOR I = 0 TO SY%
 330 IF SY(I) = XX THEN PRINT SY$(I),;
 335 NEXT: PRINT
-340 END
+340 PRINT "ASSEMBLY FINISHED."
+341 PRINT "O ="; O; TAB(12); "P ="; P;
+342 PRINT TAB(24); "P-O ="; P-O
+350 END
 368 REM
 369 REM SUB: PATCH FWD SYMBOL REFS
 370 IF PA% = 0 THEN RETURN
@@ -238,7 +241,7 @@
 708 PRINT "LOAD ["; P; "]";
 709 A$="": INPUT A$: GOSUB 130: L=A
 710 IF L=0 THEN L=P
-713 OPEN 1,D,2,"@:" + F$ + ",PRG,W"
+713 OPEN 1,D,2, F$ + ",PRG,W"
 714 H = INT(L / 256): L = L - H*256
 715 PRINT# 1, CHR$(L); CHR$(H);
 716 IF P >= Q THEN CLOSE 1: END
@@ -253,6 +256,27 @@
 728 OPEN 1,D,2,F$ + ",SEQ,R"
 729 IF ST THEN CLOSE 1: END
 732 GET# 1, A$: PRINT A$;: GOTO 729
+737 REM
+738 REM *RUN 740* PRINT MEM STATS/PTRS
+739 REM
+740 PRINT 43,"TXTTAB",PEEK(43)+PEEK(44)*256
+741 PRINT 45,"VARTAB",PEEK(45)+PEEK(46)*256
+742 PRINT 47,"ARYTAB",PEEK(47)+PEEK(48)*256
+743 PRINT 49,"STREND",PEEK(49)+PEEK(50)*256
+744 PRINT 51,"FRETOP",PEEK(51)+PEEK(52)*256
+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
+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
 800 REM *RUN 800* HEXDUMP MEMORY
 801 REM
 802 INPUT "START"; A$: GOSUB 130: P=A
@@ -276,111 +300,3 @@
 830 IF LEFT$(A$,1) <> "+" THEN 130
 831 A = A + VAL(MID$(A$,2))
 832 RETURN
-899 REM
-901 REM - OPCODE TABLE -
-902 REM
-910 DATA 6,  ASLZ, 2, 10, ASLA, 1
-911 DATA 14, ASL,  3, 22, ASLZX,2
-912 DATA 30, ASLX, 3, 33, AND(X,2
-913 DATA 37, ANDZ, 2, 41, AND#, 2
-914 DATA 45, AND,  3, 49, AND(Y,2
-915 DATA 53, ANDZX,2, 61, ANDX, 3
-916 DATA 97, ADC(X,2, 101,ADCZ, 2
-917 DATA 105,ADC#, 2, 109,ADC,  3
-918 DATA 113,ADC(Y,2, 117,ADCZX,2
-919 DATA 121,ADCY, 3, 125,ADCX, 3
-920 DATA 57, ANDY, 3
-921 DATA 0,  BRK,  1, 16, BPLR, 2
-922 DATA 36, BITZ, 2, 44, BIT,  3
-923 DATA 48, BMIR, 2, 80, BVCR, 2
-924 DATA 112,BVSR, 2, 144,BCCR, 2
-925 DATA 176,BCSR, 2, 208,BNER, 2
-926 DATA 240,BEQR, 2
-927 DATA 24, CLC,  1, 88, CLI,  1
-928 DATA 184,CLV,  1, 192,CPY#, 2
-929 DATA 193,CMP(X,2, 196,CPYZ, 2
-930 DATA 197,CMPZ, 2, 201,CMP#, 2
-931 DATA 204,CPY,  3, 205,CMP,  3
-932 DATA 209,CMP(Y,2, 213,CMPZX,2
-933 DATA 216,CLD,  1, 217,CMPY, 3
-934 DATA 221,CMPX, 3, 224,CPX#, 2
-935 DATA 228,CPXZ, 2, 236,CPX,  3
-936 DATA 136,DEY,  1, 198,DECZ, 2
-937 DATA 202,DEX,  1, 206,DEC,  3
-938 DATA 214,DECZX,2, 222,DECX, 3
-939 DATA 65, EOR(X,2, 69, EORZ, 2
-940 DATA 73, EOR#, 2, 77, EOR,  3
-941 DATA 81, EOR(Y,2, 85, EORZX,2
-942 DATA 89, EORY, 3, 93, EORX, 3
-943 DATA 200,INY,  1, 230,INCZ, 2
-944 DATA 232,INX,  1, 238,INC,  3
-945 DATA 246,INCZX,2, 254,INCX, 3
-946 DATA 32, JSR,  3, 76, JMP,  3
-947 DATA 108,JMP(, 3
-948 DATA 70, LSRZ, 2, 74, LSRA, 1
-949 DATA 78, LSR,  3, 86, LSRZX,2
-950 DATA 94, LSRX, 3, 160,LDY#, 2
-951 DATA 161,LDA(X,2, 162,LDX#, 2
-952 DATA 164,LDYZ, 2, 165,LDAZ, 2
-953 DATA 166,LDXZ, 2, 169,LDA#, 2
-954 DATA 172,LDY,  3, 173,LDA,  3
-955 DATA 174,LDX,  3, 177,LDA(Y,2
-956 DATA 180,LDYZX,2, 181,LDAZX,2
-957 DATA 182,LDXZY,2, 185,LDAY, 3
-958 DATA 188,LDYX, 3, 189,LDAX, 3
-959 DATA 190,LDXY, 3
-960 DATA 234,NOP,  1
-961 DATA 1,  ORA(X,2, 5,  ORAZ, 2
-962 DATA 9,  ORA#, 2, 13, ORA,  3
-963 DATA 17, ORA(Y,2, 21, ORAZX,2
-964 DATA 25, ORAY, 3, 29, ORAX, 3
-965 DATA 8,  PHP,  1, 40, PLP,  1
-966 DATA 72, PHA,  1, 104,PLA,  1
-967 DATA 38, ROLZ, 2, 42, ROLA, 1
-968 DATA 46, ROL,  3, 62, ROLX, 3
-969 DATA 64, RTI,  1, 96, RTS,  1
-970 DATA 102,RORZ, 2, 106,ROLA, 1
-971 DATA 110,ROR,  3, 118,RORZX,2
-972 DATA 126,RORX, 3, 54, ROLZX,2
-973 DATA 120,SEI,  1, 133,STAZ, 2
-974 DATA 134,STXZ, 2, 140,STY,  3
-975 DATA 141,STA,  3, 142,STX,  3
-976 DATA 145,STA(Y,2, 148,STYZX,2
-977 DATA 149,STAZX,2, 150,STXZY,2
-978 DATA 153,STAY, 3, 157,STAX, 3
-979 DATA 225,SBC(X,2, 229,SBCZ, 2
-980 DATA 233,SBC#, 2, 237,SBC,  3
-981 DATA 241,SBC(Y,2, 245,SBCZX,2
-982 DATA 248,SED,  1, 249,SBCY, 3
-983 DATA 253,SBCX, 3, 56, SEC,  1
-984 DATA 129,STA(X,2, 132,STYZ, 2
-985 DATA 138,TXA,  1, 152,TYA,  1
-986 DATA 154,TXS,  1, 168,TAY,  1
-987 DATA 170,TAX,  1, 186,TSX,  1
-990 DATA -1
-991 REM
-992 REM = APPEND PROGRAM CODE BELOW =
-999 REM
-1000 DATA 'START
-1001 DATA  JMP, STXRT
-1002 DATA .DSZ, HALLO
-1003 DATA .DB, HALLO^
-1004 DATA .DB, 1 2 3
-1005 DATA  PHA
-1010 DATA  BMIR, L1, RTI
-1014 DATA 'L1
-1015 DATA  BITZ, -123
-1016 DATA  BEQR, L1
-1017 DATA  JSR, L2
-1018 DATA 'L2
-1020 DATA  ORA(X, $23
-1023 DATA HALLO=, -555
-1024 DATA .DB, -1 $16, .DW, HALLO $4242
-1025 DATA  $00, 79, $4D, 16, 39
-1029 DATA .=, 49200, .DZ, 10
-1030 DATA  AND#, 255
-1040 DATA  ORA, $C80A+
-1050 DATA  JMP, START+
-2000 DATA .=,50000, BEQR, FAR+
-2001 DATA .=,50128, 'FAR
-9999 DATA .END
blob - 0aa631174ae6fdf67f8ae2d3d79f659b24f3ca06
blob + 554d0f789071ecf60065b43ff6923fc424438895
Binary files TEST.B,PRG and TEST.B,PRG differ
blob - 8737b4e124efec31a91f70e612c785daaa32db7a
blob + 79ca3cd0374c696c037a0c8b64ffb90d60c70b5e
--- TEST.B.lst
+++ TEST.B.lst
@@ -18,6 +18,6 @@
 1030 DATA  AND#, 255
 1040 DATA  ORA, $C80A+
 1050 DATA  JMP, START+
-2000 DATA .=,50000, BEQR, FAR+
-2001 DATA .=,50128, 'FAR
+2000 DATA .=,49200, BEQR, FAR+
+2001 DATA .=,49328, 'FAR
 9999 DATA .END