From 7291a3bf3d7e7c2f683a9425c6b8a3fda15de808 Mon Sep 17 00:00:00 2001 From: Bill Chatfield Date: Sat, 10 Feb 2024 11:26:12 -0500 Subject: [PATCH] Added copyright & license --- more.S | 85 +++++++++++++++++++++++++++++++++++------------ prodos-2.0.3.dsk | Bin 143360 -> 143360 bytes 2 files changed, 63 insertions(+), 22 deletions(-) diff --git a/more.S b/more.S index 6d9294a..62630be 100644 --- a/more.S +++ b/more.S @@ -32,12 +32,17 @@ FREEBUFR EQU $BEF8 ;FREE BUFFER * PRODOS ENTRY POINT PRODOS_MLI EQU $BF00 ;MACHINE LANG IFACE (MLI) +* +* MEMORY MAPPED I/O: $C000 - $CFFF +* +RD80VID EQU $C01F ;<=128->40COL, >128->80COL +* +* SLOT 3 SCRATCHPAD RAM - TEXT PAGE 0 SCREEN HOLE +* http://yesterbits.com/media/books/apple/heiserman-1983-intermediate-level-apple-ii-handbook.pdf +* +OURCH EQU $057B ;80-COL HORIZ CURSOR POSITION +OURCV EQU $05FB ;VERTICAL CURSOR POSITION -* MEMORY LOCATIONS -* -OURCH .EQ $057B ;80-COL HORIZ CURSOR POSITION -OURCV .EQ $05FB ;VERTICAL CURSOR POSITION -* * ZERO-PAGE ADDRESSES * ZP.A1L .EQ $3C ;MONITOR GENERAL PURPOSE @@ -166,11 +171,21 @@ MAIN CLD ;CLEAR DECIMAL FLG, AVOID CRASH * * GET FILE NAME * - >PUTS PROMPT + PUTS INFOLINE + JSR CROUT +:ASKFILE PUTS PROMPT JSR GETLN1 ;LENGTH IN X, CR AT END CPX #0 ;IS THE LENGTH ZERO? - BNE :CONT1 ;USER JUST PRESSED RETURN - JMP END + BNE :CONT0 ;USER JUST PRESSED RETURN + JMP :END + +:CONT0 CPX #1 + BNE :CONT1 + LDA #"?" + CMP IN + BNE :CONT1 + JSR HELPINFO + JMP :ASKFILE :CONT1 CPIN FILENAME ;COPY "IN" BUF TO FILENAME DO TRACE @@ -184,7 +199,7 @@ MAIN CLD ;CLEAR DECIMAL FLG, AVOID CRASH JSR GETBUFR ;GET BUF FROM BASIC.SYSTEM BCC :CONT2 ;CARRY CLEAR MEANS NO ERROR JSR OBUFERR - JMP END + JMP :END :CONT2 STA OBUFADDR+1 ;GETBUFR RETURNS HIBYTE IN A LDA #0 ;PREPARE STA OBUFADDR ;LOBYTE IS 0 B/C ADDR OF PAGE @@ -194,13 +209,14 @@ MAIN CLD ;CLEAR DECIMAL FLG, AVOID CRASH JSR PRODOS_MLI DB OPENCMD DA OPENPRMS - BEQ CONT3 + BEQ :CONT3 JSR OPENERR - JMP :FREEOBUF + JSR FREEBUFR ;CLEAN UP BEFORE TRY AGAIN + JMP :ASKFILE * * COPY FILE NUMBER FROM OPEN PARAMETERS TO READ AND CLOSE * -CONT3 LDA OPENFNUM +:CONT3 LDA OPENFNUM STA READFNUM STA CLOSFNUM * @@ -208,10 +224,10 @@ CONT3 LDA OPENFNUM * LDA #1 ;ONE 256 BYTE BUFFER JSR GETBUFR ;CALL BASIC.SYSTEM SUB - BCC CONT4 + BCC :CONT4 JSR RBUFERR ;CARRY SET MEANS ERROR JMP :CLOSFILE -CONT4 STA RBADDR+1 ;STORE HI-BYTE +:CONT4 STA RBADDR+1 ;STORE HI-BYTE STA ZP_A1H ;FOR 0-PAGE INDIRECTION LDA #0 ;0 FOR LO-BYTE STA RBADDR ;STORE IT @@ -224,7 +240,9 @@ CONT4 STA RBADDR+1 ;STORE HI-BYTE * CLEANUP * JSR FREEBUFR ;FREE READ BUFFER - +* +* Close file +* :CLOSFILE JSR PRODOS_MLI ;CLOSE THE FILE DB CLOSCMD DA CLOSPRMS @@ -232,7 +250,7 @@ CONT4 STA RBADDR+1 ;STORE HI-BYTE JSR CLOSERR :FREEOBUF JSR FREEBUFR ;FREE OPEN I/O BUFFER -END NOP +:END NOP RTS ******************************** @@ -241,6 +259,25 @@ END NOP * * ******************************** +******************************** +* * +* PROGRAM INFO AND HELP * +* * +******************************** +HELPINFO JSR CROUT + PUTS INFO0 + JSR CROUT + PUTS INFO1 + JSR CROUT + PUTS INFO2 + JSR CROUT + PUTS INFO3 + JSR CROUT + PUTS INFO4 + JSR CROUT + JSR CROUT + RTS + ******************************** * * * HANDLE ERROR WHEN OPENING * @@ -250,8 +287,6 @@ END NOP OPENERR STA ERRCODE PUTS OERRMSG PUTS FILENAME - LDA #"'" - JSR COUT LDA #":" JSR COUT LDA ERRCODE @@ -672,6 +707,12 @@ ERRPROC * * ******************************** +INFOLINE STR "ENTER [?] FOR PROGRAM INFO AND HELP" +INFO0 STR "MORE - PAGES THROUGH TEXT FILE" +INFO1 STR "COPYRIGHT (C) 2024 BILL CHATFIELD" +INFO2 STR "DISTRIBUTED UNDER THE GPL VERSION 3" +INFO3 STR "https://github.com/gungwald/prodos-more" +INFO4 STR "PRESS RETURN TO QUIT" PROMPT STR "FILE:" ERRTXT STR "ERROR:" FILENAME DS $FF @@ -682,10 +723,10 @@ USRQUIT DS 1 BUFCHAR DS 1 USRCHAR DS 1 -OERRMSG STR "FAILED TO OPEN FILE '" -CERRMSG STR "FAILED TO CLOSE FILE '" -RBERRMSG STR "REQUEST FOR READ BUFFER FAILED" -OBERRMSG STR "REQUEST FOR OPEN BUFFER FAILED" +OERRMSG STR "CANNOT OPEN " +CERRMSG STR "CANNOT CLOSE " +RBERRMSG STR "CANNOT CREATE READ BUFFER" +OBERRMSG STR "CANNOT CREATE FILE BUFFER" E00MSG STR "NO ERROR" E01MSG STR "BAD SYSTEM CALL NUMBER" diff --git a/prodos-2.0.3.dsk b/prodos-2.0.3.dsk index 68443432a2677baaf7546f69e1f9fcdcb6030235..770279bd742e4c8a22f5214c3c7615f75ded620a 100644 GIT binary patch delta 34670 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 delta 15434 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