diff --git a/src/sudoku.s b/src/sudoku.s index 797d371..1724634 100644 --- a/src/sudoku.s +++ b/src/sudoku.s @@ -134,11 +134,12 @@ PFIEEX: POP P,Y ;Restore the Y register. ;Subroutine that reads the contents of the file into the buffer at FIELD IMPRTF: PUSH P,A ;Save the A register. + PUSH P,B ;Save the B register. PUSH P,X ;Save the index register. MOVE X,[440400,,FIELD] ;Init a 4-bit byte pointer to FIELD. .CALL [SETZ ? SIXBIT/OPEN/ ;Open a file descriptor. [.UAI,,CHDSKI] ? [SIXBIT/DSK/] ;Mode, channel and device name - [SIXBIT /PUZZL1/] ? [SIXBIT /SUDOKU/] ? 400000,,[SIXBIT/JALI/]] + [%CLIN,,A] ? [%CLIN,,B] ? ((SETZ))] .LOSE %LSFIL ;Handle errors after opening the file IMPRD: .IOT CHDSKI,A ;Read an ascii char into A. JUMPL A,IMPREX ;If there was nothing read, exit. @@ -153,6 +154,7 @@ IMPREX: .CALL [SETZ ? SIXBIT/CLOSE/ ;Close the file, before returning. [,,CHDSKI] ((SETZ))] .LOSE %LSFIL POP P,X ;Restore the X register. + POP P,B ;Restore the B register POP P,A ;Restore the A register. POPJ P, ;Return from the input subroutine, DONE: .LOGOUT 2, ;Exit point for the program.