ZXNet эхоконференция «code.zx»


тема: MMD4.00: overlay



от: Igor Krauklis
кому: All
дата: 09 Jul 1999


Уважаемый All.

Вот, зависает Post-station в этих заборах. Глюка такого, чтобы
станция зависала, я найти не могу.

Пиплы, поможите, чем можите! Hайдите глюк! (мой или фатальный
Масовый)...


INT'ы прилагаются в конце.

Вот заборный оверлей:

;
; Доска пользователей
;
;&V - номер текущего забора
;$N - его название
~0=0

OVERLAY
. Заборы
CP @NAME User
JPZ _locden
FAST
&V=1
CALL _locload
RES %080
_zabor1
<#0C
< Bulletin system v4.1 by Igor K.
_ReadZ
.rd
_ReadZ0 &8=@MAX_FEN
IF &8=0
? $0=#0d#0d#0d#20#20#20#20Мессагов#20нет~!~#0d#0d#0d
? &9=666
? &8=666
? JP _RepZ
IF &8=1
? &9=1
? JP _ReadZ1
PAUSE 15
NORMAL
<
<
< С какого мессага будешь читать ?
<(можно от 1 до &8).
WSTR
FAST
CALL _strnum
IF &2!0
? &9=@MAX_FEN
_ReadZ1
FAST
$8=
IF &9=0
? &9=1
IF &9>&8
? &9=&8
$7=
JPIF @MAX_FEN=0 _ReadZ0
DEC &9
SETFEN &9
PRIFEN $0
$6=$0(0 7)
CP $6 [cont:01
JPNZ _ReadZ1_1
JPIF &9<1 _ReadZ1_1
JP _ReadZ1

_ReadZ1_1 INC &9
SETFEN &9
PRIFEN $5
$6=$5(0 7)
CP $6 [cont:01
JPZ _ReadZ1_2
RES %080
$5=
JP _RepZ
_ReadZ1_2 SET %080
&1=11
&0=@$5-&1
_loops $7=$7$5(&1)
INC &1
DJNZ &0 _loops
$8=~+add~
_RepZ
NORMAL
<#0C;
<[&V/7]: $N
<[&9(3)/&8(3)] $8
<
<$0;
<$7
<
<
<- + = n w a s < > z m q "H" - HELP
RES %071
CLEARIN
WCHR
FAST
SET %071
INT 0
JPON $E "-" _PrevZ "+" _NextZ "=" _RepZ "N" _ReadZ "W" _WritZ "A" _ReplZ "S"
_sel_b "<" _PrevB2 ">" _NextB2 "M" _WrTo
JPON $E "Z" _ReadB2
JPON $E "O" _PrevZ "P" _NextZ "L" _RepZ "1" _ReadZ "2" _WritZ "3" _ReplZ "4"
_sel_b "7" _PrevB2 "6" _NextB2 "8" _WrTo
JPON $E "5" _ReadB2
JPON $E 13 _NextZ "H" _HelpZa "Q" _rett "0" _rett
JP _RepZ
;
_rett
NORMAL
RET
_HelpZa
CALL _HelpZ
JP _RepZ
_ReadB2
CALL _ReadB
JP _ReadZ
_NextB2
CALL _NextB
JP _ReadZ
_PrevB2
CALL _PrevB
JP _ReadZ
;=======================================
_NextZ JPIF &9=&8 _ReadZ1
INC &9
IF %080=1
? INC &9
IF &9>&8
? &9=&8
JP _ReadZ1

_PrevZ JPIF &9=1 _ReadZ1
DEC &9
JP _ReadZ1
;=======================================
_sel_b
.select subj
NORMAL
<#0C
< Выберите тему
<
<текущая: $N
<
<1 - общие разговоры
<2 - бизнес
<3 - музыка
<0 - выход
WCHR
FAST
JPON $E "0" _RepZ
JPNZ _RepZ
CALL _ReadB_1
JP _ReadZ
;=======================================
_ReadB
NORMAL
<
<
<Текущая тема: $N
<
< Какую доску будешь читать (1..3) ?
WCHR
FAST
JPIF @$E=0 _NextB
_ReadB_1 IF $E="1"
? &V=1
IF $E="2"
? &V=2
IF $E="3"
? &V=3
JP _locload
;=======================================
_PrevB
IF &V=1
? &V=&3
DEC &V
JP _locload


;=======================================
_NextB
IF &V=3
? &V=1
INC &V
JP _locload

;=======================================
_WrTo
FAST
.wrto
&3=0
$1=$0(0 40)
FND_WORD $1 &3 ~from~
JPNZ _wrtoerr
&3=0
FND_WORD $1 &3 ~[cont~
JPNZ _wrto1
_wrtoerr
NORMAL
<
PAUSE 70
FAST
JP _RepZ
_wrto1
&3=0
FND_WORD $0 &3 ~User~
JPNZ _wrto2
NORMAL
<
< Он же не имеет адреса !
PAUSE 70
FAST
JP _RepZ
_wrto2
$9=$0(51 56)
$9=$9$0(58 59)
$9(3)=-
$9=$9#16C
$0=$0(24 59)
&3=0
&0=0
$1=#20
FND_WORD $0 &3 $1
FND_WORD $0 &3 $1
DEC &3
DEC &3
$1=(500:812/
$1=$1$0(31 35)
$1=$1)
$4=$0(0 &3)#20$1
CALL _noto_mail
CALL _locload
JP _ReadZ1

;=======================================
_ReplZ
.rpl
&3=0
$1=$0(0 40)
FND_WORD $1 &3 ~from~
JPNZ _rplerr
&3=0
FND_WORD $1 &3 ~[cont~
JPNZ _replz1
_rplerr
.rplerr
NORMAL
<#0C
<
<~Я не вижу на сим манускрипте имени !~
<
PAUSE 70
FAST
JP _RepZ

_replz1
$3=~to : ~
$2=$0(24 59)
$3=$3$2
CALL _conv_netaddr

$0=#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#
20#20#20#20#20#20
$0(23 30)=~500:812/~
$1=@NAME#20@FAM
&5=@$1
DEC &5
$0(0 &5)=@NAME#20@FAM
NORMAL
<#0c
<@TIME @DATE
<$3#0D#20;
&0=0
WTXT 150
FAST
$1=$E
$0=@TIME#20@DATE#0Dfrom:#20$0$4$3#0d#20$1
JPNZ _autoadd_repl
JP _replz0
;
_autoadd_repl
INC &0
.autoadd, &0
ADDFEN $0
&8=@MAX_FEN
JPZ _aa_repl1
.! @TIME Ошибка записи @ERR
NORMAL
<#0E
< Ошибка сохранения !!!
FAST
JP _ReadZ1

_aa_repl1
NORMAL
WTXT 240
$0=[cont:&0(2)]#0D#0D$E
JPNZ _autoadd_repl
JP _WritZ1

;
_autoadd_writ
INC &0
.autoadd, &0
ADDFEN $0
&8=@MAX_FEN
JPZ _aa_writ1
.! @TIME Ошибка записи @ERR
NORMAL
<#0E
< Ошибка сохранения !!!
FAST
JP _ReadZ1

_aa_writ1
NORMAL
WTXT 240
FAST
$0=[cont:&0(2)]#0D#0D$E
JPNZ _autoadd_repl
JP _WritZ1

;=======================================
_WritZ
.cr_m
CALL _conv_netaddr

$0=#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#20#
20#20#20#20#20#20
$0(23 30)=~500:812/~
$1=@NAME#20@FAM
&5=@$1
DEC &5
$0(0 &5)=@NAME#20@FAM
NORMAL
<#0c
<@TIME @DATE
&0=0
WTXT 190
FAST
$1=$E
$0=@TIME#20@DATE#0Dfrom:#20$0$4#0D#0D$1
JPNZ _autoadd_writ
_replz0
_WritZ1
NORMAL
<#0C
<$0
<
<
<1(L) - review 2(e) - save
<3(D) - add 0(Q) - exit;
RES %071
CLEARIN
WCHR
FAST
SET %071
INT 0
JPON $E "3" _addzab "2" _addzabf_0 "0" _ReadZ1
JPON $E "D" _addzab 13 _addzabf_0 "Q" _ReadZ1
JP _WritZ1
;
_addzabf_0
CALL _addzabfen
JP _ReadZ1
_addzab
INC &0
.add, &0
CALL _addzabfen
NORMAL
<#0C
<[cont:&0(2)]
<
WTXT 240
FAST
$0=[cont:&0(2)]#0D#0D$E
JP _WritZ1

;=======================================
_addzabfen
NORMAL
<
<
FAST
ADDFEN $0
.wr @ERR
&8=@MAX_FEN
RETZ
NORMAL
.! @TIME Ошибка записи
<
< ~Внимание! Ошибка!~
< ~Hевозможно записать доску сообщений!~
<
PAUSE 50
RET
;=======================================
_locden
.printbadscr
NORMAL
<#0C
<
< Да ты, как я залукаю, юзерок ?!
< ,,,
< ┌───┐
< c│c c│) .────────────────────────────.
< ┌┘ l │ <<─┤Он USER !!! Замочить его !!!│
< ( __└┐ .────────────────────────────.
< OO┌┘ (доска прибита гвоздями
< __/ на стенку)
<
< Лиснай лучше виниловые пляски !
< впадло юзерам по заборам кости мять.
&0=0
JP _waitent
;=======================================
_waitent
<
< enter[√];
_we0 RES %071
CLEARIN
WSTR
JPNZ _we0
SET %071
RET
;=======================================
_HelpZ
.help
<#0C;
< Используемые кнопки.
< ____________________
<
<- O - назад
<+ P - вперед
<= L - повтор мессаги
<< 7 - предыдущая доска
<> 6 - следующая доска
< H - этот мануал
<
< Система досок сделана Igor K.
< Ценные советы давал FK0.
< Помогал тестировать - Vitaliy Buzov.
JP _waitent

;=======================================
;in: $E - строка с числом
;out: &2=0 - o.k.
; &2=1 - ошибка "пустая строка"
; &2=2 - ввели не число
; &9 - искомое число
;use: &3,&4
_strnum
&2=1
RETIF @$E=0
IF @$E>3
? .ввел большое число $E
? RET
&2=@$E
&3=0
&9=0
_strnum_1
&4=$E(&3)
INC &3
JPIF &4=13 _strnum_2
JPIF &4<"0" _strnum_3
JPIF &4>"9" _strnum_3
&4=&4-"0"
&9=&9*10+&4
DJNZ &2 _strnum_1
_strnum_2
&2=0
RET
_strnum_3
&2=2
RET
;=======================================
_conv_netaddr
$4=@ADDR
; $4=$4(4 7)
; $4=$4(0 1)#2E$4(2 3)
RET
;=======================================
_locload
FAST
IF &V=1
? $0=bulb1 z
? $N=~общие разговоры~
IF &V=2
? $0=bulb2 z
? $N=~бизнес~
IF &V=3
? $0=bulb3 z
? $N=~музыка~
<#0Cloading...;
.ld &V
IF @DISK!~0
? DISK ~0
UNSEL_ALL
SEL $0
JPIF @MARK=0 _locload1
UNSEL_ALL
LDFEN $0
UNSEL_ALL
RETZ
.ОШИБКА ЗАБОРА @ERR
.делаем обрыв связи
<
<Внимание!
< Станиция перешла на системную метку !
< Перезвоните через 10 минут.
INT 1
.int не выполнен
ret
_locload1
.+ @TIME Создание новой доски
OPEN_MEM
FILL_MEM 8 5115
SAVE_MEM $0
LDFEN $0
RETZ
<
<Ошибка диска !
< Дальнейшая работа невозмона.
<
<
.! @TIME ERROR файла доски
PAUSE 70
APOP
RET

;
;
; кусок Оверля написания письма
;
;
;in:
; &0=4 - авто (to не спрашивает)
; расш. не ставит сама
; (адрес спрашивается в начале)
;out: mail
;
;Диск для писем
~0=0
;
;=======================================
_noto_mail
_nt_mail2 CALL _read_subj
JPIF &1=233 _nt_mail2
$1=$E
;
_read_other
$F=
$G=
$H=
$I=
$J=
$K=
$L=
_ro1
<#0c;




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Intro - Вступление.
КлинМозгов - "Поднялся я из могилы, досмерти напугав какого-то бомжа"...
Гость - В гостях хакер TIHS из группы "MAKPO TABURETKA".

В этот день...   23 октября