kernal (51 characters per line.)

ZXNet echo conference «code.zx»

From 500:812/00.00 To Yaroslav Kozlov 22 May 1998

Hello Yaroslav! AM>> can you please tell me more about these methods? AM>> and right now my kernel restart takes 4.00 AM>> a lot of space, little memory, but somehow external AM>> blocks need to use the system... YK> The same thing, almost, only without JP. Never- YK> broken address table (I have an even This is actually what I use... from 2.20... YK> low byte). LD R,n: RST.. , and there it is YK> at your discretion, n is the subroutine number. YK> The convenience of the method is obvious. About speed: speed is not important, but your method didn’t work, eats up a lot of memory on LD R,n: RST, besides, I have about a hundred restart p/p right now, remember _numbers_ - I would go nuts! I remember the _NAMES_ of restarts, and since the kernel changes frequently, and fill in “descriptors” via EQU type NAME01 EQU 00 NAME02 EQU 01 etc. (instead of NAME?? a more or less readable name) and changing numbers manually doesn’t suit me, then I entered “automation” - I numbered I don’t know, ZASM itself sets them up... _IT_ looks like this: ┌───────────────────── ─────────────────────┐ T_RST16 ;TEAM RST #10 _WAIT_KEYR EQU $-T_RST16: DW WAIT_KEY_D _MENU EQU $-T_RST16: DW MENU _MENU_SUBR EQU $-T_RST16: DW MENU_SUBR_INPUT EQU $-T_RST16: DW INPUT _INP_3NUM EQU $-T_RST16: DW INP_3NUM _INPUT_NAME EQU $-T_RST16: DW INPUT_NAME _PRINT EQU $-T_RST16: DW PRINT _PRI_COL EQU $-T_RST16: DW PRI_COL _PRI_SYS EQU $-T_RST16: DW PRI_SYS _PRI_TERM EQU $-T_RST16: DW PRI_TERM _TERM_CHR EQU $-T_RST16: DW TERM_CHR _RD_VAL EQU $-T_RST16: DW SYS_CVAL _WR_VAL EQU $-T_RST16: DW SYS_PUTV ;************************************* FOR_RST16 DW SUBR_RST16 SUBR_RST16 POP DE ;СHЯЛИ #15FE POP DE ;СHЯЛИ HL' POP HL ;АДРЕС ВОЗВРАТА INC HL : PUSH HL : DEC HL PUSH AF LD L,(HL): LD H,T_RST16/256 LD A,(HL): INC L: LD H,(HL): LD L,A POP AF: PUSH HL: EX DE,HL: EXX: RET └──────────────────────────────────────────┘ а используется так: RST 16: DB _MENU RST 16: DB _PRINT DB "Hello All!",0 а при компиляции значения "_MENU", "_PRINT" и т.п. сами вычисляться (еснно младший байт четный), да и ваще у таблицы адресов T_RST16 младщий байт =#00 а использовать принцип Ис-доса LD C,??? : RST 16 - в сад! Hу вот и все *MAS* с кувалдой -+- ручки [левая и правая]