Top secrets sources NedoPC pentevo

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 21.10.2012 savelij

RCALL           MACRO ADDR
                LD SP,RADDR
                JP ADDR
RADDR           DW $+2
                ENDM

ENT_DEF         MACRO V1,V2,V3,V4
                DB V1+V2*4+V3*16+V4*64
                ENDM

_KS_SHFT        EQU 0
_KS_CTRL        EQU 1
_KS_ALT         EQU 2
_KS_SHFT2       EQU 3
_KS_CAPS        EQU 4
_KS_NUM         EQU 5
_KS_SCROLL      EQU 6
_KS_RUS         EQU 7

ED_PROC         EQU 0
ED_CHAR         EQU 1
ED_SCAN         EQU 2

ED_INI          EQU 0
_RU5            EQU 0
_INTOF          EQU 5

BIOS            EQU 0EA00H
CCP             EQU BIOS-1600H

_RESET          EQU 0
_SEEK           EQU 1
_FORMAT         EQU 2
_RECAL          EQU 3
_READ           EQU 4
_WSECT          EQU 5
_WRITE          EQU 6
_SETCH          EQU 7
_GETCH          EQU 8

;------------------------------
; ERRORS CODES FOR C_STAT
;
CS_UNKNO        EQU   0FFH    ; UNKNOWN FUNCTION
CS_ERSEC        EQU   80H     ; WRONG SEQUENCE
CS_UNPRN        EQU   81H     ; UNPRINTABLE CHAR IN SEQUENCE
CS_NODRV        EQU   82H     ; DRIVER NOT INSTALLED
CS_ERPAR        EQU   83H     ; WRONG PARAMETERS
CS_NOMOD        EQU   84H     ; SCREEN MODE DOES NOT EXIST
; TEXT MODE ERRORS
CST_OVER        EQU   1       ; CAN'T WRITE OVER

ADRD            EQU   7DFDH

_TF_CURATR      EQU 0        ; CURSOR IS FLEX ATTRIB

;----------------------------
; ŠŽ„› Ž˜ˆŽŠ, ‚Ž‡‚€™€…Œ›… „ˆ‘ŠŽ‚Ž‰ ‘ˆ‘’…ŒŽ‰
;
_ADRERR         EQU     08H     ;Ž˜ˆŠ€ €„…‘€–ˆˆ
_CHNFND         EQU     09H     ;Š€€‹ … ˆ‘Ž…„ˆ…
_HRDERR         EQU     40H     ;Ž˜ˆŠ€ €€€’“›
_INVALID        EQU     41H     ;…‘ŽŽ’‚…’‘’‚ˆ… „€‰‚…€ €€€’“…
_DTYPER         EQU     50H     ;…„Ž“‘’ˆŒ›‰ ŽŒ… „€‰‚…€ ‚ Š€€‹…
_DRNFND         EQU     51H     ;„€‰‚… Ž’‘“’‘’‚“…’
_COMERR         EQU     52H     ;‡€…™…€Ÿ ŠŽŒ€„€
_IOERR          EQU     53H     ;Ž˜ˆŠ€ ‚‚Ž„€/‚›‚Ž„€
_WR_PROT        EQU     54H     ;‡€™ˆ’€ Ž’ ‡€ˆ‘ˆ
_FATAL_ERROR    EQU     56H     ;… Ž€Ž’€€Ÿ ”€’€‹œ€Ÿ Ž˜ˆŠ€
_NRDY           EQU     59H     ;…’ ƒŽ’Ž‚Ž‘’ˆ €€€’“› (TIMEOUT)

_NO_DATA        EQU     81H     ;‘…Š’Ž … €‰„…
_NO_ADDR_MARK   EQU     82H     ;€„…‘›‰ Œ€Š… … €‰„…
_OVERRUN        EQU     83H     ;OVERRUN
_CRC_ERR        EQU     84H     ;Ž˜ˆŠ€ ‚ CRC

MAXDRVN         EQU     7       ;Œ€Š‘ˆŒ€‹œ›‰ ŽŒ… „€‰‚…€

IOBYTE          EQU     3

SYS_SP          EQU 0X8000

