home *** CD-ROM | disk | FTP | other *** search
/ Serious Magazine 11 / Serious_Magazine_11_2002_Dial_pl_Disk_2_of_2_Side_B.atr / rom_01.lzh / CASSETTE.TXT < prev    next >
Text File  |  2002-05-26  |  6KB  |  1 lines

  1. 09       .OPT NO LIST¢10 ;  SAVE #D1:CASSETTE.M65¢20 ;¢30 ;¢40 ;  LOAD #D1:PRINTER.M65¢50 ;¢51       .PAGE "Cassette Handler"¢52 ;  *= $FCD8¢60        LIST  ¢80       .LOCAL ¢99 ; Most comments from 800 source¢064728 CIN JMP CLICK Cassette init¢064731 INITCAS LDA #$CC routine¢064733   STA CBAUDL  followed by¢064736   LDA #5      cassette i/o¢064738   STA CBAUDH  routines¢064741 SPECIAL.C RTS ¢064742 OPEN.C LDA ICAX2Z¢064744   STA FTYPE¢064746   LDA ICAX1Z¢064748   AND #$0C¢064750   CMP #4¢064752   BEQ DOCOPENI¢064754   CMP #8¢064756   BEQ DOCOPENO¢064758   RTS         If already open leave status at 132¢064759 DOCOPENI LDA #0¢064761   STA WMODE   Set read mode¢064764   STA FEOF    No eof yet¢064766   LDA #1      Tone for press play¢064768   JSR ?BEEP¢064771   BMI ?OPNRTN If err during beep¢064773 MOTORON LDA #$34 Turn motor on¢064775   STA PACTL¢064778   LDX PALNTS¢064780   LDY ?65171,X Set leader time¢064783   LDA ?65169,X¢064786   TAX ¢064787   LDA #3¢064789   STA CDTMF3¢064792   JSR SETVBV  Set vblank timer¢064795 ?WAITTM LDA CDTMF3¢064798   BNE ?WAITTM Wait for motor to come up to speed¢064800   LDA #$80    Number bytes in buffer¢064802   STA BPTR¢064804   STA BLIM¢064807   JMP ?OPOK¢064810 ?PBRK LDY #$80 Break abort¢064812   DEC BRKKEY  Reset key¢064814 ?OPNRTN LDA #0 Clear write mode flag¢064816   STA WMODE¢064819   RTS ¢064820 DOCOPENO LDA #$80¢064822   STA WMODE   set write mode¢064825   LDA #2      Record tone¢064827   JSR ?BEEP¢064830   BMI ?OPNRTN Error in beep¢064832   LDA #$CC    Set baud rate¢064834   STA AUDF3¢064837   LDA #5¢064839   STA AUDF4¢064842   LDA #$60¢064844   STA DDEVIC¢064847   JSR SENDEV  Tell pokey to write marks¢064850   LDA #$34    Write 5" blank tape¢064852   STA PACTL¢064855   LDX PALNTS¢064857   LDY ?65167,X Times for leader¢064860   LDA ?65165,X¢064863   TAX ¢064864   LDA #3¢064866   JSR SETVBV¢064869   LDA #$FF¢064871   STA CDTMF3¢064874 ?WDLR LDA BRKKEY¢064876   BEQ ?PBRK   If break during leader¢064878   LDA CDTMF3¢064881   BNE ?WDLR¢064883   LDA #0      Init buffer pointer¢064885   STA BPTR¢064887 ?OPOK LDY #1¢064889   RTS ¢064890 GET.C LDA FEOF If eof¢064892   BMI ?ISEOF  return status¢064894   LDX BPTR    Buffer pointer¢064896   CPX BLIM    If end of buffer¢064899   BEQ CREADBLK read another block¢064901   LDA CASBUF+3,X Get next byte¢064904   INC BPTR    bump pointer¢064906   LDY #1      status ok¢064908 ?GBX RTS ¢064909 CREADBLK LDA #'R¢064911   JSR ?SIOSB¢064914   TYA ¢064915   BMI ?GBX    exit on err¢064917   LDA #0      Reset pointer¢064919   STA BPTR¢064921   LDX #$80    Default bytes¢064923   LDA CASBUF+2¢064926   CMP #$FE    If header¢064928   BEQ ?ATEOF  go read again¢064930   CMP #$FA    If last data record¢064932   BNE ?NLR¢064934   LDX CASBUF+130 Last record get # bytes¢064937 ?NLR STX BLIM¢064940   JMP GET.C   Get next byte¢064943 ?ATEOF DEC FEOF Set flag¢064945 ?ISEOF LDY #136 End of file¢064947   RTS ¢064948 PUT.C LDX BPTR Pointer¢064950   STA CASBUF+3,X store character¢064953   INC BPTR    Bump index¢064955   LDY #1      Status ok¢064957   CPX #127    If buffer full¢064959   BEQ ?WRTBF  go write it¢064961   RTS ¢064962 ?WRTBF LDA #$FC Record type=data¢064964   JSR ?WSIOSB¢064967   LDA #0      Reset pointer¢064969   STA BPTR¢064971   RTS ¢064972 STATUS.C LDY #1¢064974   RTS ¢064975 CLOSE.C LDA WMODE If writing¢064978   BMI ?CLWRT  go close for write¢064980   LDY #1      Success¢064982 ?FCAX LDA #$3C Stop motor in¢064984   STA PACTL   case short irg mode¢064987   RTS ¢064988 ?CLWRT LDX BPTR If no data¢064990   BEQ ?WTLR   no dt1 rec¢064992   STX CASBUF+130 Write to¢064995   LDA #$FA    last record record type¢064997   JSR ?WSIOSB Write out buffer¢065000   BMI ?FCAX   go if error¢065002 ?WTLR LDX #127¢065004   LDA #0      Clear buffer¢065006 ?ZTBUF STA CASBUF+3,X¢065009   DEX ¢065010   BPL ?ZTBUF¢065012   LDA #$FE    Write wot record¢065014   JSR ?WSIOSB¢065017   JMP ?FCAX   Flag closed and exit¢065020 ?BEEP STA FREQ¢065022 ?BEEP1 LDA RTCLOK+2¢065024   CLC ¢065025   LDX PALNTS¢065027   ADC ?65173,X¢065030   TAX ¢065031 ?WFL LDA #$FF¢065033   STA CONSOL  Beep on¢065036   LDA #0¢065038   LDY #$F0¢065040 ?BWAIT DEY ¢065041   BNE ?BWAIT¢065043   STA CONSOL  Beep off¢065046   LDY #$F0¢065048 ?BWAIT2 DEY ¢065049   BNE ?BWAIT2¢065051   CPX RTCLOK+2 One " yet?¢065053   BNE ?WFL    no¢065055   DEC FREQ    Count beeps¢065057   BEQ ?WFAK   til done¢065059   TXA ¢065060   CLC ¢065061   LDX PALNTS¢065063   ADC ?65175,X¢065066   TAX ¢065067 ?BWAIT3 CPX RTCLOK+2¢065069   BNE ?BWAIT3¢065071   BEQ ?BEEP1¢065073 ?WFAK JSR ?WFAK1¢065076   TYA         Wait for a key¢065077   RTS ¢065078 ?WFAK1 LDA KEYBDV+5¢065081   PHA ¢065082   LDA KEYBDV+4¢065085   PHA ¢065086   RTS ¢065087 ?SIOSB STA DCOMND¢065090   LDA #0¢065092   STA DBYTHI¢065095   LDA #131¢065097   STA DBYTLO¢065100   LDA # >CASBUF¢065102   STA DBUFHI¢065105   LDA # <CASBUF¢065107   STA DBUFLO¢065110   LDA #$60¢065112   STA DDEVIC¢065115   LDA #0¢065117   STA DUNIT¢065120   LDA #35¢065122   STA DTIMLO¢065125   LDA DCOMND¢065128   LDY #$40¢065130   CMP #'R¢065132   BEQ ?SETSTA¢065134   LDY #$80¢065136 ?SETSTA STY DSTATS¢065139   LDA FTYPE¢065141   STA DAUX2   Indicate irg mode¢065144   JSR SIOV¢065147   RTS ¢065148 ?WSIOSB STA CASBUF+2 Store type¢065151   LDA #$55¢065153   STA CASBUF¢065156   STA CASBUF+1¢065159   LDA #'W¢065161   JSR ?SIOSB¢065164   RTS ¢065165 ?65165 .BYTE 4,3 NTSC/PAL¢065167 ?65167 .BYTE 128,192 Values¢065169 ?65169 .BYTE 2,1 for beep¢065171 ?65171 .BYTE 64,224 and¢065173 ?65173 .BYTE 30,25 leader¢065175 ?65175 .BYTE 10,8¢