DEF SHOW REF DSRLNK,VWTR,VMBW,VMBR,VSBW,VSBR CRUMOU EQU >1000 MOUROM EQU >0 HEADER TEXT ' Backup-System ' TEXT ' =============== ' TXTPFA TEXT 'Source-Pathname : ' TEXT 'Destination-Pathname: ' LINE TEXT ' Dateiname Typ Length Records ' TEXT ' Create-Date Edit-Date ' TEXT '----------------------------------------' TEXT '----------------------------------------' LINEBL TEXT ' ' TXTRED TEXT 'Ready! ' TXTFIL TEXT 'Filenumber in Progress: ' TXTERR TEXT 'Summe aller Fehler : ' SPFAD BYTE >05 * SOURCE-PFAD TEXT 'WDS1.' BSS >40 * SYSTEM ERWEITERT NAMEN!! DPFAD BYTE >09 * DESTINATION-PFAD TEXT 'WDS2.BAK.' BSS >40 EVEN REGDAT DATA >0004,>0170,>0203,>032F DATA >0402,>07F1,>0808,>0982 DATA >0A00,>0CF5,>0D66,>0E00 DATA >0F00,>1000,>122D,>1300 DATA >1700,>0000 BYTE00 BYTE >00 BYTE20 BYTE >20 BYTEFF BYTE >FF EVEN FILE# BSS >2 ERROR# BSS >2 MYWS BSS >20 ******************************* * * * HAUPT-PROGRAMM * * * ******************************* SHOW LWPI MYWS LI 1,REGDAT INITLP MOV *1+,0 JEQ INTRED BLWP @VWTR JMP INITLP INTRED MOVB @BYTE20,1 LI 2,>86F BLWP @VSBW INICLR MOVB 1,@>8C00 DEC 2 JNE INICLR LI 0,>A00 MOVB @BYTE00,1 LI 2,>10D BLWP @VSBW COLCLR MOVB 1,@>8C00 DEC 2 JNE COLCLR LI 12,CRUMOU SBO MOUROM LI 0,>1000 LI 1,>4BF8 LI 2,>800 BLWP @VMBW A 2,1 LI 2,>8 DCHARL MOV *1+,0 JEQ DCHARE BLWP @VMBW A 2,1 JMP DCHARL DCHARE SBZ MOUROM * INIT 80-ZEICHEN-KARTE FERTIG LI 0,>14 LI 1,HEADER LI 2,>28 BLWP @VMBW AI 0,>50 AI 1,>28 BLWP @VMBW LI 0,>1EA LI 1,TXTPFA BLWP @VMBW AI 0,>50 AI 1,>28 BLWP @VMBW LI 0,>320 LI 1,TXTFIL LI 2,>28 BLWP @VMBW AI 0,>28 LI 1,TXTERR BLWP @VMBW LI 0,>460 LI 1,LINE LI 2,>A0 BLWP @VMBW CLR @FILE# CLR @ERROR# LI 0,>337 MOV @FILE#,3 BLWP @ZAHL LI 0,>35F MOV @ERROR#,3 BLWP @ZAHL LI 0,>201 LI 1,SPFAD+1 MOVB @SPFAD,2 SRL 2,8 BLWP @VMBW AI 0,>50 LI 1,DPFAD+1 MOVB @DPFAD,2 SRL 2,8 BLWP @VMBW LI 0,>0 BLWP @PRLINE LI 0,>50 BLWP @PRLINE LI 0,>A0 BLWP @PRLINE BLWP @GETCAT LI 0,>3E1 LI 1,TXTRED LI 2,>28 BLWP @VMBW LI 0,>320 BLWP @PRLINE BLWP @FFEED CLR @>83D6 LIMI 1 WAIT MOV @>83D6,0 * 10 SEKUNDEN WARTEN CI 0,>400 JNE WAIT CLR 12 SBZ 22 CLR 0 DEC 0 JNE $-2 BLWP @>0000 *------------------------------------------------------------------------------* * * * REKURSIVEN KATALOG ERSTELLEN UND AUFRUF DATOPE ALS AKTION. * * * *------------------------------------------------------------------------------* GETCAT DATA GETWS,GETPG MAXCHR EQU >40 * 64 ZEICHEN MAXIMALE LAENGE! MAXREK EQU >0A +--- 1 GEHT NICHT, FAENGT IMMER BEI 0 AN!!! PABBUF EQU >2400 ! ( ANDERS BEIM ORGINAL TI-CONTROLLER) NAMPTR EQU >8356 v PDATA DATA >000D,PABBUF,>0050,>0000,>0000 *SPFAD BSS MAXCHR * PFADNAME, SOURCE *DPFAD BSS MAXCHR * PFADNAME, DESTINATION READ BYTE >02 CLOSE BYTE >01 CLEAR BYTE >20 H01 BYTE >01 POINT TEXT '.' DOPPEL TEXT ':' DATTXT TEXT ' VOLUME ' * 0 TEXT ' DIS/FIX' * 1 TEXT ' DIS/VAR' * 2 TEXT ' INT/FIX' * 3 TEXT ' INT/VAR' * 4 TEXT ' PROGRAM' * 5 TEXT ' DIREC. ' * 6 TEXT ' EMULATE' * 7 EVEN DIRECT DATA >0006 PABPOI DATA >1F80 * PAB-POINTER GWSPOI DATA GETWS * WORKSPACE-POINTER H0020 DATA >0020 MAXPAB DATA MAXCHR+10 * PAB'S NICHT LAENGER GETWS BSS >20*MAXREK * WS IST MAXREK MAL VORHANDEN STRING BSS MAXCHR * DATEINAME EVEN DATNAM BSS >10 * 16 ZEICHEN FUER DATEINAMEN MAXIMAL! TYP BSS >2 RECORD BSS >2 LENGTH BSS >2 CSEC BSS >2 CMIN BSS >2 CHOU BSS >2 CDAY BSS >2 CMON BSS >2 CYEA BSS >2 ESEC BSS >2 EMIN BSS >2 EHOU BSS >2 EDAY BSS >2 EMON BSS >2 EYEA BSS >2 CDATE BSS >14 EDATE BSS >14 *-----------------------------+ GETPG MOV @PABPOI,0 ! LI 1,PDATA ! LI 2,>9 ! BLWP @VMBW ! AI 0,>9 ! LI 1,SPFAD ! MOVB @SPFAD,2 ! SRL 2,8 ! INC 2 ! BLWP @VMBW ! MOV 0,@NAMPTR ! BLWP @DSRLNK ! DATA >0008 ! JEQ CLSERR ! *-----------------------------+ MOV @PABPOI,0 * MOVB @READ,1 * BLWP @VSBW * AI 0,>9 * SKIP SYSTEMINFORMATION MOV 0,@NAMPTR * DA MIT MYARC-WDS KEINE RECORD-SPEZIFIKATION BEIM BLWP @DSRLNK * KATALOG ERLAUBT! DATA >0008 * JEQ CLSERR * *-----------------------------* CLR 3 LOOPR MOV @PABPOI,0 AI 0,>9 MOV 0,@NAMPTR BLWP @DSRLNK DATA >0008 JEQ CLSERR LI 0,PABBUF BLWP @VSBR SRL 1,8 * LAENGEN-BYTE JEQ CLOSEN *-----------------------------+ INC 1 ! DATEINAME HOLEN MOV 1,2 ! LI 1,DATNAM ! BLWP @VMBR ! A 2,0 ! *-----------------------------* BLWP @GFLOAT * GET FLOATINGPOINT AND CONVERT TO INTEGER MOV @NUMBER,@TYP * (TYPE) BLWP @GFLOAT * GET RECORD MOV @NUMBER,@RECORD BLWP @GFLOAT * GET LENGHT MOV @NUMBER,@LENGTH BL @CREATE *-----------------------------* C @TYP,@DIRECT * TYPE DIRECTORY? JNE NODIRC * MOVB @SPFAD,2 * SAVE SPFAD-LAENGE MOVB @DPFAD,6 * SAVE DPFAD-LAENGE AB @DATNAM,@SPFAD * MOVB @DATNAM,3 * SRL 3,8 * LI 4,DATNAM+1 * MOV 2,5 * SRL 5,8 * AI 5,SPFAD+1 * MKENME MOVB *4+,*5+ * DEC 3 * JNE MKENME * MOVB @POINT,*5 * AB @H01,@SPFAD * A @H0020,@GWSPOI * A @MAXPAB,@PABPOI * MOV @GWSPOI,@GETCAT * BLWP @DIRPRO * BLWP @GETCAT * S @H0020,@GWSPOI * S @MAXPAB,@PABPOI * MOVB 2,@SPFAD * MOVB 6,@DPFAD * BLWP @DIREPI * JMP LOOPR * DIRECTORY NUR CREATE DATE!!! *-----------------------------* NODIRC BL @EDIT BLWP @DATOPE JMP LOOPR CLSERR CLOSEN MOV @PABPOI,0 MOVB @CLOSE,1 BLWP @VSBW AI 0,>9 MOV 0,@NAMPTR BLWP @DSRLNK DATA >0008 RTWP ******************************* * * * DATEIOPERATION * * * ******************************* DATOPE DATA DATWS,DATPG NAME BSS >A SCROLL BSS >320 * 10 ZEILEN A 80 ZEICHEN DATWS BSS >20 DATPG LI 2,NAME LI 3,>A DATLOP MOVB @CLEAR,*2+ DEC 3 JNE DATLOP LI 2,NAME LI 3,DATNAM+1 MOVB @DATNAM,4 SRL 4,8 DATLO1 MOVB *3+,*2+ DEC 4 JNE DATLO1 LI 0,>820 * DATEINAME LI 1,NAME LI 2,>A BLWP @VMBW AI 0,>C MOV @TYP,1 SLA 1,3 AI 1,DATTXT LI 2,>8 BLWP @VMBW AI 0,>9 MOV @LENGTH,3 BLWP @ZAHL AI 0,>9 MOV @RECORD,3 BLWP @ZAHL AI 0,>A LI 1,CDATE+1 LI 2,>13 BLWP @VMBW AI 0,>15 LI 1,EDATE+1 BLWP @VMBW LI 0,>550 * SCROLL LI 1,SCROLL LI 2,>320 BLWP @VMBR LI 0,>500 BLWP @VMBW LI 0,>AAA LI 2,>64 BLWP @VMBR LI 0,>AA0 BLWP @VMBW LI 0,>820 * CLEAR LAST LINE MOVB @BYTE20,1 LI 2,>4F BLWP @VSBW LASCLR MOVB 1,@>8C00 DEC 2 JNE LASCLR LI 0,>B04 * INKLUSIVE BLINKATTRIBUTE! MOVB @BYTE00,1 LI 2,>9 BLWP @VSBW LASCOL MOVB 1,@>8C00 DEC 2 JNE LASCOL INC @FILE# LI 0,>337 MOV @FILE#,3 BLWP @ZAHL LI 0,SPFAD LI 1,DPFAD LI 2,NAME LI 3,NAME BLWP @COPYFI MOVB @>8350,@>8350 JEQ DATAOK LI 0,>AFA MOVB @BYTEFF,1 LI 2,>9 BLWP @VSBW LASERR MOVB 1,@>8C00 DEC 2 JNE LASERR INC @ERROR# LI 0,>35F MOV @ERROR#,3 BLWP @ZAHL LI 0,>1E0 BLWP @PRLINE LI 0,>230 BLWP @PRLINE LI 0,>7D0 BLWP @PRLINE BLWP @ERROR * PRINT FEHLER-CODE LI 0,>A0 * BLANKLINE BLWP @PRLINE DATAOK RTWP ******************************* * * * DIRECTOTY-OPERATION * * * ******************************* DIRPRO DATA DIROWS,DIRPPG * PROLOG DIROWS BSS >20 DIRPPG LI 0,>0E01 BLWP @VWTR LI 2,NAME LI 3,>A DIRPLO MOVB @CLEAR,*2+ DEC 3 JNE DIRPLO LI 2,NAME LI 3,DATNAM+1 MOVB @DATNAM,4 SRL 4,8 DIRPL1 MOVB *3+,*2+ DEC 4 JNE DIRPL1 LI 0,DPFAD * PFAD SETZEN BLWP @SETPAT LI 0,NAME BLWP @CDIR * KEIN ERROR-CHECKING, SONST ERROR WENN DIR SCHON MOVB @DPFAD,5 * EXISTENT!! AB @DATNAM,@DPFAD MOVB @DATNAM,3 SRL 3,8 LI 4,DATNAM+1 SRL 5,8 AI 5,DPFAD+1 DMKE MOVB *4+,*5+ DEC 3 JNE DMKE MOVB @POINT,*5 AB @H01,@DPFAD LI 0,>0E00 BLWP @VWTR LI 0,>201 LI 1,SPFAD+1 MOVB @SPFAD,2 SRL 2,8 BLWP @VMBW AI 0,>50 LI 1,DPFAD+1 MOVB @DPFAD,2 SRL 2,8 BLWP @VMBW RTWP ******************************* * * * DIRECTOTY-OPERATION * * * ******************************* DIREPI DATA DIROWS,DIREPG * EPILOG DIREPG LI 0,>201 LI 1,LINEBL LI 2,>28 BLWP @VMBW AI 0,>50 BLWP @VMBW LI 0,>201 LI 1,SPFAD+1 MOVB @SPFAD,2 SRL 2,8 BLWP @VMBW AI 0,>50 LI 1,DPFAD+1 MOVB @DPFAD,2 SRL 2,8 BLWP @VMBW RTWP ******************************* * * * GET CREATE-DATE * * * ******************************* CREATE MOV 11,10 BLWP @GFLOAT * CREATE SEC MOV @NUMBER,@CSEC BLWP @GFLOAT * CREATE MIN MOV @NUMBER,@CMIN BLWP @GFLOAT * CREATE HOU MOV @NUMBER,@CHOU BLWP @GFLOAT * CREATE DAY MOV @NUMBER,@CDAY BLWP @GFLOAT * CREATE MON MOV @NUMBER,@CMON BLWP @GFLOAT * CREATE YEA MOV @NUMBER,@CYEA LI 5,CDATE LI 6,>14 LI 7,>3000 CLOOP MOVB 7,*5+ DEC 6 JNE CLOOP LI 1,>1300 MOVB 1,@CDATE MOVB @POINT,@CDATE+3 MOVB @POINT,@CDATE+6 MOVB @CLEAR,@CDATE+1 MOVB @CLEAR,@CDATE+11 MOVB @CLEAR,@CDATE+12 MOVB @DOPPEL,@CDATE+14 MOVB @DOPPEL,@CDATE+17 LI 5,CDATE+2 MOV @CDAY,7 BL @CIS * CONVERT INTEGER TO STRING LI 5,CDATE+5 MOV @CMON,7 BL @CIS LI 5,CDATE+10 MOV @CYEA,7 BL @CIS LI 5,CDATE+13 MOV @CHOU,7 BL @CIS LI 5,CDATE+16 MOV @CMIN,7 BL @CIS LI 5,CDATE+19 MOV @CSEC,7 BL @CIS B *10 ******************************* * * * GET EDIT-DATE * * * ******************************* EDIT MOV 11,10 BLWP @GFLOAT * EDIT SEC MOV @NUMBER,@ESEC BLWP @GFLOAT * EDIT MIN MOV @NUMBER,@EMIN BLWP @GFLOAT * EDIT HOU MOV @NUMBER,@EHOU BLWP @GFLOAT * EDIT DAY MOV @NUMBER,@EDAY BLWP @GFLOAT * EDIT MON MOV @NUMBER,@EMON BLWP @GFLOAT * EDIT YEA MOV @NUMBER,@EYEA LI 5,EDATE LI 6,>14 LI 7,>3000 ELOOP MOVB 7,*5+ DEC 6 JNE ELOOP LI 1,>1300 MOVB 1,@EDATE MOVB @POINT,@EDATE+3 MOVB @POINT,@EDATE+6 MOVB @CLEAR,@EDATE+1 MOVB @CLEAR,@EDATE+11 MOVB @CLEAR,@EDATE+12 MOVB @DOPPEL,@EDATE+14 MOVB @DOPPEL,@EDATE+17 LI 5,EDATE+2 MOV @EDAY,7 BL @CIS * CONVERT INTEGER TO STRING LI 5,EDATE+5 MOV @EMON,7 BL @CIS LI 5,EDATE+10 MOV @EYEA,7 BL @CIS LI 5,EDATE+13 MOV @EHOU,7 BL @CIS LI 5,EDATE+16 MOV @EMIN,7 BL @CIS LI 5,EDATE+19 MOV @ESEC,7 BL @CIS B *10 ******************************* * * * INTEGER -> STRING * * * ******************************* CIS LI 3,>A CISLOP CLR 6 DIV 3,6 AI 7,>30 SWPB 7 MOVB 7,*5 DEC 5 MOV 6,7 JNE CISLOP RT ******************************* * * * GET FLOATINGPOINT * * * ******************************* GFLOAT DATA GFWS,GFPG LENFLO DATA >0009 GFWS BSS >20 GFPG MOV *13,0 INC 0 LI 1,NUMBER LI 2,>8 BLWP @VMBR BLWP @CFI A @LENFLO,*13 RTWP ******************************* * * * CONVERT FLOAT->INTEGER * * * ******************************* CFI DATA CFIWS,CFIPG NUMLOW BYTE >3F NUMHUN BYTE >41 NUMTAU BYTE >42 NUMRUN BYTE >32 EVEN HUNDER DATA >0064 NUMBER BSS >8 CFIWS BSS >20 CFIPG MOV @NUMBER,4 JEQ CFIEND CLR 0 LI 2,NUMBER+1 CLR 3 ABS @NUMBER CB @NUMBER,@NUMLOW JLT CFINUL JEQ CFIRUN CB @NUMBER,@NUMHUN JLT CFIUHU JEQ CFIHUN CB @NUMBER,@NUMTAU JGT CFIOVE MOVB *2+,@CFIWS+1 MPY @HUNDER,0 MOV 1,0 CFIHUN MOVB *2+,@CFIWS+7 A 3,0 MPY @HUNDER,0 MOV 0,0 JNE CFIOVE MOV 1,0 CFIUHU MOVB *2+,@CFIWS+7 A 3,0 JOC CFIOVE CFIRUN CB *2+,@NUMRUN JL CFINUL INC 0 JOC CFIOVE CFINUL MOV 0,@NUMBER JMP CFIEND CFIOVE SETO @NUMBER CFIEND RTWP ******************************* * * * DISPLAY ZAHL (RECHTS) * * * ******************************* ZAHL DATA ZAHLWS,ZAHLPG ZAHLWS BSS >20 ZAHLPG MOV *13,0 AI 0,>5 MOV @>0006(13),3 LI 4,>A ZAHLLO CLR 2 DIV 4,2 AI 3,>30 SWPB 3 MOVB 3,1 BLWP @VSBW DEC 0 MOV 2,3 JNE ZAHLLO RTWP ******************************************************************************** * * * LOW-LEVEL OPERATIONEN AUF HARDDISK-CONTROLLER!!! * * * ******************************************************************************** VDP1 EQU >0000 VDP2 EQU >0040 VDP3 EQU >0080 MAXSEK DATA >003F * MAXIMALE ANZAHL VON SEKTOREN FUER EIN TRANSFER DRIVE# BSS >2 BLANKS ACCNAM BSS >A * IMMER 10 ZEICHEN LINKSBUENDIG, AUFGEFUELLT MIT DIRNAM BSS >A * WIE ACCESS-NAME EVEN ******************************* * * * KOPIEREN EINER DATEI * * * ******************************* COPYFI DATA COPYWS,COPYPG * R0 POINTER AUF SOURCE-PATH COPYWS BSS >20 * R1 POINTER AUF DESTINATION-PATH COPYPG LI 0,>0E01 * R2 POINTER AUF SOURCE-FILE BLWP @VWTR * R3 POINTER AUF DESTINATION-FILE CLR 12 * VWTR AUF >0E01, SOMIT 16K SPEICHER! TRLOOP MOV @>0000(13),0 * R12 IST FLAG FUER PARAMETER-PATHING BLWP @SETPAT MOVB @>8350,@>8350 JNE COPYER MOV 12,12 * FLAG GESETZ? JNE NINFO1 MOV @>0004(13),0 CLR 1 * PARAMETER-PATHING BLWP @INPUT MOVB @>8350,@>8350 JNE COPYER MOVB @>830A,6 * R6/R7 32-BIT FUER RECORDS ALLOCATED SRL 6,8 MOV @>8302,7 CLR 8 * R8/R9 32-BIT AKTUELLE SEKTOR-NUMMER CLR 9 NINFO1 LI 0,VDP3 * READ SEKTOREN MOV 0,@>8300 MOVB @COPYWS+17,@>830A MOV 9,@>8302 MOV @>0004(13),0 MOV 6,6 JEQ CHECK1 MOV @MAXSEK,1 JMP GOON1 CHECK1 C @MAXSEK,7 JGT CHECK2 MOV @MAXSEK,1 JMP GOON1 CHECK2 MOV 7,1 GOON1 BLWP @INPUT MOVB @>8350,@>8350 JNE COPYER MOV @>0002(13),0 * DESTINATION-PATH, WRITE SEKTOREN BLWP @SETPAT MOVB @>8350,@>8350 JNE COPYER MOV 12,12 * FLAG GESETZT? JNE NINFO2 MOVB @COPYWS+13,@>830A * ALTEN SEKTOREN-STAND EINSETZEN MOV 7,@>8302 MOV @>0006(13),0 CLR 1 * CREATE FILE-DESCRIPTOR BLWP @OUTPUT MOVB @>8350,@>8350 JNE COPYER SETO 12 * NUR EINMAL PARAMETER-PATHING NINFO2 LI 0,VDP3 * SEKTOREN SCHREIBEN MOV 0,@>8300 MOVB @COPYWS+17,@>830A MOV 9,@>8302 MOV @>0006(13),0 MOV 6,6 JEQ CHECK3 MOV @MAXSEK,1 JMP GOON2 CHECK3 C @MAXSEK,7 JGT CHECK4 MOV @MAXSEK,1 JMP GOON2 CHECK4 MOV 7,1 GOON2 BLWP @OUTPUT MOVB @>8350,@>8350 JNE COPYER A 1,9 JNC SKIP1 INC 8 SKIP1 S 1,7 JOC SKIP2 DEC 6 SKIP2 MOV 6,6 JNE LOOPOK MOV 7,7 JEQ COPYER LOOPOK B @TRLOOP COPYER LI 0,>0E00 * ALTES VDP-SPACE BLWP @VWTR RTWP ******************************* * * * PFAD SETZEN R0 POINTER * * * ******************************* SETPAT DATA PATHWS,PATHPG PDATAP DATA >0127 PMASK BYTE >F0 EVEN PATHWS BSS >20 PATHPG CLR @DRIVE# MOV *13,1 MOVB @>0004(1),@DRIVE#+1 SZCB @PMASK,@DRIVE#+1 MOVB @DRIVE#+1,@>834C LI 0,VDP1 MOVB *1,2 SRL 2,8 INC 2 BLWP @VMBW MOV 0,@>834E CLR @>8350 LI 0,VDP2 LI 1,PDATAP LI 2,>2 BLWP @VMBW MOV 0,@>8356 BLWP @DSRLNK DATA >A RTWP ******************************* * * * WRITE SEKTOREN * * * ******************************* OUTPUT DATA OUTWS,OUTPG ODATA DATA >0125 OUTWS BSS >20 OUTPG MOVB @DRIVE#+1,@>834C MOVB @>0003(13),@>834D LI 0,VDP1 MOV *13,1 LI 2,>A BLWP @VMBW MOV 0,@>834E CLR @>8350 LI 0,VDP2 LI 1,ODATA LI 2,>2 BLWP @VMBW MOV 0,@>8356 BLWP @DSRLNK DATA >A RTWP ******************************* * * * READ SEKTOREN * * * ******************************* INPUT DATA INWS,INPG IDATA DATA >0124 INWS BSS >20 INPG MOVB @DRIVE#+1,@>834C MOVB @>0003(13),@>834D LI 0,VDP1 MOV *13,1 LI 2,>A BLWP @VMBW MOV 0,@>834E CLR @>8350 LI 0,VDP2 LI 1,IDATA LI 2,>2 BLWP @VMBW MOV 0,@>8356 BLWP @DSRLNK DATA >A RTWP ******************************* * * * MAKE DIRECTORY * * * ******************************* CDIR DATA CDIRWS,CDIRPG CDATA DATA >0128 CDIRWS BSS >20 CDIRPG MOVB @DRIVE#+1,@>834C LI 0,VDP1 MOV *13,1 LI 2,>A BLWP @VMBW MOV 0,@>834E CLR @>8350 LI 0,VDP2 LI 1,CDATA LI 2,>2 BLWP @VMBW MOV 0,@>8356 BLWP @DSRLNK DATA >A RTWP ******************************* * * * DELETE DIRECTORY * * * ******************************* DDIR DATA DDIRWS,DDIRPG DDATA DATA >0129 DDIRWS BSS >20 DDIRPG MOVB @DRIVE#+1,@>834C LI 0,VDP1 MOV *13,1 LI 2,>A BLWP @VMBW MOV 0,@>834E CLR @>8350 LI 0,VDP2 LI 1,DDATA LI 2,>2 BLWP @VMBW MOV 0,@>8356 BLWP @DSRLNK DATA >A RTWP ******************************* * * * ERROR-AUSGABE AUF PRT * * * ******************************* ERROR DATA ERRWS,ERRPG ERRTXT TEXT 'Falscher Geraetename ' TEXT 'Write-Protected ' TEXT 'Fehlerhafte Dateiart ' TEXT 'Nicht unterstuetzte Operation ' TEXT 'Ausserhalb des Speicherbereichs!' TEXT 'Operation hinter Dateiende ' TEXT 'Hardware Fehler!!!! ' TEXT 'Dateifehler (nicht vorhanden) ' ERRWS BSS >20 ERRPG MOVB @>8350,7 SRL 7,13 SLA 7,5 AI 7,ERRTXT LI 8,>20 BLWP @PRINT LI 7,PRLDAT LI 8,>2 BLWP @PRINT RTWP ******************************* * * * PRINT SCREEN-LINE * * * ******************************* PRLINE DATA PRLWS,PRLPG PRLDAT DATA >0D0A * CRLF PRLLIN BSS >50 PRLWS BSS >20 PRLPG MOV *13,0 LI 1,PRLLIN LI 2,>50 BLWP @VMBR LI 7,PRLLIN LI 8,>50 BLWP @PRINT LI 7,PRLDAT LI 8,>2 BLWP @PRINT RTWP ******************************* * * * PRINT FORM-FEED * * * ******************************* FFEED DATA FFWS,FFPG FFDATA DATA >0C0D * FFCR FFWS BSS >20 FFPG LI 7,FFDATA LI 8,>2 BLWP @PRINT RTWP ******************************* * * * PRINT-ROUTINE * * * ******************************* PRINT DATA PRTWS,PRTPG PRTWS BSS >20 PRTPG MOV @>000E(13),1 MOV @>0010(13),2 LI 12,>1300 SBO 0 SBO 7 SBZ 1 SBO 2 PRTLOP TB 2 JEQ PRTLOP MOVB *1+,@>5000 SBZ 2 WAITPR TB 2 JNE WAITPR SBO 2 DEC 2 JNE PRTLOP SBZ 7 SBZ 0 RTWP END SHOW
© Dr. Henry Koplien