User Tag List

Показано с 1 по 10 из 74

Тема: БК-0010/0011: Разное

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    01.12.2010
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,657
    Записей в дневнике
    21
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я подозреваю, что существуют компиляторы для PDP-11. Лично я искал компиляторы ассемблера. (В компьютере всего 16 Кб ОЗУ, не разбежишься).
    Компилятор Си мне лениво писать (хотя реально).

    Найденные мной компиляторы создавали OBJ файлы (в лучшем случае). И я не нашел линкера, для превращения OBJ в ROM (или что то подобное).

    Я спрашивал фанатов, как мне поступить, и все они говорили пиши прямо на PDP-11 в эмуляторе, там софт есть.

    ---------- Post added at 16:59 ---------- Previous post was at 16:55 ----------

    У меня есть идея, добавить в ассемблер конструкции

    if(R0>R4) {
    ..do {
    ..} while(--R4>0)
    }

    Строка "} while(--R4>0)" это команда SOB R4, ptr
    Строка "if(R0>R4) {" это команды CMP R0, R4 / BGT ptr

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,805
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    147
    Поблагодарили
    78 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    У меня есть идея, добавить в ассемблер конструкции

    if(R0>R4) {
    ..do {
    ..} while(--R4>0)
    }
    Обычный макроассемблер RT-11 ( MACRO-11 ) позволяет модифицировать синтаксические конструкции при помощи макросов.

    Вот пример реализации конструкций IF, CASE и других:
    Код:
    .MACRO MACSP L,I
    .IF B,I
    	.MCALL IF,IFB,IFC,ELSE,FI,CALL,PROC,BEGIN,END
    	.MCALL LOOP,LOOPB,EXLOOP,REPEAT,CASE
    	.MCALL $20,$22,$90,$91,$92,$93,$94
    	$10=0
    	.IIF NB,L,$10=1
    	$11=1000
    .ENDC
    $0=20
    $1=1
    $2=0
    $3=0
    $4=0
    $8=0
    $9=1
    $12=77777
    .ENDM
    .MACRO IF S,Q,D,T
    $20 ,<S>,<Q>,<D>
    IFC <Q>,<T>
    .ENDM
    .MACRO IFB S,Q,D,T       
    $20 B,<S>,<Q>,<D>
    IFC <Q>,<T>
    .ENDM
    .MACRO $20  V,S,Q,D
    .IF DIF,<Q>,<IN>
            .IF DIF,<Q>,<NI>
    		.IF IDN,<D>,<#0>
                    	$93 <TST'V S>
    		.IFF
    			$93 <CMP'V S,D>
    		.ENDC
    		.MEXIT
    	.ENDC
    .ENDC
    $93 <BIT'V S,D>
    .ENDM
    .MACRO IFC Q,T
    .IF IDN,<T>,<THEN>
    	.IIF NE,$4,.ERROR ;U
    	.IIF EQ,$2,$92 $2
    	$90 $2*2,4,\$0
    	$22 F,<Q>,\$2
    	$2=0
    	.IIF NE,$3,$94 \$3,$:
    	$3=0
    	.MEXIT		 		                	       
    .ENDC
    .IF B,T
    	.IIF EQ,$4,.ERROR ;U
    	$4=0
    	$22 ,<Q>,\$3
    	$3=0
    	.IIF NE,$2,$94 \$2,$:
    	$2=0
    	.MEXIT
    .ENDC
    .IF IDN <T>,<AND>
    	.IIF EQ,$2,$92 $2
    	$22 F,<Q>,\$2
    	.MEXIT
    .ENDC
    .IF IDN,<T>,<OR>
    	.IIF EQ,$3,$92 $3
    	$22 ,<Q>,\$3
    	.MEXIT
    .ENDC
    .ERROR ;U
    .ENDM
    .MACRO $22 F,Q,L
    $6=0
    .IIF IDN,<Q>,<SLT>,$6=BLT
    .IIF IDN,<Q>,<SLE>,$6=BLE
    .IIF IDN,<Q>,<SGE>,$6=BGE
    .IIF IDN,<Q>,<SGT>,$6=BGT
    .IIF IDN,<Q>,<ULT>,$6=BLO
    .IIF IDN,<Q>,<ULE>,$6=BLOS
    .IIF IDN,<Q>,<UGE>,$6=BHIS
    .IIF IDN,<Q>,<UGT>,$6=BHI
    .IIF IDN,<Q>,<IN>,$6=BNE
    .IIF IDN,<Q>,<NI>,$6=BEQ
    .IIF EQ,$6,$6=B'Q
    .IIF NE,$6&74377,.ERROR ;U
    $6=$6/400&377
    .IIF NB,F,$6=$6!1-<$6&1>
    $93 BR,L
    $94 .=.-1
    $93 <.BYTE $6>
    .ENDM
    .MACRO ELSE
    $91 $6,4,\$0-1
    .IIF NE,$6&1,.ERROR ;N
    $93 BR,\$1
    $90 $1*2+1,4,\$0
    $92
    $94 \$6/2,$:
    .ENDM
    .MACRO FI
    $91 $6,4,\$0-1
    $94 \$6/2,$:
    .ENDM
    .MACRO CALL L
    $93 <JSR %7,L>
    .ENDM
    .MACRO PROC L,S,B,C,T
    ;IF 'T' BLANK - FOR PDP-11, IF 'T' LSI - FOR LSI-11 
    $6=0
    .IF NB,L
    	.IIF NE,$0-20,.ERROR ;N
    	MACSP ,I
    	$6=4
    	$90 7,0,\$0
    	$94 L:
    .ENDC
    $5=-1
    .IRP R,<S>
    	.NTYPE $5,R
    	.IIF GT,$5-5,.ERROR ;T
    	$6=$6+4
    	$90 $5,0,\$0
    	$93 <MOV R,-(%6)>
    .ENDR
    .IF NB,B
    	.IIF LT,$5,.ERROR ;P
    	.IIF LE,B,.ERROR ;V
    	$7=B+1/2*2
    	.IIF GT,$7-7776,.ERROR ;V
            $93 <SUB #$7,%6>
    	$93\10600+$5
    	$90 $7,0,\$0
    	$6=$6+2
    .ENDC
    .IF NB,C
    	.IIF DIF,<C>,<CRITICAL>,.ERROR ;U
    	$6=$6+1
    	.IF B,T
    	$93 <MOV @#-2,-(%6)>
    	$93 <MOV #340,@#-2>
    	$13=0
    	.IFF
    		.IIF DIF,<T>,<LSI>,.ERROR ;U
    	$93 <MFPS -(%6)>
    	$93 <MTPS #340>
    	$13=1
    	.ENDC
    .ENDC
    $90 $6,1,\$0
    $9=$9+1
    .ENDM
    .MACRO BEGIN S,B,C
    PROC ,<S>,<B>,<C>
    .ENDM
    .MACRO END
    $9=$9-1
    $91 $6,1,\$0-1
    ;.IIF NE,$6&1,$93 <MOV (%6)+,@#-2>
    .IF NE,$6&1
    .IF EQ,$13
    	$93 <MOV (%6)+,@#-2>
    .IFF
    	$93 <MTPS (%6)+>
    .ENDC
    .ENDC
    .IF NE,$6&2
    	$91 $7,0,\$0-1
    	$93 <ADD #$7,%6>
    .ENDC
    .REPT $6/4
    	$91 $5,0,\$0-1
    	$93 \12600+$5
    .ENDR
    .ENDM
    .MACRO LOOP S
    $90 $8,0,\$0
    $8=0
    $90 $9,0,\$0
    $9=0
    $5=0
    .IF NB,S
    	.NTYPE $5,S
    	.IF EQ,$5-26
    		$93 <TST @%6>
    	.IFF
    		.IIF NE,$5-47,$93 <MOV S,-(%6)>
    	.ENDC
    	.IF EQ,$5-27
    		$94 <$94 $5=,^>,S,#
    		.IIF EQ,$5,.ERROR ;Z
    	.IFF
    		$92 $8
    		$93 BEQ,\$8
    	.ENDC
    	$5=1
    .ENDC
    $90 $1*2+$5,2,\$0
    $94 \$1,$:
    $92
    .ENDM
    .MACRO LOOPB S
    .NTYPE $5,S
    .IF EQ,$5&7-6
    	.IIF NE,$5-26,$93 <MOVB S,-(%6)>
    	$93 <BIC #177400,@%6>
    .IFF
    	$93 <CLR -(%6)>
    	$93 <MOVB S,@%6>
    .ENDC
    LOOP -(%7)
    .ENDM
    .MACRO EXLOOP I,S,Q,D,T
    .IIF NE,$9,.ERROR ;N
    .IIF EQ,$8,$92 $8
    .IF B,I
    	$93 BR,\$8
    .IFF
    	$4=1
    	$3=$8
    	I S Q D T
    .ENDC
    .ENDM
    .MACRO REPEAT
    $91 $6,2,\$0-1
    .IF NE,$6&1
    	$93 <DEC @%6>
    	$93 BNE,\$6/2
    .IFF
    	$93 BR,\$6/2
    .IFTF
    	.IIF NE,$8,$94 \$8,$:
    .IFT
    	$93 <TST (%6)+>
    .ENDC
    $91 $9,0,\$0-1
    $91 $8,0,\$0-1
    .ENDM
    .MACRO CASE R,L,P
    .MCALL $24,VALUE,CASEND
    $24 <R>,<L>,<P>
    .ENDM
    .MACRO $24 R,L,P
    .IIF LE,L,.ERROR ;V
    .IIF GT,L-7777,.ERROR ;V
    $93 <CMP R,#L>
    $5=$11*2
    .IF B,P
    	.IF LE,L-172
    		$93 <BHI L+6*2+.>
    	.IFF
    		$93 <BLOS .+6>
    		$93 <JMP L+7*2+.>
    	.ENDC
    	$93 <ASL R>
    	$93 <ADD %7,R>
    	$93 <ADD 4(R),%7>
    	$94 $,\$11,=.
    	$94 $6=$,\$11+1,-.
    	.REPT L+1
    		$93 <.WORD $6>
    	.ENDR
    .IFF
    	.IIF DIF,<P>,<PACKED>,.ERROR ;U
    	.IF LE,L-357
    		$93 <BHI L/2+11*2+.>
    	.IFF
    		$93 <BLOS .+6>
    		$93 <JMP L/2+12*2+.>
    	.ENDC
    	$93 <ADD %7,R>
    	$93 <MOVB 14(R),R>
    	$93 <BIC #177400,R>
    	$93 <ASL R>
    	$93 <ADD R,%7>
    	$94 $,\$11,=.
    	$94 $6=$,\$11+1,-.
    	.REPT L+1
    		$93 <.BYTE $6/2>
    	.ENDR
    	.EVEN
    	$5=$5+1
    .ENDC
    $94 $,\$11+1,=.
    $90 <L>,0,\$0
    $90 $5,3,\$0
    $11=$11+3
    .ENDM
    .MACRO VALUE L
    $91 $5,3,\$0-1
    $94 $6=$,\$5/2+2
    $93 <JMP $6>
    .IF IDN,<L>,<>
    	$0=$0+1
    	$94 $,\$5/2+1,=.
    .IFF
    	$91 $7,0,\$0-1
    	$0=$0+2
    	$94 $6=.-$,\$5/2
    	.IRP V,<L>
    		.IF GE,V
    			.IIF GT,V-$7,.ERROR ;R
    			.IF EQ,$5&1
    				$94 .=V*2+$,\$5/2
    				$93 <.WORD $6>
    			.IFF
    				$94 .=V+$,\$5/2
    				$93 <.BYTE $6/2>
    			.ENDC
    			$12=V
    		.IFF
    			.IIF GT,-<V>-$7,.ERROR ;R
    			.IIF LE,-<V>-$12,.ERROR ;R
    			.REPT -<V>-$12
    				.IF EQ,$5&1
    					$93 <.WORD $6>
    				.IFF
    					$93 <.BYTE $6/2>
    				.ENDC
    			.ENDR
    			$12=77777
    		.ENDC
    	.ENDR
    	$12=77777
    	$94 .=$6+$,\$5/2
    .ENDC
    .ENDM
    .MACRO CASEND
    $91 $5,3,\$0-1
    $94 $,\$5/2+2,=.
    $0=$0-1
    .ENDM		
    .MACRO $90 V,T,X
    $'X=V*10+T
    $0=$0+1
    .ENDM
    .MACRO $91 V,T,X
    $0=$0-1
    .IIF LT,$0-20,.ERROR ;N
    .IIF NE,$'X&7-T,.ERROR ;N
    V=$'X/10
    .ENDM
    .MACRO $92 D
    .IIF NB,D,D=$1
    $1=$1+1
    .ENDM
    .MACRO $93 I,L
    .IIF NE,$10,.LIST MEB
    .IF B,L
    						I
    .IFF
    						I L'$
    .ENDC
    .IIF NE,$10,.NLIST MEB
    .ENDM
    .MACRO $94 L,M,R
    						.IIF NE,$10,.LIST ME
    				L''M''R
    .IIF NE,$10,.NLIST ME
    .ENDM

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Продается БК 0011 без М за 50 у.е.
    от Mad Killer/PG в разделе Барахолка (архив)
    Ответов: 26
    Последнее: 04.08.2011, 08:59
  2. AY-музыка для БК-0011(М)
    от Gryphon в разделе БК-0010/0011
    Ответов: 1
    Последнее: 14.08.2010, 14:44
  3. Изучаю спрос на БК-0011
    от Kronshou в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 20.07.2010, 17:57
  4. Москва - куплю все связанное с БК-0010/0011
    от kt315b в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 04.10.2008, 05:09
  5. Куплю БК-0011
    от СергейВ в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 18.08.2006, 14:05

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •