commit abe5d49acbdb547530f395310ea6dd021ed60e8b from: Sven M. Hallberg date: Sun May 31 18:14:04 2026 UTC BASASM.21 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