commit - 7a5d3b7f02e230ca0edf71c2487681b54bc3b7c0
commit + abe5d49acbdb547530f395310ea6dd021ed60e8b
blob - a0820050cae8016dde2d87ee3f0c764c09a7d132
blob + f7eecdff018fa0a32f1b85815f43ec1c5ee62446
Binary files BASASM,PRG and BASASM,PRG differ
blob - 9c67d20137293230cb5f39daa80e92a24c614579
blob + 19545d6dca94c052bf53f5002a0b9ffa2eeece2a
--- BASASM.lst
+++ BASASM.lst
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
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
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
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
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
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