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 / PERHNDLR.TXT next >
Text File  |  2002-05-26  |  6KB  |  1 lines

  1. 09       .OPT NO LIST¢10 ;  SAVE #D1:PERHNDLR.M65¢20 ;¢30 ;¢40 ;  LOAD #D1:SIO.M65¢50 ;¢60 ;  *= $E739¢70       .PAGE "Peripheral Handler"¢80        LIST  ¢90       .LOCAL ¢059193 PHR LDA WARMST Per.Hndlr init¢059195   BEQ ?POWRUP Go if powerup¢059197   LDA # <CHLINK-18 On reset¢059199   STA ZCHAIN¢059201   LDA # >CHLINK-18¢059203   STA ZCHAIN+1¢059205 ?59205 LDY #18 Point Chlink¢059207   CLC         Check if more¢059208   LDA (ZCHAIN),Y handler to¢059210   TAX         load¢059211   INY ¢059212   ADC (ZCHAIN),Y¢059214   BEQ ?EXIT1  None¢059216   LDA (ZCHAIN),Y Add 18 bytes¢059218   STA ZCHAIN+1 from Chlink¢059220   STX ZCHAIN  Return complement¢059222   JSR ADD18   of sum, c=0 y=$ff¢059225   BNE ?EXIT1¢059227   JSR ?59540  a=0 y=$ff x=lsb¢059230   BCS ?EXIT1¢059232   BCC ?59205¢059234 ?POWRUP LDA #0¢059236   STA CHLINK¢059239   STA CHLINK+1¢059242   LDA #$4F    Are you there?¢059244   BNE ?59291  Always to set dcb¢059246 ?59246 LDA #0 Daux1/2 to get¢059248   TAY         handler info¢059249   JSR POLL.PD Daux1/2=0¢059252   BPL ?59255  Flag from sio¢059254 ?EXIT1 RTS    No pd¢059255 ?59255 CLC    Got a pd¢059256   LDA MEMLO¢059259   ADC DVSTAT  lsb handler size¢059262   STA TEMP1¢059265   LDA MEMLO+1¢059268   ADC DVSTAT+1 msb¢059271   STA TEMP2¢059274   SEC ¢059275   LDA MEMTOP  Check if under¢059278   SBC TEMP1   memtop¢059281   LDA MEMTOP+1¢059284   SBC TEMP2¢059287   BCS ?59298  Yes, ok¢059289 ?59289 LDA #$4E Else null poll¢059291 ?59291 TAY ¢059292   JSR POLL.PD¢059295   JMP ?59246¢059298 ?59298 LDA DVSTAT+2 sio address¢059301   LDX MEMLO¢059304   STX DVSTAT+2¢059307   LDX MEMLO+1¢059310   STX DVSTAT+3¢059313   JSR PHDLOD¢059316   BMI ?59289¢059318   SEC ¢059319   JSR L59550¢059322   BCS ?59289¢059324   BCC ?59246¢059326 POLL.PD PHA   Exec poll¢059327   LDX #9¢059329 ?POLL.2 LDA ?DCBDAT.1,X¢059332   STA DDEVIC,X Get 4 bytes¢059335   DEX         into dvstat¢059336   BPL ?POLL.2¢059338   STY DAUX2   Set daux from¢059341   PLA         a and y entry¢059342   STA DAUX1   values¢059345   JMP SIOV¢059348 ?DCBDAT.1 .BYTE $4F ddevic¢059349   .BYTE 1     dunit¢059350   .BYTE $40   dcomnd¢059351   .BYTE $40   dstats¢059352   .WORD DVSTAT dbuflo/hi¢059354   .WORD 30    dtimlo/hi¢059356   .WORD 4     dbytlo/hi¢059358 PHDLOD STA TEMP2 Load handler¢059361   LDX #0      Temp2=sio addr¢059363   STX TEMP1¢059366   DEX ¢059367   STX TEMP3   Temp3=$FF¢059370   LDA DVSTAT+2 memlo¢059373   ROR A¢059374   BCC ?59384  must be even¢059376   INC DVSTAT+2¢059379   BNE ?59384¢059381   INC DVSTAT+3 memlo+1¢059384 ?59384 LDA DVSTAT+2 memlo¢059387   STA LOADAD¢059390   LDA DVSTAT+3 memlo+1¢059393   STA LOADAD+1¢059396   LDA # <?GET1 Set up¢059398   STA GBYTEA  indirect¢059401   LDA # >?GET1 subroutine¢059403   STA GBYTEA+1¢059406   LDA #$80¢059408   STA ZLOADA¢059411   JMP PDRELOC¢059414 ?GET1 LDX TEMP3 Get byte¢059417   INX         routine¢059418   STX TEMP3¢059421   BEQ ?59431¢059423 ?59423 LDX TEMP3 Error exit?¢059426   LDA ICAX4+$30,X¢059429   CLC ¢059430   RTS ¢059431 ?59431 LDA #$80¢059433   STA TEMP3¢059436   JSR ?GETBLOCK¢059439   BPL ?59423¢059441   SEC ¢059442   RTS ¢059443 ?GETBLOCK LDX #11 Get next¢059445 ?BLOCK.2 LDA ?DCBDAT.2,X load¢059448   STA DDEVIC,X block¢059451   DEX ¢059452   BPL ?BLOCK.2¢059454   LDX TEMP1   new memlo¢059457   STX DAUX1¢059460   INX ¢059461   STX TEMP1¢059464   LDA TEMP2¢059467   STA DDEVIC¢059470   JMP SIOV¢059473 ?DCBDAT.2 .BYTE 0 ddevic¢059474   .BYTE 1     dunit¢059475   .BYTE '&    dcomnd¢059476   .BYTE $40   dstats¢059477   .WORD CASBUF dbuflo/hi¢059479   .WORD 30    dtimlo/hi¢059481   .WORD 128   dbytlo/hi¢059483   .WORD 0     daux1/2¢059485 ?59485 STY TEMP1 Search¢059488   STA TEMP2   handler chain¢059491   LDA # <CHLINK-18¢059493   STA ZCHAIN¢059495   LDA # >CHLINK-18¢059497   STA ZCHAIN+1¢059499 ?59499 LDY #$12¢059501   LDA (ZCHAIN),Y¢059503   TAX ¢059504   INY ¢059505   LDA (ZCHAIN),Y¢059507   CMP TEMP2¢059510   BNE ?59519¢059512   CPX TEMP1¢059515   BNE ?59519¢059517   CLC ¢059518   RTS ¢059519 ?59519 CMP #0¢059521   BNE ?59529¢059523   CPX #0¢059525   BNE ?59529¢059527 ?59527 SEC ¢059528   RTS ¢059529 ?59529 STX ZCHAIN¢059531   STA ZCHAIN+1¢059533   JSR ADD18¢059536   BNE ?59527¢059538   BEQ ?59499  Always¢059540 ?59540 SEC    Handler¢059541   PHP         warmstart init¢059542   BCS ?59584  Always¢059544 PDWARM STA DVSTAT+3 Warmstart¢059547   STY DVSTAT+2 with chaining¢059550 L59550 PHP    Cold start init¢059551   LDA #0¢059553   TAY ¢059554   JSR ?59485¢059557   BCS ?59598¢059559   LDY #$12¢059561   LDA DVSTAT+2¢059564   STA (ZCHAIN),Y¢059566   TAX ¢059567   INY ¢059568   LDA DVSTAT+3¢059571   STA (ZCHAIN),Y¢059573   STX ZCHAIN¢059575   STA ZCHAIN+1¢059577   LDA #0¢059579   STA (ZCHAIN),Y¢059581   DEY ¢059582   STA (ZCHAIN),Y¢059584 ?59584 JSR ?JINIT Init handler¢059587   BCC ?59601  and update memlo¢059589   LDA DVSTAT+3¢059592   LDY DVSTAT+2¢059595   JSR PDUNLINK¢059598 ?59598 PLP ¢059599   SEC ¢059600   RTS ¢059601 ?59601 PLP ¢059602   BCS ?59613¢059604   LDA #0¢059606   LDY #$10¢059608   STA (ZCHAIN),Y¢059610   INY ¢059611   STA (ZCHAIN),Y¢059613 ?59613 CLC ¢059614   LDY #16¢059616   LDA MEMLO¢059619   ADC (ZCHAIN),Y¢059621   STA MEMLO¢059624   INY ¢059625   LDA MEMLO+1¢059628   ADC (ZCHAIN),Y¢059630   STA MEMLO+1¢059633   LDY #15¢059635   LDA #0¢059637   STA (ZCHAIN),Y¢059639   JSR ADD18¢059642   LDY #15¢059644   STA (ZCHAIN),Y¢059646   CLC ¢059647   RTS ¢059648 ?JINIT CLC    Init handler¢059649   LDA ZCHAIN  Get init address¢059651   ADC #12¢059653   STA TEMP1¢059656   LDA ZCHAIN+1¢059658   ADC #0¢059660   STA TEMP2¢059663   JMP (TEMP1) To handler init¢059666   JMP DOSETBV Not ref?¢059669 PDUNLINK JSR ?59485 Handler¢059672   BCS ?59733  unlinking¢059674   TAY ¢059675   LDA ZCHAIN¢059677   PHA ¢059678   LDA ZCHAIN+1¢059680   PHA ¢059681   STX ZCHAIN¢059683   STY ZCHAIN+1¢059685   LDA COLDST¢059688   BNE ?59705¢059690   LDY #16¢059692   CLC ¢059693   LDA (ZCHAIN),Y¢059695   INY ¢059696   ADC (ZCHAIN),Y¢059698   BNE ?59731¢059700   JSR ADD18¢059703   BNE ?59731¢059705 ?59705 LDY #$12¢059707   LDA (ZCHAIN),Y¢059709   TAX ¢059710   INY ¢059711   LDA (ZCHAIN),Y¢059713   TAY ¢059714   PLA ¢059715   STA ZCHAIN+1¢059717   PLA ¢059718   STA ZCHAIN¢059720   TYA ¢059721   LDY #$13¢059723   STA (ZCHAIN),Y¢059725   DEY ¢059726   TXA ¢059727   STA (ZCHAIN),Y¢059729   CLC ¢059730   RTS ¢059731 ?59731 PLA ¢059732   PLA ¢059733 ?59733 SEC ¢059734   RTS ¢059735   .BYTE 0     Following was 800¢059736   .BYTE 0     entry to Sioutl¢059737   JMP SIOUTL  Not referenced¢