X-Git-Url: http://gitweb.hachti.de/?p=h316.git;a=blobdiff_plain;f=lib%2Fhachti%2Fsrc%2Foct.asm;fp=lib%2Fhachti%2Fsrc%2Foct.asm;h=807ea04a378743c9ec4cc326380d1d19d274dc78;hp=bd0a199efb0f39a1895e94f070b3d3800ae61ec5;hb=0a5c1d8a72e07dea13b677f70c0b1f0790ac8d7e;hpb=c6301d07c84cf71c19ac3b3a6421fa259dd3d7a2 diff --git a/lib/hachti/src/oct.asm b/lib/hachti/src/oct.asm index bd0a199..807ea04 100644 --- a/lib/hachti/src/oct.asm +++ b/lib/hachti/src/oct.asm @@ -2,70 +2,205 @@ * * TYPE OUT THE VALUE IN A. A STAYS UNCHANGED AFTERWARDS * - SUBR OCT + SUBR OCT,OCT6 PRINT OCTAL VALUE WITH 6 DIGITS + CR/LF + SUBR OCTN,N6 PRINT OCTAL VALUE WITH 6 DIGITS * + SUBR OCTN1,N1 PRINT OCTAL, 1 DIGIT + SUBR OCTN2,N2 PRINT OCTAL, 2 DIGITS + SUBR OCTN3,N3 PRINT OCTAL, 3 DIGITS + SUBR OCTN4,N4 PRINT OCTAL, 4 DIGITS + SUBR OCTN5,N5 PRINT OCTAL, 5 DIGITS + SUBR OCTN6,N6 PRINT OCTAL, 6 DIGITS + SUBR OCT1 PRINT OCTAL, 1 DIGIT + SUBR OCT2 PRINT OCTAL, 2 DIGITS + SUBR OCT3 PRINT OCTAL, 3 DIGITS + SUBR OCT4 PRINT OCTAL, 4 DIGITS + SUBR OCT5 PRINT OCTAL, 5 DIGITS + SUBR OCT6 PRINT OCTAL, 6 DIGITS * + SUBR TP TYPE OUT LETTER IN A + SUBR CR PRINT CR + SUBR LF PRINT LF + SUBR SP PRINT A SPACE CHARACTER + SUBR NL PRINT CR/LF + SUBR TYPE,TEXT +* +* +******************************************************************************** +* REL -OCT DAC ** - STA ATMP + ORG 0 +* +******************************************************************************** +* +* +TP DAC 0 SKS '104 JMP *-1 OCP '104 - IAB SAVE TO B - STA BTMP - CRA - LLR 1 - ADD =48 - OTA '4 ASR OUTPUT + OTA '4 TYPE ON ASR JMP *-1 - CRA - LLR 3 - ADD =48 - OTA 4 ASR OUTPUT - OTA 4 - JMP *-1 - CRA - LLR 3 - ADD =48 - OTA '4 ASR OUTPUT - OTA 4 - JMP *-1 - CRA - LLR 3 - ADD =48 - OTA '4 ASR OUTPUT - OTA 4 + SKS '4 JMP *-1 + JMP* TP RETURN +* +* +******************************************************************************** +* +OCT6 DAC 0 + JST N6 + JST NL + JMP* OCT6 +OCT5 DAC 0 + JST N5 + JST NL + JMP* OCT5 +OCT4 DAC 0 + JST N4 + JST NL + JMP* OCT4 +OCT3 DAC 0 + JST N3 + JST NL + JMP* OCT3 +OCT2 DAC 0 + JST N2 + JST NL + JMP* OCT2 +OCT1 DAC 0 + JST N1 + JST NL + JMP* OCT1 +* +******************************************************************************** +* +N1 DAC 0 + JST SAVE + LDA =-6 + JMP NGO +N2 DAC 0 + JST SAVE + LDA =-5 + JMP NGO +N3 DAC 0 + JST SAVE + LDA =-4 + JMP NGO +N4 DAC 0 + JST SAVE + LDA =-3 + JMP NGO +N5 DAC 0 + JST SAVE + LDA =-2 + JMP NGO +N6 DAC 0 + JST SAVE + LDA =-1 + JMP NGO +* +**************************************** +* +SAVE DAC 0 + STA ATMP + IAB + STA BTMP + JMP* SAVE +* +**************************************** +* +NGO STA PCNT + AOA + ALS 2 MULTIPLY BY 4 + STA 0 TO INDEX REGISTER + LDA =-7 + STA CNT +* CRA + LRR 5 VORSPANNUNG + IRS CNT LLR 3 - ADD =48 - OTA '4 ASR OUTPUT - OTA 4 - JMP *-1 + IRS PCNT + JMP *-3 +* +NXL LLR 3 + ADD ZERO + JST TP CRA - LLR 3 - ADD =48 - OTA '4 ASR OUTPUT - OTA 4 - JMP *-1 -* - LDA =10 - OTA '4 - JMP *-1 - LDA =13 - OTA '4 - JMP *-1 - LDA =13 - OTA '4 - JMP *-1 -* + IRS CNT + JMP NXL LDA BTMP IAB - LDA ATMP - JMP* OCT + LDA ATMP + JMP* N6,1 EVIL!!! * +* +**************************************** +* +* ATMP DAC ** TEMPORARY STORAGE FOR A -BTMP DAC ** TEMPORARY STORAGE FOR B +BTMP DAC ** TEMPORARY STORAGE FOR B +PCNT DAC ** +CNT DAC ** +ZERO DEC 48 CHARACTER ZERO +* +******************************************************************************** +* +CR DAC 0 + STA ATMP + LDA =13 + JST TP + LDA ATMP + JMP* CR +* +LF DAC 0 + STA ATMP + LDA =10 + JST TP + LDA ATMP + JMP* LF +* +NL DAC 0 + JST CR + JST LF + JMP* NL +* +SP DAC 0 + STA ATMP + LDA ='040 + JST TP + LDA ATMP + JMP* SP +* +* +******************************************************************************** +* +TEXT DAC 0 + STA ATMP + LDA* TEXT GET POINTER + STA PTR + IRS TEXT RETURN ADDRESS +* +TLOP LDA* PTR +* + SNZ + JMP TDON +* + ICL COPY DOWN + SZE DON'T PRINT ZEROES + JST TP + LDA* PTR + CAL CLEAR UPPER HALF + SZE DON'T PRINT ZEROES + JST TP +* + IRS PTR + JMP TLOP +* +TDON LDA ATMP + JMP* TEXT +* +PTR DAC 0 * ******************************************************************************** *