Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;//+-----------------------------------------------
- ;//| BK disassembler v.0.007b
- ;//| File: rs.bin Adress:1000 Length:4122
- ;//+-----------------------------------------------
- ORG 1000
- .S a72=70, //Позиция вывода чисел
- a42000=40501,
- a42100=a42000+100, a42061=42061,a42063=42062;
- JMP a5070
- ;// MOV PC,a4640
- Start: MOV #100274,@#4
- JMP a4644
- Msg1: DB 'Адрес ',0
- ;// DB 'АДРЕС___',0
- DB 'Шаг ',0
- DB 'Шир X ',0
- DB 'Выс Y ',0
- ;// DB 'СПРАЙТ__',0
- DB 'Обьем ',0
- ;// DB 'Цвет',0
- DB 0,0 ;//,0
- DB ' -RS- V2.01 ',0,0,1;//0,0,0
- ;// DB ' YS corp. (C)',0,0
- ;// DB 0, 0
- ;// DB ' г.МОСКВА',0
- ;// DW 1
- ;//Keys: DB 31,10,32,33,12,'R','S',' ','A','[','Y','X'
- ;//Редактор (режим линза)
- aEdit:
- MOV PrevX,a4622
- ASL a4622
- ASL a4622
- DEC a4622
- MOV SizeY,a4624
- DEC a4624
- CLR a4614
- CLR a4616
- MOV #a42100,R5
- a2320: MOV a4614,R1
- ADD #314,R1
- MOV a4616,R2
- CLR R4
- ;// MOVB #100,300(R5) ;//Сеточка
- CLR R0
- BITB Mask2,200(R5)
- BEQ a2366
- ADD #2,R0
- a2366: BITB Mask1,200(R5)
- BEQ a2402
- ADD #1,R0
- a2402:
- ;//Проверка уст. Сеточки
- BIT #1,Mask1
- BNE a2350
- MOVB #100,-100(R1)
- BR a2352
- a2350:
- movb 200(R5),300(R5)
- a2352:
- COMB 100(R5)
- COMB 200(R5);
- COM R0
- INC R0
- BIC #177774,R0
- MOV R0,a4636
- CALL a3332
- COMB 200(R5);//
- COMB 100(R5) ;//Курсор
- CMPB (R1)+, R0;//CMP #31,aKey
- BNE a2542
- CMP a4622,a4614
- BEQ a2320
- INC a4614
- INC R5
- a2540:
- BR a2320;//JMP a2320
- a2542: CMPB (R1)+, R0;//CMP #10,aKey
- BNE a2572
- TST a4614
- BEQ a2320
- DEC a4614
- DEC R5
- BR a2320;//JMP a2320
- a2572: CMPB (R1)+, R0;//CMP #32,aKey
- BNE a2624
- TST a4616
- BEQ a2320
- DEC a4616
- SUB #400,R5
- BR a2320;//JMP a2320
- a2624: CMPB (R1)+, R0;//CMP #33,aKey
- BNE a3070;//a2660
- CMP a4616,a4624
- BEQ a2320
- ADD #400,R5
- INC a4616
- a2650:
- BR a2320
- a2660: CMPB (R1)+, R0 ;//R -Возврат в просм.
- BNE a2666
- RET
- a2666:
- CMP #61, R0;//'1' уст точки
- BNE a2726
- BIS Mask2,R4
- BIS Mask1,R4
- MOVB R4,(R5)
- MOVB R4,100(R5)
- MOVB R4,200(R5)
- BR aEMTPSET
- a2724:
- BR a2320;//'2' уст точки
- a2726: CMP #62,R0
- BNE a2770
- MOV Mask2,R4
- MOVB R4,(R5)
- MOVB R4,100(R5)
- MOVB R4,200(R5)
- BR aEMTPSET
- a2770: CMP #63,R0;//'3' уст точки
- BNE a3032
- MOV Mask1,R4
- MOVB R4,(R5)
- MOVB R4,100(R5)
- MOVB R4,200(R5)
- BR aEMTPSET
- a3032: CMP #64,R0;//aKey ;//'4' стирание точки
- BNE a3242 ;//a3070
- CLRB (R5)
- CLRB 100(R5)
- CLRB 200(R5)
- BR aEMTPSET
- ;// BR a2540
- a3070: CMPB (R1)+, R0;//'ВВод' Запись линзы в память
- BNE a2660;//a3242
- PUSH R5
- PUSH R5
- MOV #a42100,R0
- MOV AddrS,R1
- MOV SizeY,R2
- a3114: MOV PrevX,R3
- a3120: MOV #4,R4
- CLR (SP);//a4614
- a3130: CLR R5
- BITB Mask2,(R0)
- BNE a3144
- BIS #100,R5
- a3144: BITB Mask1,(R0)
- BNE a3156
- BIS #200,R5
- a3156: ROLB R5
- RORB (SP);//a4614
- ROLB R5
- RORB (SP);//a4614
- INC R0
- SOB R4,a3130
- COMB (SP);//a4614
- MOVB (SP),(R1)+
- SOB R3,a3120
- BIC #74,R0
- ;//inc R0
- ADD #400,R0
- SUB PrevX,R1
- ADD SizeX,R1
- SOB R2,a3114
- CALL DrawPrevScr
- ;//MOV #233,R0
- ;//EMT 16
- POP R5
- POP R5
- BR a2724
- ;//Только для 10-тки!
- aEMTPSET:
- BIC #177770,R0
- ADD R0,R0
- ADD #112024, R0
- MOV (R0),@#214
- EMTSET: PUSH @#154
- MOV #1403, @#154
- COM @#40
- ;//Вход: R0 - 1-ЗАПИСЬ,
- ;// 0-СТИРАНИЕ
- CLR R0
- INC R0
- MOV a4614,R1
- ADD #310,R1
- MOV a4616,R2
- caLL @#107612
- ;// EMT 30
- CLR @#40
- POP @#154
- a3242:
- BR a2724
- ;//Конец редактора
- ;//Просмотрщик
- aView: CALL a1172 ;//Вывод инфо
- ;// Проверка нажатых клавиш
- a3602: CALL a3332
- mov PC,R2
- baseV: add #(AddrS-baseV),R2
- MOV R2,R3
- TSTB ModeV
- BEQ a3620
- TST (R3)+
- a3620:
- CMPB (R1)+, R0;//CMP #31, R0
- BNE a3622
- INC (R3);//AddrS
- a3622: CMPB (R1)+, R0;//CMP #10, R0
- BNE a3636
- DEC (R3);//AddrS
- a3636: CMPB (R1)+, R0;//CMP #32, R0
- BNE a3654
- SUB SizeX,AddrS
- a3654: CMPB (R1)+, R0;//CMP #33, R0
- BNE a3672
- ADD SizeX,AddrS
- BR a4050
- ;//CMP #12, R0 Обновление линзы по вводу
- a3672: CMPB (R1)+, R0
- BNE a3706
- ;//PScrX
- ;//CALL DrawMagnScr
- BR a4474;//Обновить
- a3706: ;//Вход в редактирование
- CMPB (R1)+, R0;//CMP R0,#'R'
- BNE a3726
- CALL aEdit
- BR aView;//a3602;//a4050 ;//aView
- ;// JMP aView
- a3726: CMPB (R1)+, R0;//'S'//CMP #26,R0
- BNE a3744
- Call SetGrid
- BR a4474;//a4254
- ;//CMP Key, #' ' Пробел- уст. режима
- a3744: CMPB (R1)+, R0
- BNE a3762
- COMB ModeV
- ;// ADD aClip,AddrS
- a3762: CMPB (R1)+, R0;//CMP #'A',R0; Ввод адреса
- BNE a4014
- MOV #a72,R1
- MOV #6,R2
- EMT 24
- CALL a4330
- MOV R0,AddrS
- BR a4274 ;//Fix
- a4014: CMPB (R1)+, R0;//CMP #133, R0 '[' Ввод Шага
- BNE a4060
- MOV #a72,R1
- MOV #7,R2
- EMT 24
- CALL a4330
- MOV #a72,R1
- EMT 24
- MOV R0,aClip
- CALL a2066
- a4050:
- BR a4274 ;//Fix
- a4060: ;NOP
- CMPB (R1)+, R0;//CMP #131,aKey 'Y' Ввод Размера по Y
- BNE a4160
- a4072: MOV #a72,R1
- MOV #11,R2
- EMT 24
- CALL a4330
- MOV #a72,R1
- EMT 24
- CALL a2066
- CMP R0,#62
- BHI a4072
- TST R0
- BLE a4072
- MOV R0,SizeY
- a4470:
- ;//CALL a1334
- CALL DrawPrevScr
- a4474:
- CALL DrawMagnScr
- CALL DrawPrevBox
- a4476:
- BR aView
- ;//CMP #'X', aKey Ввод размера Х
- a4160: CMPB (R1)+,R0
- BNE a4274
- a4170: MOV #a72,R1
- MOV #10,R2
- EMT 24
- CALL a4330
- MOV #a72,R1
- EMT 24
- CALL a2066
- TST R0
- BLE a4170
- MOV R0,SizeX
- MOV R0,PrevX
- CMP PrevX,#13
- BHI a4246
- BR a4254
- a4246: MOV #14,PrevX
- a4254:
- BR a4470;//aView
- a4274:
- ;//a3606:
- ;//a3607:
- ;//Пост обработка результатов
- MOV SizeX,R4
- CMP R4,PrevX
- BEQ a3610 ;//Прыгает если равно
- TST R4;//Нуль?
- BNE a3609
- inc SizeX
- ;// br a3611
- a3609:
- MOV SizeX,PrevX
- CMP PrevX,#13
- BHI a3611
- BR a3610
- a3611: MOV #14,PrevX
- ;//BR a5555
- ;//Если Не равно, проверить
- ;// CMP PrevX,#14
- ;// BEQ a3610
- ;//a3611:
- ;// BHI a4244
- ;// BR a4255
- ;//a4244: MOV #14,PrevX
- a3610:
- CALL DrawPrevScr
- MOV AddrS,R0
- MOV #6,R2
- MOV #a72,R1
- EMT 24
- CALL a2066
- MOV SizeX,R0
- MOV #10,R2
- MOV #a72,R1
- EMT 24
- CALL a2066
- JMP a3602
- ;// ПОДПРОГРАММЫ
- OctOUT:
- ;//MOV #44020,R0
- ;//MOV #123456,R1
- MOV R1,R4
- CLR R1
- MOV #6,R2
- BR 0B
- 0C: CLR R1
- ROL R4
- ROL R1
- ROL R4
- ROL R1
- 0B:
- ROL R4
- ROL R1
- PUSH R0
- PUSH R2
- PUSH R4
- ;// MOV #7,R2
- MOV #7,R2
- Call DigiOUT
- POP R4
- POP R2
- POP R0
- bicB #3,-77(R0)
- bicB #3,501(R0)
- CLRb -100(R0)
- CLRb 500(R0)
- inc R0
- SOB R2,0C
- RET
- DigiOut:
- ;// R0 -ADR
- ;// R1 -Num
- ;// R2 - Size (1-4x7,7-4х5)
- CALL basedigi
- DW 1111011011011110b ;//0
- DW 0101100100101110b ;//1
- DW 1110011111001110b ;//2
- DW 1110010110011110b ;//3
- DW 1011011110010010b ;//4
- DW 1111001110011110b ;//5
- DW 1111001111011110b ;//6
- DW 1110010110100100b ;//7
- DW 1111011111011110b ;//8
- DW 1111011110011110b ;//9
- basedigi:
- POP R5 ;//Получить адрес
- ADD R1,R1
- ADD R1,R5
- xcycl:
- MOV (R5),R1
- MOV #5,R3
- CLR R4
- ycycl:
- ASL R1
- RORB R4 ;//Перенос бита в ст. разр
- ASRB R4 ;//Уст доп. бит
- ASL R1
- RORB R4
- ASRB R4
- ASL R1
- RORB R4
- ASRB R4
- ASR R4
- ASR R4
- asL R4
- ASL R4
- // ASR R4
- // ASR R4
- MOVB R4,(R0)
- bicB #3,1(R0)
- add #100,R0
- BITB R2,R3
- BNE nene
- MOVB R4, (R0)
- add #100,R0
- nene:
- LOOP R3, ycycl
- RET
- PaintСLR:
- XOR R4,R4
- BR aPaint
- ;//Заливка интерфейса
- PaintAll:
- mov #40000,R0;//Адрес
- mov #100,R1 ;//Ширина X
- mov #150,R2 ;//Высота Y
- PaintDef:
- ;// MOV #63146, R3 ;//0110011001100110
- ;// MOV #114631,R4 ;//1001100110011001
- mov #0110011010011001b,R4
- ;// xor r4,r4
- BIT #100,R0
- BEQ aPaint
- swab R4
- aPaint:
- mov R1,R3
- mov #200,R5
- sub R3,R5
- a2445: mov R1,R3
- a2446:
- movb R4,100(R0)
- swab R4
- movb R4,(R0)+
- swab R4
- LOOP R3,a2446
- add R5,R0
- LOOP R2,a2445
- ret
- GreenBox:
- ;// Рисуем окошко ::::::::::::::::
- ;//::::+----------+ >>>>>>>:::::::
- ;//::::| +------+ | <<<<<<<:::::::
- ;//::::| |SPRITE| | >Мусор>::фон::
- ;//::::| +------+ | <<<<<<<:::::::
- ;//::::+----------+ >>>>>>>:::::::
- ;//::::<<<<<<<<<<<<<<<<<<<<:::::::
- ;//:::::::::PrevX ^::OldX ^:::::::
- ;//:::::::::::::::::::::::::::::::
- PUSH R1 ;//Ширина X
- PUSH R0 ;//Адрес (всё понадобится в конце)
- SUB #301, R0 ;//Уст. позиции верхнелевого угла
- ;//ВЕРТИКАЛЬ R0| R1|
- TST R5 ;//Есть старые параметры ?
- BEQ aSkippy1 ;//0-нету, скипаем
- cmp (R5),R1 ;//Старый размер был больше?
- BEQ aSkippy1 ;//скипаем если без изменений
- BHI UborkaX ;//иначе Затирка мусора
- mov R1,(R5)
- BR aSkippy1
- UborkaX: ;//Чистим мусор по ширине
- PUSH R0 ;//ф-ция Paint жрет все регистры
- PUSH R1 ;//ничего не сохраняя
- PUSH R2
- PUSH R5
- ADD R1,R0
- SUB #100-2,R0
- MOV R1,R3
- Mov (R5),R1
- SUB R3,R1
- MOV R3,(r5)
- ADD #12,R2
- ASR R2;
- Call PaintDef
- POP R5
- POP R2
- POP R1
- POP R0
- aSkippy1:
- PUSH R2
- PUSH R5
- inc R1
- ADD R0,R1
- MOV R2,R3 ;//Высота Y
- add #6,R3
- MOVB #00001010b,R4
- mov #100,R5
- ;//Издержки максимальной оптимизации
- mov #77777+3,R2
- clRb -100(R0)
- clRb -100(R1)
- aLoopY:
- dec R2
- BMI aHek ;//Переход если отрицательно
- MOVB #00101000b,(R0)
- mov R3,R2
- dec R2
- dec R2
- dec R2
- br aSkp
- aHek: ;//Фикс артефакта в левых углах
- MOVB #10101000b,(R0)
- aSkp:
- MOVB R4,(R1)
- ADD R5, R0
- ADD R5, R1
- LOOP R3, aLoopY
- ;//КОНЕЦ ВЕРТИКАЛИ -R0 результат нижней позиции
- ;//Возврат исходных параметров
- POP R5 ;//Указатель на OldX/OldyY
- POP R2 ;
- TST R5 ;//Есть старые параметры ?
- BEQ aSkippy2 ;//0-нету, скипаем
- TST (R5)+ ;//Или чекаем мусор снизу
- CMP (R5),R2
- BEQ aSkippy2
- BHI UborkaY
- mov R2,(R5)
- BR aSkippy2
- UborkaY: ;//С регистрами теперь попроще
- mov (R5),R3
- sub R2, R3
- mov R2,(R5)
- mov R3,R2
- mov 2(SP),R1;//Извлекаем размер X
- PUSH R0 ;//Чтоб не попортить высчитаный адрес
- Inc R1 ;//всякая коррекция
- Inc R1
- add #5,R2
- add #100,R0
- ASR R2
- Call PaintDef
- POP R0
- aSkippy2:
- MOV R0,R1
- POP R0
- MOV (SP),R3
- PUSH R1
- MOV #200,R5
- SUB R5,R0
- SUB R5,R1
- inc R1
- MOV #125252, R4
- ;//ГОРИЗОНТАЛЬ
- aLoopX:
- ;//Верхняя линия
- CLRB -200(R0)
- MOVB R4,-100(R0)
- CLRB 100(R0)
- MOVB R4,(R0)+
- ;//Нижняя линия
- CLRB -100(R1)
- MOVB R4,100(R1)
- MOVB R4,(R1)+
- LOOP R3,aLoopX
- ;//Отрисовка тени
- ;// MOV R5,R0
- POP R0 ;//Достаем адрес
- POP R1 ;//Достаем размер
- ;//
- PUSH R0
- CLRB (R0)+ ;//Штрих угла
- inc R1
- MOV #1,R2
- Call PaintСLR
- POP R0
- JMP @(SP)+ ;//RET
- ;//
- ;//Конец зеленой коробки
- ;//
- ;//
- ;//SEC Устанавливает флаг C
- ;//SEV Устанавливает флаг V
- ;//SEZ Устанавливает флаг Z
- ;//SEN Устанавливает флаг N
- ;//
- ;// Отрисовка буфера превью
- ;//
- DrawPrevScr: ;//R0: 1InBox, 0 NoBox, -1BoxOnly
- a1400:
- CLR R5
- MOV PrevX,R4
- CMP R4,SizeX
- BCC a1412
- MOV SizeX,R5
- SUB R4,R5
- a1412: MOV #a42063,R0
- MOV AddrS,R1
- MOV SizeY,R2
- a1426: MOV R4,R3
- a1432: MOVB (R1)+,(R0)+
- SOB R3,a1432
- SUB R4,R0
- ADD R5,R1;//a4614,R1
- ADD #100,R0
- SOB R2,a1426
- DrawPrevBox:
- ;//a1500:
- MOV #a42063,R0
- mov PrevX,R1
- mov SizeY,R2
- mov PC,R5
- aBaseR: add #(PScrX-aBaseR),R5
- call GreenBox
- mov #a42063-1101,R0
- ;//add #301,R0
- mov AddrS,R1
- call OctOUT
- RET
- ;//Вкл/Выкл Сеточку
- SetGrid:
- ;//PUSH R5
- MOV #1,R5
- mov PC,R1
- base4: add #(Mask1-base4),R1
- BIT R5, (R1);//Mask1 ;//aGrid
- BNE aa1630
- bis R5,(R1)+;//Mask1
- INC R5
- bis R5,(R1) ;//Mask2
- BR aExEx
- aa1630: bic R5,(R1)+ ;//Mask1
- INC R5
- bic R5,(R1) ;//Mask2
- aExEx:
- ;//POP R5
- RET
- ;//
- ;//Вывод экранной линзы
- ;//
- DrawMagnScr: ;//MOV #a42000,R0 ;
- M_Top:
- MOV #a42100,R0
- mov PrevX,R1
- add r1,r1
- add r1,r1
- mov SizeY,R2
- add r2,r2
- add r2,r2
- mov PC,R5 ;//Получаем смещение прежних данных
- aBaseM: add #(MScrX-aBaseM),R5
- ;//CLR R5
- call GreenBox
- MOV #a42063,R0;// Указатель на превью
- ;//MOV AddrS, aEntAddr
- a1610:
- MOV #a42100,R1;// Указатель на линзе
- MOV SizeY,R2
- PUSH #1 ;//Константа под тест битов
- a1612: MOV PrevX,R3
- a1616: MOV #4,R4
- MOVB (R0),R5 ;//(SP);//a4614
- a1626: ;//Очень перепаханый алго
- BIT (SP), Mask1
- BNE a1630
- MOVB #100,-100(R1);//Сеточка
- a1630:
- CLRB (R1);;//ПереОптимизация
- BIT (SP),R5 ;//#100000,R5
- BEQ a1656
- BISB Mask1,(R1)
- a1656: ROR R5
- BIT (SP),R5 ;//#100000,R5
- BEQ a1670
- BISB Mask2,(R1)
- a1670: ROR R5
- INC R1
- SOB R4,a1626
- INC R0
- SOB R3,a1616
- PUSH R2
- PUSH R1
- PUSH R0
- MOV #2,R2
- ;// BR a1710
- ;//aFix: BR a1612
- a1710: Mov PrevX,R5
- add R5,R5
- add R5,R5
- a1712: MOV R5,R0;
- BIC #74,R1
- a1722: MOVB (R1),100(R1)
- MOVB (R1),200(R1)
- INC R1
- SOB R0,a1722
- ADD #100,R1
- SOB R2,a1712
- POP R0
- POP R1
- POP R2
- MOV PrevX,R5
- SUB R5,R1
- SUB R5,R1
- SUB R5,R1
- SUB R5,R1
- ADD #400,R1
- SUB R5,R0
- ADD #100,R0
- SOB R2,a1612;//aFix;//a1612
- ;// RET
- eExSub:
- TST (SP)+ ;//Признак мощной оптимизации
- JMP @(SP)+ ;//RET
- ;//Обработка клавиатуры
- a3332: MOV #100,R2;
- MOV #177716,R1
- BIT R2, (R1)
- BEQ a3364
- a3344: BIT R2,(R1)
- BNE a3344
- MOV #40000,a4626;//Задержка
- BR a3434
- a3364: TST a4626
- BEQ a3416
- MOV a4626,R0
- a3376: BIT R2,(R1)
- BNE a3344
- SOB R0,a3376
- CLR a4626
- BR a3434
- a3416: MOV #1000,R0
- a3422: BIT R2,(R1)
- BNE a3344
- SOB R0,a3422
- a3434: MOV @#177662,aKey
- MOV R2,R0
- BIS R2, (R1)
- a3454: SOB R0,a3454
- MOV R2,R0
- BIC R2,(R1)
- a3470: SOB R0,a3470
- ;//POP R0 ;//MOV (SP)+,R0
- MOV aKey,R0
- mov PC,R1
- base1: add #(Keys-base1),R1
- ;//eExSubFix:
- RET
- ;// BR eExSub
- ;// TST (SP)+
- ;// JMP @(SP)+ ;//RET
- ;//Вывод OCT числа
- a2066: PUSH R2 ;//MOV R2,-(SP)
- PUSH R1 ;//MOV R1,-(SP)
- PUSH R0 ;//MOV R0,-(SP)
- MOV #5,R2
- MOV R0,R1
- CLR R0
- ROL R1
- ROL R0
- ADD #60,R0
- EMT 16
- a2116: CLR R0
- ROL R1
- ROL R0
- ROL R1
- ROL R0
- ROL R1
- ROL R0
- BIC #177770,R0
- ADD #60,R0
- EMT 16
- SOB R2,a2116
- POP R0;//MOV (SP)+,R0
- POP R1;//MOV (SP)+,R1
- POP R2;//MOV (SP)+,R2
- RET
- ;//Ввод OCT числа
- a4330: PUSH R3
- PUSH R2
- PUSH R1
- EMT 26
- MOV #6,R3
- MOV #40,R0
- a4350: EMT 16
- SOB R3,a4350
- MOV #1,R3;//a4616
- EMT 24
- ;// INC R3 ;//R3=1
- ;//PUSH 0
- CLR R5;//a4614
- a4370: CALL a3332
- ;//MOV aKey,R0
- CMPB #12,R0 ;//aKey
- BEQ a4562
- CMPB #30,R0;//aKey
- BNE a4466
- a4420: CMP #1,R3;//a4616
- BEQ a4370
- BIC #7,R5;//a4614
- ASR R5
- ASR R5
- ASR R5
- DEC R3;//a4616
- MOV #30,R0
- EMT 16
- BR a4370
- a4466: CMP #10,R0;//aKey
- BEQ a4420
- CMP #60,R0;//aKey
- BGT a4370
- CMP #67,R0;//aKey
- BLT a4370
- CMP #7,R3;//a4616
- BEQ a4370
- INC R3;//a4616
- EMT 16
- ASL R5;//a4614
- ASL R5;//a4614
- ASL R5;//a4614
- BIC #177770,R0
- ADD R0,R5;//a4614
- BR a4370
- a4562:
- ;//POP R0
- MOV R5,R0;//a4614,R0
- POP R1
- POP R2
- POP R3
- RET
- ;// Вывод текстовой информации
- a1172: MOV PC,R5
- base2: ADD #(Msg1-base2),R5
- MOV #62,R1
- MOV #6,R2
- EMT 24
- a1214: MOVB (R5)+,R0
- CMP #1,R0
- BEQ a1244
- TST R0
- BNE a1240
- INC R2
- MOV #62,R1
- EMT 24
- a1240: EMT 16
- BR a1214
- a1244: MOV #a72,R1
- MOV #6,R2
- EMT 24
- MOV AddrS,R0
- CALL a2066
- INC R2
- EMT 24
- MOV aClip,R0
- CALL a2066
- INC R2
- EMT 24
- MOV SizeX,R0
- CALL a2066
- INC R2
- EMT 24
- MOV SizeY,R0
- CALL a2066
- INC R2
- EMT 24
- CLR R0
- MOV SizeY,R1
- a3533: ADD SizeX,R0
- SOB R1,a3533
- CALL a2066
- MOV #51562,R0
- XOR R5,R5
- MOV #14,R1
- MOV #60,R2
- CALL GreenBox
- MOV #62362,R0
- XOR R5,R5
- MOV #14,R1
- MOV #10,R2
- CALL GreenBox
- RET
- Keys: DB 31,10,32,33,12,'R','S',' ','A','[','Y','X'
- ;//aEntAddr: DW 030000 ;//введеный адрес
- PrevX: DW 05 ;//00014 ;//Размер (ширина) превью
- AddrS: DW 030000 ;//адрес спрайта
- SizeX: DW 05 ;//Спрайт ширина X (в байтах)
- SizeY: DW 000060 ;//Спрайт/Линза (размер Y )
- aClip: DW 017 ;//Шаг/кадр/клип
- PScrX: DW 0 ;//Сохраняемый размер экрана превью
- PScrY: DW 0 ;//Сохраняемый размер экрана превью
- MScrX: DW 0 ;//Сохраняемый размер экрана линзы
- MScrY: DW 0 ;//Сохраняемый размер экрана линзы
- ;//OldY: DB 0
- ModeV: DB 0;//377
- ModeR: DB 0
- DW 0
- a4614: DW 0
- a4616: DW 000021
- DW 0
- a4622: DW 000057 ;//Курсоры
- a4624: DW 000061
- a4626: DW 040000
- aKey: DW 0000000001000011b;//103 ;// 03
- Mask1: DW 0000111101010100b ;//7524;//052017
- Mask2: DW 1111000010101000b;//170250;//124360
- a4636: DW 0;//1
- ;//a2006: MOV #a42061,R0
- ;// MOV #144,R1
- ;//a2016: MOVB #6,(R0)
- ;// MOVB #11,100(R0)
- ;// ADD #200,R0
- ;// SOB R1,a2016
- ;// RET
- ;// MOV #51061,R0
- ;// MOV #17,R1
- ;//a2046: MOVB #146,(R0)
- ;// MOVB #231,100(R0)
- ;// INC R0
- ;// SOB R1,a2046
- ;// RET
- a4644: CLRB @#42
- a4646:
- MOV #40000,@#202
- MOV #40000,@#206
- MOV #36000,@#210
- MOV #3000,@#164
- MOV #1330,@#177664
- MOV #2000,@#204
- CLRB @#40
- MOV #1,@#162
- CLR @#44
- CLR @#46
- TSTB @#41
- BEQ a4752
- MOV #235,R0
- EMT 16
- a4752: MOV #233,R0
- EMT 16
- MOV #224,R0
- EMT 16
- MOV #236,R0
- EMT 16
- MOV #233,R0
- EMT 16
- MOV #232,R0
- EMT 16
- ;//--------------------------
- ;// Подготовка интерфейса
- ;// Заливка интерфейса
- ;// MOV #40000,R0
- ;// MOV #40,R1
- ;// MOV #147,R2
- CALL PaintAll
- ;// MOV #63146,R3
- ;// MOV #114631,R4
- ;//a2445: MOV #40,R1
- ;//a2446: MOV R4,100(R0)
- ;// MOV R3,(R0)+
- ;// SOB R1,a2446
- ;// ADD #100,R0
- ;// SOB R2,a2445
- CALL a1172
- CALL DrawPrevScr
- CALL DrawMagnScr
- ;// CALL a2006
- RESET
- JMP aView
- HALT
- HALT
- a5070: MOV #73000,R0;//MOV #73700,R0
- mov PC,R1
- LdBase: add #(Start-LdBase),R1
- ;//MOV #1004,R1
- a5100: MOV (R1)+,(R0)+
- CMP R0,#100000
- BNE a5100
- JMP @#73000;//@#73700
- HALT
- HALT
- HALT
- HALT
- .END
Advertisement
Add Comment
Please, Sign In to add comment