This commit is contained in:
Juhani Krekelä 2021-07-30 00:40:42 +03:00
parent db9c76bcee
commit 1e2b59ad46
1 changed files with 25 additions and 174 deletions

199
edlin.asm
View File

@ -2,67 +2,15 @@ cpu 8086
org 0x100
db 0xEB, 0x7F ; 0100 jmp short 0x181
db 0x0D, 0x0A, 0x54 ; 0102 or ax,0x540a
db 0x68, 0x65, 0x20 ; 0105 push word 0x2065
db 0x49 ; 0108 dec cx
db 0x42 ; 0109 inc dx
db 0x4D ; 010A dec bp
db 0x20, 0x50, 0x65 ; 010B and [bx+si+0x65],dl
db 0x72, 0x73 ; 010E jc 0x183
db 0x6F ; 0110 outsw
db 0x6E ; 0111 outsb
db 0x61 ; 0112 popa
db 0x6C ; 0113 insb
db 0x20, 0x43, 0x6F ; 0114 and [bp+di+0x6f],al
db 0x6D ; 0117 insw
db 0x70, 0x75 ; 0118 jo 0x18f
db 0x74, 0x65 ; 011A jz 0x181
db 0x72, 0x20 ; 011C jc 0x13e
db 0x45 ; 011E inc bp
db 0x44 ; 011F inc sp
db 0x49 ; 0120 dec cx
db 0x54 ; 0121 push sp
db 0x4F ; 0122 dec di
db 0x52 ; 0123 push dx
db 0x0D, 0x0A, 0x56 ; 0124 or ax,0x560a
db 0x65, 0x72, 0x73 ; 0127 gs jc 0x19d
db 0x69, 0x6F, 0x6E, 0x20, 0x31 ; 012A imul bp,[bx+0x6e],word 0x3120
db 0x2E, 0x30, 0x30 ; 012F xor [cs:bx+si],dh
db 0x20, 0x28 ; 0132 and [bx+si],ch
db 0x43 ; 0134 inc bx
db 0x29, 0x43, 0x6F ; 0135 sub [bp+di+0x6f],ax
db 0x70, 0x79 ; 0138 jo 0x1b3
db 0x72, 0x69 ; 013A jc 0x1a5
db 0x67, 0x68, 0x74, 0x20 ; 013C push word 0x2074
db 0x49 ; 0140 dec cx
db 0x42 ; 0141 inc dx
db 0x4D ; 0142 dec bp
db 0x20, 0x43, 0x6F ; 0143 and [bp+di+0x6f],al
db 0x72, 0x70 ; 0146 jc 0x1b8
db 0x20, 0x31 ; 0148 and [bx+di],dh
db 0x39, 0x38 ; 014A cmp [bx+si],di
db 0x31, 0x0D ; 014C xor [di],cx
db 0x0A, 0x24 ; 014E or ah,[si]
db 0x4C ; 0150 dec sp
db 0x69, 0x63, 0x65, 0x6E, 0x73 ; 0151 imul sp,[bp+di+0x65],word 0x736e
db 0x65, 0x64, 0x20, 0x4D, 0x61 ; 0156 and [fs:di+0x61],cl
db 0x74, 0x65 ; 015B jz 0x1c2
db 0x72, 0x69 ; 015D jc 0x1c8
db 0x61 ; 015F popa
db 0x6C ; 0160 insb
db 0x20, 0x2D ; 0161 and [di],ch
db 0x20, 0x50, 0x72 ; 0163 and [bx+si+0x72],dl
db 0x6F ; 0166 outsw
db 0x67, 0x72, 0x61 ; 0167 jc 0x1cb
db 0x6D ; 016A insw
db 0x20, 0x50, 0x72 ; 016B and [bx+si+0x72],dl
db 0x6F ; 016E outsw
db 0x70, 0x65 ; 016F jo 0x1d6
db 0x72, 0x74 ; 0171 jc 0x1e7
db 0x79, 0x20 ; 0173 jns 0x195
db 0x6F ; 0175 outsw
db 0x66, 0x20, 0x49, 0x42 ; 0176 o32 and [bx+di+0x42],cl
db 0x4D ; 017A dec bp
__0102:
db 13, 10, "The IBM Personal Computer EDITOR", 13, 10
db "Version 1.00 (C)Copyright IBM Corp 1981", 13, 10
db '$'
__0150 db "Licensed Material - Program Property of IBM"
db 0xBA, 0x5C, 0x09 ; 017B mov dx,0x95c
db 0xE9, 0xFB, 0x02 ; 017E jmp 0x47c
db 0xC6, 0x06, 0x7F, 0x0A, 0x00 ; 0181 mov byte [0xa7f],0x0
@ -886,116 +834,19 @@ db 0x8E, 0xD0 ; 0933 mov ss,ax
db 0xBC, 0x48, 0x0D ; 0935 mov sp,0xd48
db 0xE8, 0xE2, 0xFF ; 0938 call 0x91d
db 0xE9, 0x35, 0xF9 ; 093B jmp 0x273
db 0x42 ; 093E inc dx
db 0x41 ; 093F inc cx
db 0x4B ; 0940 dec bx
db 0x49 ; 0941 dec cx
db 0x6E ; 0942 outsb
db 0x76, 0x61 ; 0943 jna 0x9a6
db 0x6C ; 0945 insb
db 0x69, 0x64, 0x20, 0x64, 0x72 ; 0946 imul sp,[si+0x20],word 0x7264
db 0x69, 0x76, 0x65, 0x20, 0x6F ; 094B imul si,[bp+0x65],word 0x6f20
db 0x72, 0x20 ; 0950 jc 0x972
db 0x66, 0x69, 0x6C, 0x65, 0x20, 0x6E, 0x61, 0x6D ; 0952 imul ebp,[si+0x65],dword 0x6d616e20
db 0x65, 0x24, 0x46 ; 095A gs and al,0x46
db 0x69, 0x6C, 0x65, 0x20, 0x6E ; 095D imul bp,[si+0x65],word 0x6e20
db 0x61 ; 0962 popa
db 0x6D ; 0963 insw
db 0x65, 0x20, 0x6D, 0x75 ; 0964 and [gs:di+0x75],ch
db 0x73, 0x74 ; 0968 jnc 0x9de
db 0x20, 0x62, 0x65 ; 096A and [bp+si+0x65],ah
db 0x20, 0x73, 0x70 ; 096D and [bp+di+0x70],dh
db 0x65, 0x63, 0x69, 0x66 ; 0970 arpl [gs:bx+di+0x66],bp
db 0x69, 0x65, 0x64, 0x24, 0x43 ; 0974 imul sp,[di+0x64],word 0x4324
db 0x61 ; 0979 popa
db 0x6E ; 097A outsb
db 0x6E ; 097B outsb
db 0x6F ; 097C outsw
db 0x74, 0x20 ; 097D jz 0x99f
db 0x65, 0x64, 0x69, 0x74, 0x20, 0x2E, 0x42 ; 097F imul si,[fs:si+0x20],word 0x422e
db 0x41 ; 0986 inc cx
db 0x4B ; 0987 dec bx
db 0x20, 0x66, 0x69 ; 0988 and [bp+0x69],ah
db 0x6C ; 098B insb
db 0x65, 0x2D, 0x2D, 0x72 ; 098C gs sub ax,0x722d
db 0x65, 0x6E ; 0990 gs outsb
db 0x61 ; 0992 popa
db 0x6D ; 0993 insw
db 0x65, 0x20, 0x66, 0x69 ; 0994 and [gs:bp+0x69],ah
db 0x6C ; 0998 insb
db 0x65, 0x24, 0x4E ; 0999 gs and al,0x4e
db 0x6F ; 099C outsw
db 0x20, 0x72, 0x6F ; 099D and [bp+si+0x6f],dh
db 0x6F ; 09A0 outsw
db 0x6D ; 09A1 insw
db 0x20, 0x69, 0x6E ; 09A2 and [bx+di+0x6e],ch
db 0x20, 0x64, 0x69 ; 09A5 and [si+0x69],ah
db 0x72, 0x65 ; 09A8 jc 0xa0f
db 0x63, 0x74, 0x6F ; 09AA arpl [si+0x6f],si
db 0x72, 0x79 ; 09AD jc 0xa28
db 0x20, 0x66, 0x6F ; 09AF and [bp+0x6f],ah
db 0x72, 0x20 ; 09B2 jc 0x9d4
db 0x66, 0x69, 0x6C, 0x65, 0x24, 0x44, 0x69, 0x73 ; 09B4 imul ebp,[si+0x65],dword 0x73694424
db 0x6B, 0x20, 0x66 ; 09BC imul sp,[bx+si],byte +0x66
db 0x75, 0x6C ; 09BF jnz 0xa2d
db 0x6C ; 09C1 insb
db 0x2D, 0x2D, 0x66 ; 09C2 sub ax,0x662d
db 0x69, 0x6C, 0x65, 0x20, 0x77 ; 09C5 imul bp,[si+0x65],word 0x7720
db 0x72, 0x69 ; 09CA jc 0xa35
db 0x74, 0x65 ; 09CC jz 0xa33
db 0x20, 0x6E, 0x6F ; 09CE and [bp+0x6f],ch
db 0x74, 0x20 ; 09D1 jz 0x9f3
db 0x63, 0x6F, 0x6D ; 09D3 arpl [bx+0x6d],bp
db 0x70, 0x6C ; 09D6 jo 0xa44
db 0x65, 0x74, 0x65 ; 09D8 gs jz 0xa40
db 0x64, 0x24, 0x0D ; 09DB fs and al,0xd
db 0x0A, 0x49, 0x6E ; 09DE or cl,[bx+di+0x6e]
db 0x73, 0x75 ; 09E1 jnc 0xa58
db 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6E, 0x74 ; 09E3 imul esp,[bp+di+0x69],dword 0x20746e65
db 0x20
db 0x6D ; 09EC insw
db 0x65, 0x6D ; 09ED gs insw
db 0x6F ; 09EF outsw
db 0x72, 0x79 ; 09F0 jc 0xa6b
db 0x0D, 0x0A, 0x24 ; 09F2 or ax,0x240a
db 0x45 ; 09F5 inc bp
db 0x6E ; 09F6 outsb
db 0x74, 0x72 ; 09F7 jz 0xa6b
db 0x79, 0x20 ; 09F9 jns 0xa1b
db 0x65, 0x72, 0x72 ; 09FB gs jc 0xa70
db 0x6F ; 09FE outsw
db 0x72, 0x0D ; 09FF jc 0xa0e
db 0x0A, 0x24 ; 0A01 or ah,[si]
db 0x4E ; 0A03 dec si
db 0x65, 0x77, 0x20 ; 0A04 gs ja 0xa27
db 0x66, 0x69, 0x6C, 0x65, 0x0D, 0x0A, 0x24, 0x4E ; 0A07 imul ebp,[si+0x65],dword 0x4e240a0d
db 0x6F ; 0A0F outsw
db 0x74, 0x20 ; 0A10 jz 0xa32
db 0x66, 0x6F ; 0A12 outsd
db 0x75, 0x6E ; 0A14 jnz 0xa84
db 0x64, 0x0D, 0x0A, 0x24 ; 0A16 fs or ax,0x240a
db 0x4F ; 0A1A dec di
db 0x2E, 0x4B ; 0A1B cs dec bx
db 0x2E, 0x3F ; 0A1D cs aas
db 0x20, 0x24 ; 0A1F and [si],ah
db 0x4C ; 0A21 dec sp
db 0x69, 0x6E, 0x65, 0x20, 0x74 ; 0A22 imul bp,[bp+0x65],word 0x7420
db 0x6F ; 0A27 outsw
db 0x6F ; 0A28 outsw
db 0x20, 0x6C, 0x6F ; 0A29 and [si+0x6f],ch
db 0x6E ; 0A2C outsb
db 0x67, 0x0D, 0x0A, 0x24 ; 0A2D or ax,0x240a
db 0x45 ; 0A31 inc bp
db 0x6E ; 0A32 outsb
db 0x64, 0x20, 0x6F, 0x66 ; 0A33 and [fs:bx+0x66],ch
db 0x20, 0x69, 0x6E ; 0A37 and [bx+di+0x6e],ch
db 0x70, 0x75 ; 0A3A jo 0xab1
db 0x74, 0x20 ; 0A3C jz 0xa5e
db 0x66, 0x69, 0x6C, 0x65, 0x0D, 0x0A, 0x24, 0x41 ; 0A3E imul ebp,[si+0x65],dword 0x41240a0d
db 0x62, 0x6F, 0x72 ; 0A46 bound bp,[bx+0x72]
db 0x74, 0x20 ; 0A49 jz 0xa6b
db 0x65, 0x64, 0x69, 0x74, 0x20, 0x28, 0x59 ; 0A4B imul si,[fs:si+0x20],word 0x5928
db 0x2F ; 0A52 das
db 0x4E ; 0A53 dec si
db 0x29, 0x3F ; 0A54 sub [bx],di
db 0x20, 0x24 ; 0A56 and [si],ah
__093e db "BAK"
invalid_name_error db "Invalid drive or file name$" ; 0941
filename_missing_error db "File name must be specified$" ; 095c
__0978 db "Cannot edit .BAK file--rename file$"
__099b db "No room in directory for file$"
__09b9 db "Disk full--file write not completed$"
__09dd db 13, 10, "Insufficient memory", 13, 10, '$'
__09f5 db "Entry error", 13, 10, '$'
__0a03 db "New file", 13, 10, '$'
__0a0e db "Not found", 13, 10, '$'
__0a1a db "O.K.? $"
__0a21 db "Line too long", 13, 10, '$'
__0a31 db "End of input file", 13, 10, '$'
__0a45 db "Abort edit (Y/N)? $"