ED_BUF          EQU 0X7F40                      ;DS  128
MAXQUI          EQU 10H                         ; KEYBUFFER SIZE
BEGQUI          EQU ED_BUF+0X80                 ;DS  MAXQUI

IX_BAS          EQU 0X5F40
IX_SHIFT        EQU 0X7F
IX_BASE         EQU IX_BAS+IX_SHIFT

; VARIABLES IX RELATIVE
FLAG            EQU IX_BAS      ;DB 0           ;       DM     FLAG   1      <DEFB 0         >
FLAG1           EQU FLAG+1      ;DB 0           ;       DM     FLAG1  1      <DEFB 0         >

CUR_X           EQU FLAG1+1     ;DB 0           ;       DM     CUR_X  1      <DEFB 0         >
CUR_Y           EQU CUR_X+1     ;DB 0           ;       DM     CUR_Y  1      <DEFB 0         >
W_X1            EQU CUR_Y+1     ;DB 0           ;       DM     W_X1   1      <DEFB 0         >
W_Y1            EQU W_X1+1      ;DB 0           ;       DM     W_Y1   1      <DEFB 0         >
W_X2            EQU W_Y1+1      ;DB 50          ;       DM     W_X2   1      <DEFB 50        >
W_Y2            EQU W_X2+1      ;DB 24          ;       DM     W_Y2   1      <DEFB 24        >
COLOR_P         EQU W_Y2+1      ;DB 0           ;       DM     COLOR_P 1     <DEFB 0         >
COLOR_I         EQU COLOR_P+1   ;DB 7           ;       DM     COLOR_I 1     <DEFB 7         >
C_STAT          EQU COLOR_I+1   ;DB 0           ;       DM     C_STAT 1      <DEFB 0         >
T_FLAG          EQU C_STAT+1    ;DB 0           ;       DM     T_FLAG 1      <DEFB 0         >
CUR_VAL         EQU T_FLAG+1    ;DB 0           ;       DM     CUR_VAL 1     <DEFB 0         >
SCR_ADR         EQU CUR_VAL+1   ;DW 0           ;       DM     SCR_ADR 2     <DEFW 0         >
COLOR_M         EQU SCR_ADR+2   ;DB 7           ;       DM     COLOR_M 1     <DEFB 7         >
SAV_CUR         EQU COLOR_M+1   ;DB 0           ;       DM     SAV_CUR 1     <DEFB 0         >

