JMP PFNSTART ;$4000 - entry point for entire program JMP DISPDIR ;$4003 - reload catalog and wait for next event JMP DISPDIRS ;$4006 - reload catalog with same file selected and wait for next event JMP DISP ;$4009 - redraw the screen and wait for next event JMP DISP0 ;$400C - redraw starting with the prefix and wait for next event JMP DISPCAT ;$400F - redraw the catalog and wait for next event JMP DISPCAT2 ;$4012 - redraw the catalog over the existing one and wait for next event JMP KBDLOOP ;$4015 - wait for next event JMP ISNTUPER ;$4018 - start of keyboard checklist; this is used to patch the keyboard, since each check is exactly 7 bytes long JMP READDIR ;$401B - read the current directory into the catalog JMP PRINTCAT ;$401E - print the catalog JMP DISKSPC ;$4021 - recalculate disk space JMP KRSTDISP ;$4024 - completely reload the screen, 80-column mode and all JMP A80COLON ;$4027 - turn 80-columns on JMP A80COLOFF ;$402A - turn 80-columns off JMP TEXT ;$402D - text mode JMP LOWRESGR ;$4030 - lo-res mode JMP DBLOWRES ;$4033 - double lo-res mode JMP HIRESGR ;$4036 - hi-res mode JMP DBLHIRES ;$4039 - double hi-res mode JMP MAINMEM ;$403C - main memory access JMP AUXMEM ;$403F - auxiliary memory access JMP NORMAL ;$4042 - normal video JMP INVERSE ;$4045 - inverse video JMP CLRSCRN ;$4048 - clear screen JMP SETPOS ;$404B - set cursor position in X and Y JMP TXTUNWDW ;$404E - set text window to whole screen JMP TXTWINDW ;$4051 - set text window to inside lines JMP TXTPRWDW ;$4054 - set text window to bottom line (prompt line) JMP PRINTSTR ;$4057 - print a string with address in X,Y JMP PRSTR6F ;$405A - print a string in $6F00 JMP PRHISTXY ;$405D - print a string with address in X,Y, high or low ascii JMP PRHISTR ;$4060 - print a string in $6F00, high or low ascii JMP PRINTCR ;$4063 - print carriage return JMP BEEP ;$4066 - beep JMP SMILE ;$4069 - display a smiley face at the bottom of the screen for two seconds JMP XPERIODS ;$406C - print periods; number in X JMP PRINTNUM ;$406F - print a number in X,Y JMP PRNMDIV2 ;$4072 - print a number in X,Y divided by 2; ".5" is printed if the number is odd JMP MINIED24 ;$4075 - print leftmost two decimal digits of X JMP HEXSTRNG ;$4078 - convert string of hex digits in $6F00 to 5-byte big-endian number in $EB-$EF JMP STREQU ;$407B - compare Pascal strings, case-sensitive; addresses of strings in $FA-$FD, zero flag set if strings are equal JMP STREQI ;$407E - compare Pascal strings, case-insensitive; addresses of strings in $FA-$FD, zero flag set if strings are equal JMP PRINTYPE ;$4081 - print ProDOS file type in X JMP PRDATIME ;$4084 - print date and time in ProDOS format in $FA-$FD JMP PFNPRMPT ;$4087 - ask for user input; address of prompt string in X,Y, number of dots in A, input at $6F00 JMP GETCHAR ;$408A - get a character; input in A JMP GETLINE ;$408D - get a line of keyboard input; input in $200 JMP GETLN6F ;$4090 - get a line of keyboard input; input in $6F00 JMP GETFADDR ;$4093 - get the address of a file's catalog entry; file number in X, address returned in $CE-$CF JMP GETPRFX ;$4096 - get current prefix in $6F00 JMP SETPRFX ;$4099 - set current prefix to $6F00 JMP CHEKPRFX ;$409C - check current prefix; if we're at the ONLINE level, carry is set; current prefix is in $6F00 JMP GETNAME ;$409F - get name of currently selected file in $6F00 JMP GETPATH ;$40A2 - get full path to currently selected file in $6F00 JMP FINDDEVN ;$40A5 - find a volume's device number; path to or name of volume in $6F00, device number returned in A and X JMP CLEARPGE ;$40A8 - clear page Y of memory JMP CLEARBUF ;$40AB - clear $2000-$3FFF JMP CLRBUF2 ;$40AE - clear $1900-$3FFF JMP XFERFREF ;$40B1 - transfer directory entry to catalog entry; address of dir entry at $06-$07, address of cat entry at $CE-$CF JMP XFERGR ;$40B4 - transfer lo-res graphics from $800 to $400 without touching screen holes JMP XFERGRA ;$40B7 - transfer lo-res graphics from main $800 to auxiliary $400 without touching screen holes JMP XFERAUXH ;$40BA - transfer main $2000-$3FFF to auxiliary $2000-$3FFF JMP PROTDHR ;$40BD - protect DHR auxiliary memory from being overwritten by files in RAM disk JMP DPROTDHR ;$40C0 - unprotect DHR auxiliary memory JMP STDRTS ;$40C3 JMP STDRTS ;$40C6 JMP STDRTS ;$40C9 JMP STDRTS ;$40CC JMP STDRTS ;$40CF JMP STDRTS ;$40D2 JMP STDRTS ;$40D5 JMP STDRTS ;$40D8 JMP STDRTS ;$40DB JMP STDRTS ;$40DE JMP STDRTS ;$40E1 JMP STDRTS ;$40E4 JMP STDRTS ;$40E7 JMP STDRTS ;$40EA JMP STDRTS ;$40ED JMP DBGERR0 ;$40F0 - make "Blocks Available" display the current value of A JMP DBGERR1 ;$40F3 - make "Blocks Used" display the current value of A JMP DBGERR2 ;$40F6 - make "Blocks Total" display the current value of A JMP $1800 ;$40F9 - transfer control to SYS file; path in $6F00 JMP PFNQUIT ;$40FC - quit ProDOS File Navigator .byte $30 ;$40FF - PFN version number