home *** CD-ROM | disk | FTP | other *** search
- 10 ' DISASMB
- 20 '
- 30 PRINT
- 40 PRINT "Disassembler program written in Microsoft Basic-80, ver 5.1"
- 50 '
- 60 DEFINT A-G
- 70 DEFSTR N-Z
- 80 DIM A(30)
- 90 '
- 100 ' If this program is to be compiled with BASCOM the following arrays
- 110 ' have to be dimensioned to maximum possible values and the ERASE
- 120 ' commands in LOAD TABLES have to be remove
- 130 '
- 140 DIM E(2,255):' opcodes table
- 150 DIM S(30):' opcodes list
- 160 DIM T(25):' operands list
- 170 '
- 180 DEF FNZHEX2(I)=RIGHT$("00"+HEX$(I),2)
- 190 DEF FNZHEX4(I)=RIGHT$("0000"+HEX$(I),4)
- 200 DEF FNZNO(I)=RIGHT$(STR$(I),LEN(STR$(I))-1)
- 210 '
- 220 X=STRING$(15," ")
- 230 W=STRING$(128,0)
- 240 ZT=CHR$(9)
- 250 STOG(0)="DISABLED"
- 260 STOG(1)="ENABLED"
- 270 Q(1)="IX"
- 280 Q(2)="IY"
- 290 '
- 300 ZEND1=STRING$(2,&HFF)+STRING$(2,&H1A)
- 310 ZEND2=STRING$(4,&H1A)
- 320 '
- 330 DIM R(127)
- 340 FOR A=0 TO 31
- 350 R(A)="CTL-"+CHR$(64+A)
- 360 NEXT A
- 370 R(32)="SP"
- 380 R(127)="DEL"
- 390 FOR A=33 TO 126
- 400 R(A)=CHR$(A)
- 410 NEXT A
- 420 ' FOR A=97 TO 122:R(A)="LC "+R(A):NEXT A
- 430 R(8)="BS"
- 440 R(9)="HT"
- 450 R(10)="LF"
- 460 R(11)="VT"
- 470 R(12)="FF"
- 480 R(13)="CR"
- 490 '
- 500 FC=1:' console enable toggle
- 510 FH=0:' hex string conversion error flag
- 520 FP=0:' printer enable toggle
- 530 FT=0:' tables loaded flag
- 540 FZ=0:' Zilog-opcode table flag
- 550 '
- 560 FI=1:' initial tables load flag
- 570 GOTO 1140
- 580 '
- 590 ' MENU
- 600 '
- 610 FW=0:' write file enable flag
- 620 FX=0:' x-ref file enabled flag
- 630 FR=0:' memory read return flag
- 640 CLOSE
- 650 FI=0
- 660 PRINT
- 670 PRINT "Enter:"
- 680 PRINT " C - Console listing toggle";TAB(35);STOG(FC)
- 690 PRINT " D - Disk file disassemble"
- 700 PRINT " E - End"
- 710 PRINT " L - List opcodes"
- 720 PRINT " M - Memory disassemble"
- 730 PRINT " P - Print listing toggle";TAB(35);STOG(FP)
- 740 PRINT " T - Tables load";:IF FT=0 THEN PRINT TAB(35);"none loaded"