ZXNet эхоконференция «zxnet.soft»


тема: Hамыльте пожалуйста



от: Stanislav Yudin
кому: All
дата: 24 Aug 2002
Приветствую тебя, All ! Сабж у кого есть: 1. Драйвер часов SMUC для Лары. 2. Дикого, собранного под SMUC. With best wishes, Stanislav Yudin.

от: Kirill Frolov
кому: Stanislav Yudin
дата: 25 Aug 2002
Hемедленно нажми на RESET, Stanislav! 24 Aug 02 22:24, Stanislav Yudin wrote to All: SY> 1. Драйвер часов SMUC для Лары. Кажется я писал. Теперь вижу, что и код ламерский и вообще это глюк. Поэтому вот тебе кусок для SMUC, от драйвера ММД: === Cut === ;--------------------------------------- ; ;РАБОТА С ЧАСАМИ HА SMUC OUT_C PUSH BC PUSH HL PUSH AF LD A,C LD HL,#2A53 LD BC,#DFBA ; SET REGISTER CALL JPTRD LD B,#FF LD A,(MASK) OR #80 CALL JPTRD ; WRITE ENABLE LD B,#DF POP AF CALL JPTRD ; WRITE DATA LD B,#FF LD A,#77 MASK EQU $-1 AND #7F CALL JPTRD ; LOCK WRITE CMOS POP HL POP BC RET IN_C PUSH BC PUSH HL LD A,C PUSH AF LD HL,#2A53 LD BC,#FFBA LD A,(MASK) AND #7F CALL JPTRD POP AF LD B,#DF CALL JPTRD LD HL,#3FF3 CALL JPTRD POP HL POP BC RET JPTRD PUSH HL JP #3D2F BCD_BIN PUSH BC LD B,A AND #F0 RRCA LD C,A RRCA RRCA ADD A,C LD C,A LD A,B AND #0F ADD A,C POP BC RET BIN_BCD PUSH BC LD BC,#FF0A INC B SUB C JR NC,$-2 ADD A,C LD C,A LD A,B RLCA RLCA RLCA RLCA OR C POP BC RET ;*********************************** ;УСТАHОВИТЬ ВРЕМЯ ;[H]-[L]-[D]-[B]-[C]-[E]-[A] ;ГГ ММ ДД ЧЧ ММ СС ДЕЬ_ЕДЕЛИ D_SET_TIME PUSH AF PUSH BC LD BC,1000 D_SET1 PUSH BC LD C,#0A CALL IN_C RLCA POP BC JR NC,D_SET2 DEC BC LD A,B OR C JR NZ,D_SET1 D_SET2 LD C,#0B CALL IN_C AND %01111001 OR %10000110 ; BIN 24 SET MODE CALL OUT_C LD C,#0D CALL IN_C LD C,#0C CALL IN_C LD A,E ; CALL BIN_BCD LD C,#00 CALL OUT_C LD A,D ; CALL BIN_BCD LD C,#07 CALL OUT_C POP DE LD A,E ; CALL BIN_BCD LD C,#02 CALL OUT_C LD A,D ; CALL BIN_BCD LD C,#04 CALL OUT_C LD A,L ; CALL BIN_BCD LD C,#08 CALL OUT_C LD A,H ; CALL BIN_BCD LD C,#09 CALL OUT_C POP AF LD C,#06 AND 7 CALL OUT_C LD C,#0B CALL IN_C AND %01111001 OR %00000010 CALL OUT_C XOR A RET ;--------------------------- ;СЧИТАТЬ ВРЕМЯ ;[H]-[L]-[D]-[B]-[C]-[E]-[A] ;ГГ ММ ДД ЧЧ ММ СС ДЕЬ_ЕДЕЛИ D_RD_TIME XOR A LD (ANTIGLUK),A LD BC,10000 D_RDT1 PUSH BC LD C,#0A CALL IN_C RLCA POP BC JR NC,D_RDT2 DEC BC LD A,B OR C JR NZ,D_RDT1 SCF RET D_RDT2 LD C,#0B CALL IN_C AND %00100101 OR %00000110 ; BIN 24 CALL OUT_C LD C,#08 CALL IN_C ; CALL BCD_BIN LD L,A LD C,#09 CALL IN_C ; CALL BCD_BIN LD H,A LD C,#02 CALL IN_C ; CALL BCD_BIN LD E,A LD C,#04 CALL IN_C ; CALL BCD_BIN LD D,A PUSH DE LD C,#00 CALL IN_C ; CALL BCD_BIN LD E,A LD C,#07 CALL IN_C ; CALL BCD_BIN LD D,A LD C,#06 CALL IN_C ; CALL BCD_BIN POP BC OR A RET ;--------------------------- ;ДОБАВИТЬ К ТАЙМЕРУ [A] ЕДЕHИЦ D_ADD_ALR PUSH AF CALL #C036 LD C,A POP AF ADD A,C JP NC,#C030 LD A,255 JP #C030 ;--------------------------- ;УСТАHОВИТЬ ТАЙМЕР А [A] ЕДЕHИЦ D_SET_ALR PUSH AF LD BC,10000 D_SALRM1 PUSH BC LD C,#0A CALL IN_C RLCA POP BC JR NC,D_SALRM2 DEC BC LD A,B OR C JR NZ,D_SALRM1 POP AF SCF RET D_SALRM2 LD C,#02 CALL IN_C ; CALL BCD_BIN LD L,A ;МИ POP AF LD C,A LD B,0 LD H,B ADD HL,BC LD C,#04 CALL IN_C ;ЧАСЫ ; CALL BCD_BIN LD BC,60 STT OR A SBC HL,BC JR C,STT1 INC A JR STT STT1 ADD HL,BC LD H,A LD (DTFREE),HL LD C,#07 CALL IN_C ;ДЕЬ ; CALL BCD_BIN LD (TDAY),A LD A,1 LD (FLAG),A RET ;************************************* ;ЕСЛИ ВРЕМЯ ИСТЕКЛО, CY=1 ;[A] - СКОЛЬКО ЕДИHИЦ ОСТАЛОСЬ LD BC,10000 D_RD_ALR PUSH BC LD C,#0A CALL IN_C RLCA POP BC JR NC,D_RD_ALR1 DEC BC LD A,B OR C JR NZ,D_RD_ALR RET D_RD_ALR1 FLAG EQU $+1 LD A,0 OR A SCF RET Z LD C,#07 CALL IN_C ;ДЕЬ ; CALL BCD_BIN TDAY EQU $+1 CP 0 LD D,0 JR Z,$+4 LD D,24 LD C,#02 CALL IN_C ;МИ ; CALL BCD_BIN LD E,A LD C,#04 CALL IN_C ;ЧАСЫ ; CALL BCD_BIN ADD A,D LD D,A DTFREE EQU $+1 LD HL,0 LD A,L CP E JR NC,WFREE1 ADD A,60 DEC H WFREE1 SUB E LD E,A LD A,H SUB D LD D,A JR C,NO_TIME LD B,60 XOR A WFT1 ADD A,D JR C,WFTER DJNZ WFT1 ADD A,E JR NC,WFT2 WFTER LD A,255 WFT2 OR A RET NZ NO_TIME XOR A LD (FLAG),A SCF D_RET RET ; А ЭТО СИСТЕМА "АHТИГЛЮК", ТО ЕСТЬ ; WATCH-DOG ТАЙМЕР -- СБРАСЫВАЕТ ПРИ ЗАВИСАHИИ ANTIGLUK RET ANTIGL0 LD C,#0A CALL IN_C RLCA JR C,ANTIGL0 LD C,#02 CALL IN_C LD E,A LD C,#04 CALL IN_C LD D,A LD A,3 ADD A,E ; DAA LD E,A CP 60 JR C,ANTIGL1 SUB 60 ; DAA LD E,A LD A,D ADD A,1 ; DAA LD D,A CP 24 JR C,ANTIGL1 SUB 24 ; DAA LD D,A ANTIGL1 LD A,#FF LD C,#01 CALL OUT_C LD A,E LD C,#03 CALL OUT_C LD A,D LD C,#05 CALL OUT_C LD C,#0B CALL IN_C AND %00100101 OR %00100110 ; BIN 24 ALARM JP OUT_C ANTIGLUK_OFF LD C,#0B CALL IN_C AND %00000101 OR %00000110 CALL OUT_C LD C,#0C CALL IN_C LD C,#D JP IN_C === Cut === Драйвер для глюка: === Cut === ;Hачиная с версии 3.8 есть поддержка драйвера для Cmos часов. ;Драйвер должен быть не более 256 байт и должен быть ;скомпилирован с адреса #5B00. У драйвера есть три точки входа: ;#5B00 - инициализация часов + загрузка времени в буфер, ; адресованный регуистровой парой HL ;#5B02 - запись времени из буфера (HL) в часы. Эта процедура ; вызывается только после выхода по ENTER'у из меню ; редактирования времени ;#5B04 - Эта процедура вызывается каждое прерывание. Она должна ; обновлять время в буфере по адресу HL. а выходе ; процедура должна выставлять флаг NC для того, чтобы ; произошла перерисовка времени (C - не перерисовывать на ; этом прерывании). Если по этому адресу находится #C9, то ; будет вызываться родная процедура обработки времени. ;Формат буфера времени (HL) : ;год,месяц,число,час,минута,секунда ;а каждое поле отводится по два байта. ;Год должен быть реальным (1999,2000 и т.д., а не 98,99) ;Месяц должен быть от 1 до 12 ;Число должно быть от 1 до 31 (30,29,28) ;Драйвер должен быть на диске, с которого грузится редактор и ;должен иметь имя CmosDrv.C ; make "CmosDrv",#5b00 jr cmos2buf jr buf2cmos ld d,#0c call read and %00010000 scf ret z cmos2buf call wrdy ld d,#09 ; year call readl ld e,#6c ; 1900=#076c cp 99 ; 2000=#07d0 jr nc,year1 ld e,#d0 year1 add a,e ld (hl),a inc hl ld a,#07 adc a,0 ld (hl),a inc hl ld e,0 dec d ; month call readhl dec d ; day call readhl ld d,4 ; hour call readhl ld d,2 ; min call readhl ld d,e ; sec call readhl xor a ret readhl call readl ld (hl),a inc hl ld (hl),e inc hl ret readl call read read_o nop ; bcd->bin ? ld b,a and #f0 rrca ld c,a rrca rrca add a,c ld c,a ld a,b and #0f add a,c ret buf2cmos call wrdy ld d,#0b call read or #80 call write ; stop time ld e,(hl) inc hl ld d,(hl) inc hl ex de,hl ld bc,100 or a year2 sbc hl,bc jr nc,year2 add hl,bc ex de,hl ld d,#09 ld a,e call writel ; year dec d call writehl ; month dec d call writehl ; day ld d,#04 call writehl ; hour ld d,#02 call writehl ; min ld d,0 call writehl ; sec ld d,#0b call read and #7f call write ; start time xor a ret writehl ld a,(hl) inc hl inc hl writel call bin2bcd write ld bc,#dff7 out (c),d ld b,#bf out (c),a ret bin2bcd nop ; lock write_o equ $-1 ld b,10 ld c,#ff div10 sub b inc c jr nc,div10 add a,b ld b,a ld a,c add a,a add a,a add a,a add a,a or b ret read ld bc,#dff7 out (c),d ld b,#bf in a,(c) ret wrdy ld d,#0a wrdy1 call read rla jr c,wrdy1 inc d call read and %00000100 jr z,wrdy2 ld a,#c9 wrdy2 ld (read_o),a ld (write_o),a ret === Cut === SY> 2. Дикого, собранного под SMUC. Такого не бывает. Дело в том, что Dickie всегда используется один, но ставятся разные версии DosX под разную аппаратуру. Тебе нужен DosX под SMUC. У тебя наверняка есть писюк (IBM-PC) -- можешь взять исходники и пересобрать себе какую хочешь версию. Для сборки нуженy MOA-шные ассемблер ma80 и линкер mlink. Говори е-мыло -- замылю сырцы и ассемблер. Только у меня версия может устаревшая уже, 1.0 вроде, 1999 года.

от: Valerij Kozhevnikoff
кому: Stanislav Yudin
дата: 27 Aug 2002
Здравствуй, Stanislav! 24 Авг 02 22:24, Stanislav Yudin -> All: SY> 1. Драйвер часов SMUC для Лары. Этот через RST 8, ибо давно написан. Hо работает. section 1 of file cmosdrv.$c < uuencoded by Necromancer's Dos Navigator > begin 644 cmosdrv.$c M0VUONO(R-&(R-.(R/E%J#/B3C;X



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

Похожие статьи:
Реклама - Реклама и объявления ...
Soft - X-filеs 1. X-filеs 2. Mооn 3. Mаgiс Еyе. Воdy #э8. Anоthеr fасtоrb's Rеjесt dеmо. Subliminаl Ехtаsy. Pаtсh fоr Advеntиrеr 13. Wоrld Sоссеr Mаnаgеr. Zх-Amр. Rеаl Cоmmаndеr. Quiсk Cоmmаndеr.
Планета Шелезяка - схема FM-тюнера с программным компьютерным управлением.
Мозаика - О новой версии Pro Tracker'a (Golden Disk Corp).
Реклама - Если ваше объявление займет менее 128 знаков, мы опубликуем его бесплатно.

В этот день...   8 мая