ZXNet эхоконференция «code.zx»
тема: керналь
от: 500:812/00.00
кому: Yaroslav Kozlov
дата: 23 May 1998
Привет, Yaroslav !
AM>> NAME01 EQU 00
AM>> NAME02 EQU 01
AM>> и т.д. (вместо NAME?? более-менее читаемое имя)
YK> Зачем??
YK> ORG TABLE
YK> DEFW PROG1
YK> DEFW PROG2
YK> DEFW PROG3
YK> ....
А ты ориентируешься по _HОМЕРУ_ функции?????
А если этих функций около сотни,
то что делает 55-я, и какой номер у
ф-ции "ПЕРЕДАТЬ В ЛИHИЮ СИМВОЛ ИЗ [A]"?
[ ]
AM>> а используется так:
AM>> RST 16: DB _MENU
AM>> RST 16: DB _PRINT
AM>> DB "Hello All!",0
YK> BASIC 48....
зато это наглядно
по крайней мере для меня!
вот пара примеров:
============================================
цель - мне надо вывести "галочеку"
в зависимости от флагов:
: бит вызов функции куда
STP_T BIT 0,(IY-81): RST 16: DB _ON_OFF: DW ST_ECHO
BIT 1,(IY-81): RST 16: DB _ON_OFF: DW ST_EPOI
BIT 3,(IY-81): RST 16: DB _ON_OFF: DW ST_INBF
BIT 4,(IY-81): RST 16: DB _ON_OFF: DW ST_PRIN
BIT 5,(IY-81): RST 16: DB _ON_OFF: DW ST_PWRC
BIT 6,(IY-81): RST 16: DB _ON_OFF: DW ST_KIBF
BIT 7,(IY-81): RST 16: DB _ON_OFF: DW ST_PRKE
BIT 7,(IY-68): RST 16: DB _ON_OFF: DW ST_TIME
BIT 7,(IY-80): RST 16: DB _ON_OFF: DW ST_FILE
RET
;******************************
а вот пример работы с менюхами:
STP_SERV CALL STP_S
LD IX,WSETUPS
RST 16: DB _OPEN_WIN
STP_SS RST 16: DB _MENU : RET C
[ ]
тут мы вводим какое-то число
STP_SS6 RST 16: DB _PRINT,AT,6,26,0
LD HL,SS_OBUF
RST 16: DB _INP_3NUM
JR C,NSTP_SS
LD (OUT_DELAY),A
JR NSTP_SS
;********************************
а вот тут мы выводим инфу о диске:
;ВЫВОД FILES,DEL,FREE,MARK,SIZE
PRINT_INFO1 POP HL
PRINT_INFO BIT 7,(IY-69): RET Z
LD A,(IX+30) ; ФАЙЛОВ
LD HL,INF_FL: RST 16: DB _DECO_NUM
LD A,(IX+33) ; СТЕРТЫХ
LD HL,INF_DL: RST 16: DB _DECO_NUM
LD A,(IX+26) ; ОТМЕЧЕHЫХ
LD HL,INF_SL: RST 16: DB _DECO_NUM
LD C,(IX+31): LD B,(IX+32) ;FREE
LD HL,INF_FR : CALL DECODE_BC4
LD C,(IX+27): LD B,(IX+28) ;MARK
LD HL,INF_SZ: CALL DECODE_BC4
PUSH IX: LD IX,MID_WIN
RST 16: DB _PRINT
DB AT,0,7
INF_FL DB " ",AT,1,7
INF_DL DB " ",AT,2,6
INF_FR DB " ",AT,3,7
INF_SL DB " ",AT,4,6
INF_SZ DB " ",AT,8,8
INF_ST DB 32,0
POP IX : RET
;**************************
ну как, можно понять?
[ ]
AM>> а использовать принцип Ис-доса
AM>> LD C,??? : RST 16 - в сад!
YK> Я его совсем не использую...
т.е. юзаешь
LD r,?: CALL adr
что-ли?
с _моей_ точки зрения - потери памяти
(по 2 байта на вызов),
а вызовов (у меня) сотни!
[ ]
YK> Там могут, конечно быть везде фиксиро-
YK> ванные обращения по CALL. Я имею ввиду
YK> "чужие обращения на керналь". Вот тут,
YK> уж вряд ли, что сделать можно. Раз, уж
для "чужих обращений" я использую
тот-же RST 16!
примеры "чужих обращений" - внешний setup
для 2.20, оверлей статистики для 4.00...
как оказалось - удобно!
(хотя это только мое мнение)
Hу вот и все
*MAS* с кувалдой
-+- ручки [левая и правая]
|