home *** CD-ROM | disk | FTP | other *** search
- ifndef ??version
- ?debug macro
- endm
- endif
- ?debug S "mt.c"
- _TEXT segment byte public 'CODE'
- DGROUP group _DATA,_BSS
- assume cs:_TEXT,ds:DGROUP,ss:DGROUP
- _TEXT ends
- _DATA segment word public 'DATA'
- d@ label byte
- d@w label word
- _DATA ends
- _BSS segment word public 'BSS'
- b@ label byte
- b@w label word
- ?debug C E98E929313046D742E63
- ?debug C E900101D1115433A5C545552424F2D435C494E435C6D6174682E68
- ?debug C E900101D1117433A5C545552424F2D435C494E435C737472696E67+
- ?debug C 2E68
- ?debug C E900101D1114433A5C545552424F2D435C494E435C646F732E68
- ?debug C E900101D1116433A5C545552424F2D435C494E435C636F6E696F2E+
- ?debug C 68
- ?debug C E900101D1116433A5C545552424F2D435C494E435C737464696F2E+
- ?debug C 68
- ?debug C E900101D1117433A5C545552424F2D435C494E435C737464617267+
- ?debug C 2E68
- ?debug C E900101D1116433A5C545552424F2D435C494E435C66636E746C2E+
- ?debug C 68
- ?debug C E900101D1117433A5C545552424F2D435C494E435C7374646C6962+
- ?debug C 2E68
- ?debug C E900101D1117433A5C545552424F2D435C494E435C737464646566+
- ?debug C 2E68
- _BSS ends
- _DATA segment word public 'DATA'
- __sperre label word
- dw 0
- _DATA ends
- _TEXT segment byte public 'CODE'
- ; ?debug L 88
- _p proc near
- ; ?debug L 90
- inc word ptr DGROUP:__sperre
- @1:
- ; ?debug L 91
- ret
- _p endp
- ; ?debug L 93
- _v proc near
- ; ?debug L 95
- dec word ptr DGROUP:__sperre
- @2:
- ; ?debug L 96
- ret
- _v endp
- ; ?debug L 98
- __put_frame_char proc near
- push bp
- mov bp,sp
- ; ?debug L 102
- mov ah,2
- ; ?debug L 103
- mov bh,0
- ; ?debug L 104
- mov dh,[bp+6]
- ; ?debug L 105
- mov dl,[bp+4]
- ; ?debug L 106
- int 10h
- ; ?debug L 108
- mov ah,10
- ; ?debug L 109
- mov bh,0
- ; ?debug L 110
- mov cx,1
- ; ?debug L 111
- mov al,[bp+8]
- ; ?debug L 112
- int 10h
- @3:
- ; ?debug L 113
- pop bp
- ret
- __put_frame_char endp
- ; ?debug L 116
- _draw_box proc near
- push bp
- mov bp,sp
- push si
- ; ?debug L 120
- dec byte ptr [bp+4]
- ; ?debug L 120
- dec byte ptr [bp+8]
- ; ?debug L 120
- dec byte ptr [bp+6]
- ; ?debug L 120
- dec byte ptr [bp+10]
- ; ?debug L 122
- mov ax,-55
- push ax
- mov al,byte ptr [bp+6]
- cbw
- push ax
- mov al,byte ptr [bp+4]
- cbw
- push ax
- call near ptr __put_frame_char
- add sp,6
- ; ?debug L 123
- mov ax,-69
- push ax
- mov al,byte ptr [bp+6]
- cbw
- push ax
- mov al,byte ptr [bp+8]
- cbw
- push ax
- call near ptr __put_frame_char
- add sp,6
- ; ?debug L 124
- mov ax,-56
- push ax
- mov al,byte ptr [bp+10]
- cbw
- push ax
- mov al,byte ptr [bp+4]
- cbw
- push ax
- call near ptr __put_frame_char
- add sp,6
- ; ?debug L 125
- mov ax,-68
- push ax
- mov al,byte ptr [bp+10]
- cbw
- push ax
- mov al,byte ptr [bp+8]
- cbw
- push ax
- call near ptr __put_frame_char
- add sp,6
- ; ?debug L 127
- mov al,byte ptr [bp+4]
- cbw
- mov si,ax
- inc si
- jmp short @8
- @7:
- ; ?debug L 128
- mov ax,-51
- push ax
- mov al,byte ptr [bp+6]
- cbw
- push ax
- push si
- call near ptr __put_frame_char
- add sp,6
- ; ?debug L 129
- mov ax,-51
- push ax
- mov al,byte ptr [bp+10]
- cbw
- push ax
- push si
- call near ptr __put_frame_char
- add sp,6
- @6:
- inc si
- @8:
- mov al,byte ptr [bp+8]
- cbw
- cmp ax,si
- jg @7
- @5:
- ; ?debug L 132
- mov al,byte ptr [bp+6]
- cbw
- mov si,ax
- inc si
- jmp short @12
- @11:
- ; ?debug L 133
- mov ax,-70
- push ax
- push si
- mov al,byte ptr [bp+4]
- cbw
- push ax
- call near ptr __put_frame_char
- add sp,6
- ; ?debug L 134
- mov ax,-70
- push ax
- push si
- mov al,byte ptr [bp+8]
- cbw
- push ax
- call near ptr __put_frame_char
- add sp,6
- @10:
- inc si
- @12:
- mov al,byte ptr [bp+10]
- cbw
- cmp ax,si
- jg @11
- @9:
- @4:
- ; ?debug L 136
- pop si
- pop bp
- ret
- _draw_box endp
- ; ?debug L 138
- _stop_all_process proc near
- push si
- ; ?debug L 142
- call near ptr _p
- ; ?debug L 143
- xor si,si
- jmp short @17
- @16:
- ; ?debug L 144
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- cmp ax,si
- je @18
- ; ?debug L 144
- mov bx,si
- shl bx,1
- mov word ptr DGROUP:__stoped[bx],255
- @18:
- @15:
- inc si
- @17:
- cmp si,word ptr DGROUP:__count
- jl @16
- @14:
- ; ?debug L 145
- mov al,byte ptr DGROUP:__count
- add al,255
- mov byte ptr DGROUP:__beendet,al
- ; ?debug L 146
- call near ptr _v
- @13:
- ; ?debug L 147
- pop si
- ret
- _stop_all_process endp
- ; ?debug L 149
- _kill proc near
- push bp
- mov bp,sp
- ; ?debug L 152
- call near ptr _p
- ; ?debug L 153
- mov al,byte ptr [bp+4]
- cmp al,byte ptr DGROUP:__aktiv
- je @20
- ; ?debug L 153
- mov al,byte ptr [bp+4]
- mov ah,0
- mov bx,ax
- shl bx,1
- mov word ptr DGROUP:__stoped[bx],255
- @20:
- ; ?debug L 154
- inc byte ptr DGROUP:__beendet
- ; ?debug L 155
- call near ptr _v
- @19:
- ; ?debug L 156
- pop bp
- ret
- _kill endp
- ; ?debug L 159
- __int8_handling proc far
- push ax
- push bx
- push cx
- push dx
- push es
- push ds
- push si
- push di
- push bp
- mov bp,DGROUP
- mov ds,bp
- ; ?debug L 186
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- inc word ptr DGROUP:__p_time[bx]
- ; ?debug L 189
- mov al,byte ptr DGROUP:__beendet
- mov ah,0
- cmp ax,word ptr DGROUP:__count
- jne @32
- mov ax,1
- jmp short @31
- @32:
- xor ax,ax
- @31:
- mov dl,byte ptr DGROUP:__ctrl_break
- mov dh,0
- or ax,dx
- je @22
- ; ?debug L 194
- xor ax,ax
- ; ?debug L 195
- mov es,ax
- ; ?debug L 196
- mov si,offset DGROUP:__int8_ptr
- ; ?debug L 197
- mov di,8*4
- ; ?debug L 198
- mov cx,2
- ; ?debug L 199
- cld
- ; ?debug L 200
- rep movsw
- ; ?debug L 202
- mov byte ptr DGROUP:__beendet,0
- ; ?debug L 203
- jmp @23
- @22:
- ; ?debug L 206
- cmp word ptr DGROUP:__sperre,0
- jle @24
- ; ?debug L 206
- jmp @23
- @24:
- ; ?debug L 213
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- mov ax,word ptr DGROUP:__save_sp[bx]
- mov dx,ss
- cmp ax,dx
- je @25
- ; ?debug L 213
- jmp @23
- @25:
- ; ?debug L 216
- cmp byte ptr DGROUP:__using_windows,0
- je @26
- ; ?debug L 217
- call near ptr _wherey
- mov dl,byte ptr DGROUP:__aktiv
- mov dh,0
- mov bx,dx
- shl bx,1
- shl bx,1
- mov word ptr DGROUP:_cur_pos[bx+2],ax
- ; ?debug L 218
- call near ptr _wherex
- mov dl,byte ptr DGROUP:__aktiv
- mov dh,0
- mov bx,dx
- shl bx,1
- shl bx,1
- mov word ptr DGROUP:_cur_pos[bx],ax
- @26:
- ; ?debug L 223
- mov ax,ss
- mov dl,byte ptr DGROUP:__aktiv
- mov dh,0
- mov bx,dx
- shl bx,1
- shl bx,1
- mov word ptr DGROUP:__save_sp[bx],ax
- ; ?debug L 224
- mov ax,sp
- mov dl,byte ptr DGROUP:__aktiv
- mov dh,0
- mov bx,dx
- shl bx,1
- shl bx,1
- mov word ptr DGROUP:__save_sp[bx+2],ax
- ; ?debug L 228
- mov cx,DGROUP:__count
- ; ?debug L 229
- mov di,offset DGROUP:__stoped
- ; ?debug L 230
- mov si,offset DGROUP:__p_time
- ; ?debug L 231
- xor bx,bx
- ; ?debug L 232
- mov ax,0FFFFH
- @27:
- ; ?debug L 234
- cmp word ptr[di],0
- ; ?debug L 235
- jne @28
- ; ?debug L 236
- cmp ax,[si]
- ; ?debug L 237
- jbe @28
- ; ?debug L 238
- mov ax,[si]
- ; ?debug L 239
- mov DGROUP:__aktiv,bl
- @28:
- ; ?debug L 241
- add di,2
- ; ?debug L 242
- add si,2
- ; ?debug L 243
- inc bx
- ; ?debug L 244
- loop @27
- ; ?debug L 247
- mov cx,DGROUP:__count
- ; ?debug L 248
- mov di,offset DGROUP:__p_time
- @29:
- ; ?debug L 250
- sub [di],ax
- ; ?debug L 252
- add di,2
- ; ?debug L 253
- loop @29
- ; ?debug L 256
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- mov ss,word ptr DGROUP:__save_sp[bx]
- ; ?debug L 257
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- mov sp,word ptr DGROUP:__save_sp[bx+2]
- ; ?debug L 260
- cmp byte ptr DGROUP:__using_windows,0
- jne @33
- jmp @30
- @33:
- ; ?debug L 261
- ; ?debug L 262
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- shl bx,1
- push word ptr DGROUP:_def_w[bx+6]
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- shl bx,1
- push word ptr DGROUP:_def_w[bx+4]
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- shl bx,1
- push word ptr DGROUP:_def_w[bx+2]
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- shl bx,1
- push word ptr DGROUP:_def_w[bx]
- call near ptr _window
- add sp,8
- ; ?debug L 263
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- push word ptr DGROUP:_cur_pos[bx+2]
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- shl bx,1
- push word ptr DGROUP:_cur_pos[bx]
- call near ptr _gotoxy
- pop cx
- pop cx
- @30:
- @23:
- ; ?debug L 267
- pushf
- ; ?debug L 268
- call dword ptr ds:DGROUP:__int8_ptr
- @21:
- ; ?debug L 269
- pop bp
- pop di
- pop si
- pop ds
- pop es
- pop dx
- pop cx
- pop bx
- pop ax
- iret
- __int8_handling endp
- ; ?debug L 273
- _co_start proc near
- push bp
- mov bp,sp
- push si
- push di
- ; ?debug L 279
- cmp word ptr [bp+6],10
- jle @35
- ; ?debug L 282
- xor ax,ax
- push ax
- call near ptr _exit
- pop cx
- @35:
- ; ?debug L 285
- mov ax,word ptr [bp+8]
- mov word ptr DGROUP:__first_process,ax
- ; ?debug L 286
- mov ax,word ptr [bp+6]
- mov word ptr DGROUP:__count,ax
- ; ?debug L 287
- mov byte ptr DGROUP:__beendet,0
- ; ?debug L 288
- mov byte ptr DGROUP:__ctrl_break,0
- ; ?debug L 289
- mov byte ptr DGROUP:__aktiv,0
- ; ?debug L 290
- mov al,byte ptr [bp+4]
- mov byte ptr DGROUP:__using_windows,al
- ; ?debug L 292
- mov word ptr DGROUP:__j,1
- jmp @39
- @38:
- ; ?debug L 293
- mov bx,word ptr DGROUP:__j
- shl bx,1
- mov word ptr DGROUP:__stoped[bx],0
- ; ?debug L 294
- mov bx,word ptr DGROUP:__j
- shl bx,1
- mov word ptr DGROUP:__p_time[bx],0
- ; ?debug L 297
- mov ax,2000
- ; ?debug L 298
- mov bx,DGROUP:__j
- ; ?debug L 299
- inc bx
- ; ?debug L 300
- mul bx
- ; ?debug L 301
- add ax,offset DGROUP:__stack
- ; ?debug L 302
- sub ax,2
- ; ?debug L 303
- mov di,ax
- ; ?debug L 308
- mov [di],offset _return_adresse
- ; ?debug L 309
- pushf
- ; ?debug L 310
- pop [di-2]
- ; ?debug L 311
- mov bx,DGROUP:__j
- ; ?debug L 312
- shl bx,1
- ; ?debug L 316
- add bx,8
- ; ?debug L 317
- add bx,bp
- ; ?debug L 319
- mov ax,cs
- ; ?debug L 320
- mov [di-4],ax
- ; ?debug L 325
- mov ax,ss:[bx]
- ; ?debug L 326
- mov [di-6],ax
- ; ?debug L 327
- mov [di-16],es
- ; ?debug L 328
- mov [di-18],ds
- ; ?debug L 331
- mov ax,di
- add ax,-24
- mov bx,word ptr DGROUP:__j
- shl bx,1
- shl bx,1
- mov word ptr DGROUP:__save_sp[bx+2],ax
- ; ?debug L 332
- mov ax,ds
- mov bx,word ptr DGROUP:__j
- shl bx,1
- shl bx,1
- mov word ptr DGROUP:__save_sp[bx],ax
- @37:
- inc word ptr DGROUP:__j
- @39:
- mov ax,word ptr DGROUP:__j
- cmp ax,word ptr DGROUP:__count
- jge @47
- jmp @38
- @47:
- @36:
- ; ?debug L 335
- mov ax,ds
- mov word ptr DGROUP:__save_sp,ax
- ; ?debug L 338
- mov ax,8
- push ax
- call near ptr _getvect
- pop cx
- mov word ptr DGROUP:__int8_ptr+2,dx
- mov word ptr DGROUP:__int8_ptr,ax
- ; ?debug L 341
- push cs
- mov ax,offset __int8_handling
- push ax
- mov ax,8
- push ax
- call near ptr _setvect
- add sp,6
- ; ?debug L 343
- mov ax,ss
- mov word ptr DGROUP:__s_ss,ax
- ; ?debug L 344
- mov ax,sp
- mov word ptr DGROUP:__s_sp,ax
- ; ?debug L 346
- mov ax,ds
- ; ?debug L 347
- mov ss,ax
- ; ?debug L 348
- mov sp,offset DGROUP:__stack+2000
- ; ?debug L 350
- cmp byte ptr DGROUP:__using_windows,0
- je @40
- ; ?debug L 351
- ; ?debug L 352
- push word ptr DGROUP:_def_w+6
- push word ptr DGROUP:_def_w+4
- push word ptr DGROUP:_def_w+2
- push word ptr DGROUP:_def_w
- call near ptr _window
- add sp,8
- @40:
- ; ?debug L 357
- call word ptr [DGROUP:__first_process]
- ; ?debug L 360
- _return_adresse :
- ; ?debug L 362
- inc byte ptr DGROUP:__beendet
- ; ?debug L 363
- mov al,byte ptr DGROUP:__aktiv
- mov ah,0
- mov bx,ax
- shl bx,1
- mov word ptr DGROUP:__stoped[bx],255
- ; ?debug L 364
- jmp short @41
- @43:
- @41:
- ; ?debug L 364
- mov al,byte ptr DGROUP:__beendet
- mov ah,0
- cmp ax,word ptr DGROUP:__count
- jl @43
- @42:
- ; ?debug L 367
- jmp short @44
- @46:
- @44:
- ; ?debug L 367
- cmp byte ptr DGROUP:__beendet,0
- jne @46
- @45:
- ; ?debug L 370
- mov ss,word ptr DGROUP:__s_ss
- ; ?debug L 371
- mov sp,word ptr DGROUP:__s_sp
- @34:
- ; ?debug L 373
- pop di
- pop si
- pop bp
- ret
- _co_start endp
- _TEXT ends
- _BSS segment word public 'BSS'
- __j label word
- db 2 dup (?)
- __s_sp label word
- db 2 dup (?)
- __s_ss label word
- db 2 dup (?)
- __stack label word
- db 40000 dup (?)
- __stoped label word
- db 20 dup (?)
- __p_time label word
- db 20 dup (?)
- _def_w label word
- db 80 dup (?)
- __count label word
- db 2 dup (?)
- __aktiv label byte
- db 1 dup (?)
- _cur_pos label word
- db 40 dup (?)
- __save_sp label word
- db 40 dup (?)
- __beendet label byte
- db 1 dup (?)
- __int8_ptr label dword
- db 4 dup (?)
- __ctrl_break label byte
- db 1 dup (?)
- __using_windows label byte
- db 1 dup (?)
- __first_process label word
- db 2 dup (?)
- _BSS ends
- ?debug C E9
- _DATA segment word public 'DATA'
- s@ label byte
- _DATA ends
- _TEXT segment byte public 'CODE'
- extrn _setvect:near
- extrn _wherey:near
- extrn _wherex:near
- extrn _getvect:near
- extrn _window:near
- extrn _gotoxy:near
- extrn _exit:near
- _TEXT ends
- public __first_process
- public __using_windows
- public __int8_handling
- public __ctrl_break
- public __int8_ptr
- public _draw_box
- public _co_start
- public __beendet
- public __save_sp
- public _cur_pos
- public __aktiv
- public __count
- public _def_w
- public __sperre
- public __p_time
- public __stoped
- public __stack
- public __s_ss
- public __s_sp
- public _kill
- public _v
- public _p
- public __j
- public _stop_all_process
- public __put_frame_char
- end