MEMDSP          EQU SAV_CUR+1   ;DB 0X11        ;       DM     MEMDSP 1      <DEFB 11H       >
C_CNT           EQU MEMDSP+1    ;DB 1           ;       DM     C_CNT  1      <DEFB 1         >
C_MAX           EQU C_CNT+1     ;DB 10          ;       DM     C_MAX  1      <DEFB 10        >
C_BEG           EQU C_MAX+1     ;DB 7           ;       DM     C_BEG  1      <DEFB 7         >
C_END           EQU C_BEG+1     ;DB 8           ;       DM     C_END  1      <DEFB 8         >
TMP_W           EQU C_END+1     ;DW 0           ;       DM     TMP_W  2      <DEFS 2         >
C_ACT           EQU TMP_W+2     ;DB 1           ;       DM     C_ACT  1      <DEFB 1         >
BEEP_D          EQU C_ACT+1     ;DW 0X3F10      ;       DM     BEEP_D 2      <DEFW 3F10H     >
FE_IMG          EQU BEEP_D+2    ;DB 0XBE        ;       DM     FE_IMG 1      <DEFB 0BEH      >
BORDER          EQU FE_IMG+1    ;DB 0           ;       DM     BORDER 1      <DEFB 0         >
SYS_P           EQU BORDER+1    ;DB 0           ;       DM     SYS_P  1      <DEFB 0         >
FUNC            EQU SYS_P+1     ;DB 0           ;       DM     FUNC   1      <DEFS 1         >
FCNT            EQU FUNC+1      ;DB 0           ;       DM     FCNT   1      <DEFS 1         >
PAR_PT          EQU FCNT+1      ;DW 0           ;       DM     PAR_PT 2      <DEFS 2         >
BCOL            EQU PAR_PT+2    ;DB 0           ;       DM     BCOL   1      <DEFB 0         >
TIME_C          EQU BCOL+1      ;DUPL 4,0       ;       DM     TIME_C 4      <DEFB 0,0,0,0   >
;  FOR KEYBOARD
K_5CNT          EQU TIME_C+4    ;DB 0           ;       DM     K_5CNT 1      <DB 0           >
K_LAST          EQU K_5CNT+1    ;DB 0           ;       DM     K_LAST 1      <DB 0           >
K_CNT           EQU K_LAST+1    ;DB 0           ;       DM     K_CNT  1      <DB 0           >
K_BUF           EQU K_CNT+1     ;DB -1          ;       DM     K_BUF  1      <DB -1          >
KEY_DEL         EQU K_BUF+1     ;DB 15          ;       DM     KEY_DEL 1     <DB 15          >
KEY_REP         EQU KEY_DEL+1   ;DB 5           ;       DM     KEY_REP 1     <DB 5           >
TAIL            EQU KEY_REP+1   ;DB 0           ;       DM     TAIL   1      <DEFB 0         >
BEEP_T          EQU TAIL+1      ;DW 0X6008      ;       DM     BEEP_T 2      <DEFW 6008H     >
BEEP_K          EQU BEEP_T+2    ;DW 0X3F04      ;       DM     BEEP_K 2      <DEFW 3F04H     >
; KB SWITCH
KEYBOARD        EQU BEEP_K+2    ;DB 0XC9,0,0    ;       DM     KEYBOARD  3    <DB 0C9H,0,0    >
READ_K          EQU KEYBOARD+3  ;DUPL 3,0       ;       DM     READ_K    3
STAT_K          EQU READ_K+3    ;DUPL 3,0       ;       DM     STAT_K    3
READA_KNW       EQU STAT_K+3    ;DUPL 3,0       ;       DM     READA_KNW 3
KB_TYP          EQU READA_KNW+3 ;DUPL 3,0       ;       DM     KB_TYP    3
K_INIT          EQU KB_TYP+3    ;DUPL 3,0       ;       DM     K_INIT    3

KS_ASH          EQU K_INIT+3    ;DB 0           ;       DM     KS_ASH    1
KS_SHIFTS       EQU KS_ASH+1    ;DB 0           ;       DM     KS_SHIFTS 1
KS_UND          EQU KS_SHIFTS+1 ;DW 0           ;       DM     KS_UND    2
KS_UNDS         EQU KS_UND+2    ;DB 0           ;       DM     KS_UNDS   1
KS_UNDS1        EQU KS_UNDS+1   ;DB 0           ;       DM     KS_UNDS1  1
I_MAX           EQU KS_UNDS1+1  ;DB 0           ;       DM     I_MAX  1
I_MIN           EQU I_MAX+1     ;DB 0           ;       DM     I_MIN  1
I_AVR           EQU I_MIN+1     ;DB 0           ;       DM     I_AVR  1
;  EDISK WORK VALUE
ED_CYL          EQU I_AVR+1     ;DB 0           ;       DM     ED_CYL 1
;  FDISK WORK VALUE
SV_SP           EQU ED_CYL+1    ;DW 0           ;       DM     SV_SP  2
;  PROTECT VALUE
RTIME           EQU SV_SP+2     ;DW 0           ;       DM     RTIME  2
;  INTERPAGE LDIR'S PARAMETERS
R8_FR           EQU RTIME;+2    ;DB 0           ;       DM     R8_FR  1
R8_TO           EQU RTIME+1;2   ;DB 0           ;       DM     R8_TO  1
;  ESC SEQUENCE PARAMS
PAR1            EQU RTIME+2     ;DB 0           ;       DM     PAR1   1
PAR2            EQU PAR1+1      ;DB 0           ;       DM     PAR2   1
PAR3            EQU PAR2+1      ;DB 0           ;       DM     PAR3   1
PAR4            EQU PAR3+1      ;DB 0           ;       DM     PAR4   1
PARR            EQU PAR4+1      ;DUPL 13,0      ;       DM     PARR   13
BUF             EQU PAR1
;  POWER ON DETECTOR
TST_1RUN        EQU PARR+13     ;DW 0           ;       DM     TST_1RUN 2
TST_IS1         EQU TST_1RUN+2  ;DB 0           ;       DM     TST_IS1  1

