[[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]] * NRDOS.MO5 version 3.5 * CMDP2.ASM (Commandes internes, deuxième partie) ************************************************************************************************************ * DRV * Change le disque courant (commande x: ou x est le disque) ************************************************************************************************************ DRV SET * LDX TKOFST LDB CMDBUF,X CMPB #'A ; Le disque doit être entre A: ... BCS CDERR CMPB #'J ; ... et J: BHI CDERR LDB FNMBF1 PSHS B LDD DSKMAP CDLOOP LSRA ; On vérifie que le disque est valide RORB DEC ,S BNE CDLOOP PULS B BCS CDOK CDERR LDB #EDQER ; Code d'erreur "Disque erroné" JSR ERRMSG ; On affiche le message BRA CDEND CDOK LDB FNMBF1 STB CDISK ; On change le disque courant CDEND RTS DSKMAP FDB 0 ************************************************************************************************************ * IDC * Exécute la commande ID (fixe l'identifiant du poste) ************************************************************************************************************ IDC SET * LEAY FNMBF2,PCR LDX CLPTR,PCR LDA CLTOGO,PCR LBSR SKPSPC LBSR PRSPTH ; On vérifie l'atome STA CLTOGO,PCR STX CLPTR,PCR LDA #8 ; Seuls les 8 premiers caractères comptent LEAY IDBUFF,PCR LEAX CSGNDK,PCR LBSR MEMCPY LDA #0 STA CSGDST,PCR LDA #ID ; Consigne ID STA CSGNTA,PCR LDA #SYSFIC STA CSGNTR,PCR LBSR XCNSGN ; On exécute la consigne RTS ************************************************************************************************************ * TIME * Exécute la commande TIME (affiche la date et l'heure) ************************************************************************************************************ TIME SET * LDA #0 STA CSGDST,PCR LDA #DATE ; Consigne DATE STA CSGNTA,PCR LDA #SYSFIC STA CSGNTR,PCR LBSR XCNSGN ; On exécute la consigne BNE TIMEND LEAX DATEST,PCR ; On affiche LBSR DSPSTR LEAX CRXT0,PCR BSR D3NBS ; Les trois nombres qui composent la date LEAX TIMEST,PCR LBSR DSPSTR LEAX CRXT3,PCR BSR D3NBS ; Les trois nombres qui composent l'heure TIMEND RTS ************************************************************************************************************ * D3NBS * Affiche trois nombres entiers 8 bits séparés par des espaces ************************************************************************************************************ D3NBS SET * LDB #3 ; Trois fois PSHS B D3LOOP LDB ,X+ ; Le nombre sur 8 bits est pointé par X PSHS X LBSR DINT ; Conversion décimale et affichage PULS X LBSR DSPACE ; Affiche une espace DEC ,S BNE D3LOOP PULS PC,B DATEST FCS /Date : / ; Chaînes de caractères pour l'affichage TIMEST FCS / - Heure : / ; de la date et de l'heure ************************************************************************************************************ * ERA * Exécute la commande ERA ou DEL (effacement de fichier) ************************************************************************************************************ ERA SET * LBSR SETCTX ; Prépare le contexte (paramètres de la commande, changement de répertoire) LDB #$FF CMPB CDSUCS ; Le chemin est-il valide ? BNE ERAOK LBSR PRMERR ; Erreur de paramètre BRA ERAEND ERAOK LDA #SUPFI ; Consigne SUPFI STA CSGNTA,PCR LBSR XCNSGN ; On exécute la consigne ERAEND LBSR RSTDIR ; et on rétablit le répertoire courant RTS [[code_source_de_nrdos.mo5_version_3.5|Retourner à la liste des fichiers]]