home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Serious Magazine 11
/
Serious_Magazine_11_2002_Dial_pl_Disk_2_of_2_Side_B.atr
/
rom_02.lzh
/
PHENTRY.TXT
< prev
next >
Wrap
Text File
|
2002-05-26
|
3KB
|
1 lines
09 .OPT NO LIST¢10 ; SAVE #D1:PHENTRY.M65¢20 ;¢30 ;¢40 ; LOAD #D1:SCREEN1.M65¢50 ;¢60 ; *= $EEBC 07 Oct 94¢62 .PAGE "Peripheral Handler Entry"¢70 LIST ¢72 .LOCAL ¢80 ; Peripheral handler entry:¢81 ; install device in hatabs if¢82 ; not already there and if room¢83 ; Entry: ascii name in x¢84 ; table addr in y,a (lsb,msb)¢85 ; Returns:¢86 ; already installed: a=a y=y¢87 ; x points name+1 in Hatabs¢88 ; c=1 s=0¢89 ;¢90 ; newly installed: a=a¢91 ; x points name y=ascii name¢92 ; c=0 s=?¢93 ;¢94 ; no room: a=a y=$ff x=34¢95 ; c=1 s=1¢96 ;¢061116 PHE PHA Pointed to by Pentv¢061117 TYA Table address¢061118 PHA to stack¢061119 TXA Device name to a¢061120 LDX #0¢061122 ?FINDDEV CMP HATABS,X¢061125 BEQ ?FOUND¢061127 INX ¢061128 INX ¢061129 INX ¢061130 CPX #34¢061132 BMI ?FINDDEV¢061134 LDX #0 Not found,¢061136 TAY save device and¢061137 LDA #0 find empty slot¢061139 ?FINDMT CMP HATABS,X¢061142 BEQ ?INSTALL Got one¢061144 INX ¢061145 INX ¢061146 INX ¢061147 CPX #34¢061149 BMI ?FINDMT¢061151 PLA Clear stack¢061152 PLA ¢061153 LDY #255 Flag no free¢061155 SEC return -ve and c=1¢061156 RTS ¢061157 ?FOUND PLA Restore address¢061158 TAY to y,a¢061159 PLA ¢061160 INX x points address¢061161 SEC return +ve and c=1¢061162 RTS ¢061163 ?INSTALL TYA ¢061164 STA HATABS,X Device name¢061167 PLA ¢061168 STA HATABS+1,X Addr lsb¢061171 PLA ¢061172 STA HATABS+2,X Addr msb¢061175 CLC return +/- and c=0¢061176 RTS ; ----------------¢061177 PDOPENPOLL LDY #0 Poll at open¢061179 LDA (ICBALZ),Y to Daux1¢061181 LDY ICDNOZ dev# to Daux2¢061183 JSR POLL.PD Poll it¢061186 BPL ?POLLEDOK go if good¢061188 LDY #130 Else, no device¢061190 RTS ¢061191 ?POLLEDOK LDA #$7F¢061193 STA ICHIDZ¢061195 LDA # <?PUT-1 Put byte¢061197 STA ICPTLZ address-1¢061199 LDA # >?PUT-1¢061201 STA ICPTHZ¢061203 LDA DVSTAT+2 Device Sio addr¢061206 ALDX ICAX5Z Recover channel¢061209 STA ICAX4,X¢061212 LDY #0¢061214 LDA (ICBALZ),Y¢061216 STA ICAX3,X¢061219 LDY #1¢061221 RTS ¢061222 ?PUT PHA Put byte routine¢061223 TXA for provisionally¢061224 PHA open iocb.¢061225 AND #$0F Verify iocb#¢061227 BNE ?BADCH¢061229 CPX #$80¢061231 BPL ?BADCH¢061233 LDA HNDLOD Was handler loaded?¢061236 BNE ?HNDLOD Yes¢061238 LDY #130 Else, no device¢061240 ?EREXIT PLA ¢061241 PLA ¢061242 CPY #0¢061244 RTS ¢061245 ?BADCH LDY #134 invalid iocb#¢061247 BMI ?EREXIT Always¢061249 ?HNDLOD ASTX ICAX5Z¢061252 LDY #0¢061254 ?COPY LDA ICHID,X Copy iocb¢061257 STA ICHIDZ,Y to ziocb¢061260 INX ¢061261 INY ¢061262 CPY #12¢061264 BMI ?COPY¢061266 JSR INITPD Initialize device¢061269 BMI ?EREXIT¢061271 PLA recover x¢061272 TAX ¢061273 PLA recover a¢061274 TAY save a¢061275 LDA ICPTHZ Do indirect jsr¢061277 PHA to put byte¢061278 LDA ICPTLZ¢061280 PHA ¢061281 TYA recover byte¢061282 LDY #146 invalid xio code¢061284 RTS ¢061285 .BYTE 0,0,0,0 Unused¢061289 .BYTE 0,0¢061291 JMP MOTORON Not referenced¢