;‘Œ…™…ˆŸ Ž’ IX
_FLAG           EQU LOW (IX_BASE-FLAG)
_FLAG1          EQU LOW (IX_BASE-FLAG1)
_W_X1           EQU LOW (IX_BASE-W_X1)
_W_X2           EQU LOW (IX_BASE-W_X2)
_W_Y1           EQU LOW (IX_BASE-W_Y1)
_W_Y2           EQU LOW (IX_BASE-W_Y2)
_CUR_X          EQU LOW (IX_BASE-CUR_X)
_CUR_Y          EQU LOW (IX_BASE-CUR_Y)
_C_STAT         EQU LOW (IX_BASE-C_STAT)
_CUR_VAL        EQU LOW (IX_BASE-CUR_VAL)
_T_FLAG         EQU LOW (IX_BASE-T_FLAG)
_MEMDSP         EQU LOW (IX_BASE-MEMDSP)
_C_CNT          EQU LOW (IX_BASE-C_CNT)
_TMP_W          EQU LOW (IX_BASE-TMP_W)
_C_ACT          EQU LOW (IX_BASE-C_ACT)
_FE_IMG         EQU LOW (IX_BASE-FE_IMG)
_BORDER         EQU LOW (IX_BASE-BORDER)
_SYS_P          EQU LOW (IX_BASE-SYS_P)
_FUNC           EQU LOW (IX_BASE-FUNC)
_FCNT           EQU LOW (IX_BASE-FCNT)
_TIME_C         EQU LOW (IX_BASE-TIME_C)
_K_5CNT         EQU LOW (IX_BASE-K_5CNT)
_K_LAST         EQU LOW (IX_BASE-K_LAST)
_K_CNT          EQU LOW (IX_BASE-K_CNT)
_K_BUF          EQU LOW (IX_BASE-K_BUF)
_TAIL           EQU LOW (IX_BASE-TAIL)
_KS_ASH         EQU LOW (IX_BASE-KS_ASH)
_KS_SHIFTS      EQU LOW (IX_BASE-KS_SHIFTS)
_KS_UND         EQU LOW (IX_BASE-KS_UND)
_KS_UNDS        EQU LOW (IX_BASE-KS_UNDS)
_I_MAX          EQU LOW (IX_BASE-I_MAX)
_I_MIN          EQU LOW (IX_BASE-I_MIN)
_ED_CYL         EQU LOW (IX_BASE-ED_CYL)
_PAR1           EQU LOW (IX_BASE-PAR1)
_PAR2           EQU LOW (IX_BASE-PAR2)
_PAR4           EQU LOW (IX_BASE-PAR4)
_TST_IS1        EQU LOW (IX_BASE-TST_IS1)
_RQCHAN         EQU LOW (IX_BASE-RQCHAN)
_RQCOM          EQU LOW (IX_BASE-RQCOM)
_RQBLN          EQU LOW (IX_BASE-RQBLN)
_RQTRACK        EQU LOW (IX_BASE-RQTRACK)
_RQBLOCK        EQU LOW (IX_BASE-RQBLOCK)
_RQBADR         EQU LOW (IX_BASE-RQBADR)
_RQHEAD         EQU LOW (IX_BASE-RQHEAD)
_REP            EQU LOW (IX_BASE-REP)
_BUFT           EQU LOW (IX_BASE-BUFT)
_BUFSEC         EQU LOW (IX_BASE-BUFSEC)

; REST OF SWITCH AREA
CL_SW           EQU 0XDF40
SW_DO           EQU CL_SW+3
OUT_SW          EQU CL_SW+3
SW_CLR          EQU OUT_SW

; SOME DATA AREAS
SV_ARE          EQU SW_CLR
ARR_CO          EQU SV_ARE+2
SG_ENC          EQU ARR_CO+16+3
ENC_SI          EQU SG_ENC+4
ENC_SO          EQU ENC_SI+4
PAL_BUF         EQU ENC_SO+4

