DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4399 (0x112f) Types: TextFile Names: »START.S«
└─⟦a3edd706e⟧ Bits:30005202 8" Zilog MCZ/1 Floppy CR80FD_0028 ( TC 500 SEC. PROTOCOL BACK UP ! (V1) BB A1 820907 NCJ ) └─ ⟦this⟧ »START.S« └─⟦e12128f26⟧ Bits:30005200 8" Zilog MCZ/1 Floppy CR80FD_0026 ( TC 500 SEC. PROTOCOL BB V1 830407 NCJ ) └─ ⟦this⟧ »START.S«
*P 42 *L ON ;************************************************************************** ;* ;* START MODULE ;* ;************************************************************************** ; ; ***** I/O ADDRESSES ***** ; LINK EQU 00H CTC EQU 60H PIO1 EQU 70H PIO2 EQU 20H SYNC EQU 16H GLOBAL START EXTERNAL TABRES EXTERNAL INTSIO,INTCTC,TIMER EXTERNAL CHA1TAB,CHA2TAB,CHA3TAB,CHA4TAB EXTERNAL TAB_RESET,PARAM_RESET,PROCESS_RESET EXTERNAL PT1,PT2,PT3,PT4,CT1,CT2,CT3,CT4 EXTERNAL CH1TAB,CH2TAB,CH3TAB,CH4TAB EXTERNAL SIOREADWRITE ; TABSIZE EQU 20H ; *E START: ; ***** INITIALIZE CPU ***** ; DI ; DISABLE INTERRUPT IM 2 ; SELECT INTERRUPT MODE 2 ; LD HL,TIMER LD (INTCTC),HL LD HL,INTCTC ; GET ADDRESS OF INTERRUPT TABLE LD A,H ; PUT MSB OF ADDRESS LD I,A ; INTO INTERUPT REGISTER ; ; ***** INITIALIZE PIO'S (8255) ***** ; LD BC,PIO2+3 ; C = CONTROL ADDRESS OF PIO1 LD A,8AH ; PORT A + LOWER-C OUTPUT, B + UPPER-C = INPUT OUT (C),A ; SEND IT XOR A DEC C ; C = PORT C ADDRESS OUT (C),A ; SET PIO1 PORT A AND C TO 0 DEC C DEC C LD A,0FFH OUT (C),A ; LD BC,PIO1+3 ; C = CONTROL ADDRESS OF PIO1 LD A,81H ; PORT A + B + UPPER-C = INPUT, LOWER-C = OUTPT OUT (C),A ; SEND IT LD A,60H DEC C ; C = PORT C ADDRESS OUT (C),A ; SET OUTPUTS TO 0 LD A,0FH DEC C ; C = PORT B ADDRESS OUT (C),A ; SET PORT B TO 0F DEC C XOR A OUT (C),A ; SET PORT A TO 0 ; ; ***** INITIALIZE CTC ***** ; LD C,CTC ; GET CTC ADDRESS LD A,0B5H ; LOAD CHANNEL 0 AS OUT (C),A ; INTERVAL TIMER LD A,195 ; LOAD TIME CONSTANT (195*64uS = CA. 12.5 MSEC) OUT (C),A ; SEND IT TO CTC ( START TIMER ) OUT (C),L ; OUTPUT INTERUPT VECTOR TO CTC ; ; **** INITIALIZE SIO ***** ; LD IY,CHA1TAB CALL CHASIO LD IY,CHA2TAB CALL CHASIO LD IY,CHA3TAB CALL CHASIO LD IY,CHA4TAB CALL CHASIO ; ;*** RESET CHXTAB *** ; LD HL,CHA1TAB CALL TAB_RESET LD HL,CHA2TAB CALL TAB_RESET LD HL,CHA3TAB CALL TAB_RESET LD HL,CHA4TAB CALL TAB_RESET ; ;*** RESET PARAMTAB USED BY PLZ PROCEDURES *** ; LD HL,PT1 CALL PARAM_RESET LD HL,PT2 CALL PARAM_RESET LD HL,PT3 CALL PARAM_RESET LD HL,PT4 CALL PARAM_RESET ; ;*** RESET PROCESSTAB USED BY PLZ PROCEDURES *** ; LD HL,CH1TAB CALL PROCESS_RESET LD HL,CH2TAB CALL PROCESS_RESET LD HL,CH3TAB CALL PROCESS_RESET LD HL,CH4TAB CALL PROCESS_RESET ; ;*** RESET CONFIGTAB *** ; LD HL,CT1 PUSH HL CALL TABRES LD HL,CT2 PUSH HL CALL TABRES LD HL,CT3 PUSH HL CALL TABRES LD HL,CT4 PUSH HL CALL TABRES RET ;ECHO \f ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ;CHASIO: INITIALIZING PROGRAMM FOR SPECIFIED SIO CHANNEL ;FILE: INISIO.SRC ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< CHASIO DI LD BC,60D8H CALL SIOREADWRITE ;RESET: CHANNEL,TX-UNDERRUN/EOM LATCH LD BC,6080H CALL SIOREADWRITE ;TX-CRC GENERATOR RESET LD BC,6040H CALL SIOREADWRITE ;RX-CRC GENERATOR RESET ;WR04: LD E,(IY+22H) LD L,(IY+24H) LD H,(IY+25H) LD BC,02H ADD HL,BC LD (HL),E LD A,C LD C,(IY+1DH) OUT (C),A LD A,E OUT (C),A ; *1 CLOCK MODE ; 16 BIT SYNCH CHATACTER ; SYNCH MODES ENABLE ; PARITY ENABLE ; PARITY = EVEN LD BC,0E411H CALL SIOREADWRITE LD BC,6010H CALL SIOREADWRITE ;RESET EXTERNAL/STATUS INTERRUPT ;WR05: ; DTR AND RTS CONTROLED BY LINE ; ACCESS MODULE ; TX 7 BIT CHARACTER ; TX ENABLE ; TX CRC DISABLE ; CRC16 NOT SELECTED ; BREAK NOT USED LD BC,0E528H CALL SIOREADWRITE ;WR06: ; SYNCH CHARACTER LOADED LD BC,0E616H CALL SIOREADWRITE ;WR07: ; SYNCH CHARACTER LOADED LD BC,0E716H CALL SIOREADWRITE ;WR03: ; RX 7 BIT CHARACTER ; AUTO ENABLE ; ENTER HUNT PHASE ; SYNCH CHARACTER LOAD INHIBIT ; RX ENABLE ; ADDRESS SEACH MODE NOT USED ; RX-CRC DISABLE LD BC,0E373H CALL SIOREADWRITE LD BC,6010H CALL SIOREADWRITE ;SET EXTERNAL/STATUS INTERRUPT ;WR01: ; INTTERRUPT ON ALL RECEIVED CHA- ; RACTERS ; WAIT/REAY NOT USED ; STATUS AFFECTS VECTOR ; TX INTERRUPT ENABLE ; EXTERNAL/STATUS INTERUPT ENABLE LD BC,0E117H CALL SIOREADWRITE LD L,(IY+24H) LD H,(IY+25H) LD DE,03H ADD HL,DE RES 1,(HL) RES 4,(HL) EI RET END ;ECHO \f