; FILLED SWITCH AREA
SW_C            EQU CL_SW
SW_PUT          EQU CL_SW
SW_CLL          EQU CL_SW
SW_SCO          EQU CL_SW
SW_RRL          EQU CL_SW
SW_SIZ          EQU CL_SW

;          IN VALUE
RQCHAN          EQU TST_IS1+1   ;DB 0           ;       DM      RQCHAN   1       ;ŽŒ… Š€€‹€
RQCOM           EQU RQCHAN+1    ;DB 0           ;       DM      RQCOM    1       ;ŠŽŒ€„€
RQBLN           EQU RQCOM+1     ;DB 0           ;       DM      RQBLN    1       ;—ˆ‘‹Ž ‹ŽŠŽ‚
RQTRACK         EQU RQBLN+1     ;DW 0           ;       DM      RQTRACK  2       ;ŽŒ… „ŽŽ†Šˆ
RQBLOCK         EQU RQTRACK+2   ;DW 0X4F00      ;       DM      RQBLOCK  2       ;ŽŒ… ‹ŽŠ€
RQBADR          EQU RQBLOCK+2   ;DW 0X18        ;       DM      RQBADR   2       ;“”… Ž‹œ‡Ž‚€’…‹Ÿ

;          WORK VALUE
RQHEAD          EQU RQBADR+2    ;DB 7           ;       DM      RQHEAD   1       ;ŽŒ… ƒŽ‹Ž‚Šˆ
RQCYL           EQU RQHEAD+1    ;DW 0           ;       DM      RQCYL    2       ;ŽŒ… –ˆ‹ˆ„€
LOCBUF          EQU RQCYL+2     ;DW 0           ;       DM      LOCBUF   2       ;€„…‘ ‹ŽŠ€ ‚ “”……
RQSECT          EQU LOCBUF+2    ;DB 7           ;       DM      RQSECT   1       ;ŽŒ… ‘…Š’Ž€
DCBUF           EQU RQSECT+1    ;DW 0X300       ;       DM      DCBUF    2       ;€„…‘ “”…€
REP             EQU DCBUF+2     ;DB 1           ;       DM      REP      1       ;‘—…’—ˆŠ —ˆ‘‹€ Ž‚’ŽŽ‚

;……Œ…›… ŠŽ’Ž‹…€ ”‹ŽŽ‚
FD_TRKS         EQU REP+1       ;DB 0X0A,7;,8,0 ;       DM      FD_TRKS  4       ;ŽŒ…€ ’…Š“™ˆ• „ŽŽ†…Š

;‹ŽŠ ‘Ž‘’ŽŸˆŸ “”…€
BUFT            EQU FD_TRKS+2   ;DB 0           ;       DM      BUFT     1               ;ŽŒ… Š€€‹€
BUFTRK          EQU BUFT+1      ;DW 0X1001      ;       DM      BUFTRK   2               ;ŽŒ… „ŽŽ†Šˆ
BUFSEC          EQU BUFTRK+2    ;DB 0X3F        ;       DM      BUFSEC   1               ;ŽŒ… ‘…Š’Ž€

;-----------------------
DVALID          EQU 0           ;:      DS      1       ;+ ˆ‡€Š „…‰‘’‚ˆ’…‹œŽ‘’ˆ
_DTYP           EQU DVALID+1    ;:      DS      1       ;+ ŠŽ„ “‘’Ž‰‘’‚€
_DUS            EQU _DTYP+1     ;:      DS      1       ;+ ŽŒ… ˆ‚Ž„€
_DDTYP          EQU _DUS+1      ;:      DS      1       ;- ŠŽ„ ˆ‚Ž„€  (Hi bit - unbuferized)
_DHEADF         EQU _DDTYP+1    ;:      DS      1       ;+ —ˆ‘‹Ž ”ˆŠ‘ˆŽ‚€›• ƒŽ‹Ž‚ŽŠ
_DHEADR         EQU _DHEADF+1   ;:      DS      1       ;+ —ˆ‘‹Ž ‘Œ…›• ƒŽ‹Ž‚ŽŠ
_DCYLN          EQU _DHEADR+1   ;:      DS      2       ;+ —ˆ‘‹Ž –ˆ‹ˆ„Ž‚ € „ˆ‘Š…
_DSECTT         EQU _DCYLN+2    ;:      DS      1       ;+ —ˆ‘‹Ž ‘…Š’ŽŽ‚ € „ŽŽ†Š…
_DBYTES         EQU _DSECTT+1   ;:      DS      2       ;+ —ˆ‘‹Ž €‰’Ž‚ ‚ ‘…Š’Ž…
_DALTCYL        EQU _DBYTES+2   ;:      DS      1       ;+ —ˆ‘‹Ž ‘ˆ‘’…Œ›• „ŽŽ†…Š
_DBEGCYL        EQU _DALTCYL+1  ;:      DS      2       ;+ ŽŒ… €—€‹œŽƒŽ –ˆ‹ˆ„€
_DBLDR          EQU _DBEGCYL+2  ;:      DS      2       ;+ —ˆ‘‹Ž ‹ŽŠŽ‚ € „ˆ‘Š…
_DBLTR          EQU _DBLDR+2    ;:      DS      2       ;+ —ˆ‘‹Ž ‹ŽŠŽ‚ € „ŽŽ†Š…
_DTRACK         EQU _DBLTR+2    ;:      DS      2       ;+ —ˆ‘‹Ž „ŽŽ†…Š € „ˆ‘Š…
_DSEKTL         EQU _DTRACK+2   ;:      DS      1       ;+ „‹ˆ€ ŽŒ…€ ‹ŽŠ€ ‚ ‘…Š’Ž…
_DDIRENT        EQU _DSEKTL+1   ;:      DS      2       ;+ —ˆ‘‹Ž ‡€ˆ‘…‰ ‚ „ˆ…Š’Žˆˆ
_DIF0           EQU _DDIRENT+2  ;:      DS      1       ;+ €‡Œ…’Š€ …‚Ž‰ „ŽŽ†Šˆ
_DIF1           EQU _DIF0+1     ;:      DS      1       ;+ €‡Œ…’Š€ ‚’ŽŽ‰ „ŽŽ†Šˆ
_DIF2           EQU _DIF1+1     ;:      DS      1       ;+ €‡Œ…’Š€ ‚‘…• Ž‘’€‚˜ˆ•‘Ÿ „ŽŽ†…Š
_DTIF           EQU _DIF2+1     ;:      DS      1       ;? ‘Œ…™…ˆ… …‚ŽƒŽ ‘…Š’Ž€
_DF8            EQU _DTIF+1     ;       DS      1       ;+ ˆ‡€Š 8-„ž‰ŒŽ‚ŽƒŽ „ˆ‘Š€
;  ˆ‹ˆ ŽŒ… €—€‹œŽ‰ ƒŽ‹Ž‚Šˆ
_DFMFM          EQU _DF8+1      ;:      DS      1       ;+ ‹Ž’Ž‘’œ ‡€ˆ‘ˆ
_DFN            EQU _DFMFM+1    ;:      DS      1       ;+ €‡Œ… ‘…Š’Ž€
_DFGPL          EQU _DFN+1      ;:      DS      1       ;+ GAP3 „‹Ÿ —’…ˆŸ/‡€ˆ‘ˆ
_DFGPF          EQU _DFGPL+1    ;:      DS      1       ;+ GAP3 „‹Ÿ ”ŽŒ€’€
_DFSRHUT        EQU _DFGPF+1    ;:      DS      1       ;+ ‚…ŒŸ ˜€ƒ€
;  ˆ‹ˆ ‚…ŒŸ ˜€ƒ€ ˆ SEEK
_DFHLT          EQU _DFSRHUT+1  ;       DS      1:                      ;+ ‚…ŒŸ Ž“‘Š€ˆŸ ƒŽ‹Ž‚Šˆ
;  ˆ‹ˆ ‚…ŒŸ ˜€ƒ€ ˆ RECALIBRATE
_DFMOTOR        EQU _DFHLT+1    ;:      DS      1       ;+ ˆ‡€Š ‚Š‹ž—…ˆŸ ŒŽ’Ž€
;-----------------------